Skip to content

编译套件

闭源工具

Intel

弃用的工具

Intel Trace Analyzer and Collector 和 Amplifier 是已经弃用的工具。

VTune Profiler

vtune -collect hotspots -r result -- ./a.out
vtune -report summary -r result

AMD

AOCC AOCL

与 Intel 相同,AMD 也提供了一组优化的编译器和工具链(AOCC)以及一些优化的库(AOCL)。按照官方文档使用即可。

AOCC 基于 Clang,没有别名:

clang
clang++
flang

AOCL 可以用于替代 BLAS、LAPACK 等库。AOCL 包含了所有子库,各子库也可以单独安装。

spack install amd-aocl %aocc

uProf

# Hotspots with callstack collection
AMDuProfCLI collect --config hotspots -g -o <output-dir> -- <application>

除了最泛用的 hotspots,还支持并行分析(MPI、OpenMP 等)、微架构分析(如 IPC、Cache 等)。

远程调试:

  • 在本地启动 AMDuProf GUI 获取 client ID。
  • 在远端启动服务:

    AMDProfilerService --add <client_id>
    AMDProfilerService
    
  • 通过 GUI 连接。

NVIDIA

弃用的工具

nvprof 和 NVIDIA Visual Profiler 是已经弃用的工具。

nvhpc

nvcc
nvc++
nvfortran

Nsight Systems

# Nsight System
nsys profile ./a.out

对 CPU 应用的分析并不详细,只有占用情况、栈帧和系统运行时库的调用信息,不能识别热点。对 GPU 的分析又不如 Nsight Compute。

Nsight Compute

# Nsight Compute
ncu -o profile ./a.out

华为

开源工具

POP

参考资料

Performance Optimisation and Productivity(POP)是欧洲的一个 HPC 项目,开发了一系列性能监测和优化工具。该项目通过组合多个工具,提供了一个完整的性能分析工作流。

Extrae + Paraver

  • Extrae:编译、注入
  • Paraver:分析、可视化

Score-P + Scalasca + Cube

  • Score-P:编译、注入
  • [Scalasca]:运行、跟踪
  • Cube:分析、可视化
export CC="scorep mpicc" CXX="scorep nvc++" MPIF77="scorep mpifort" ...
scalasca -analyze mpiexec ...
scalasca -examine -s <dir>

在 CMake 中使用时,应当使用 scorep-wrapper 创建编译器别名:

scorep-wrapper --create icx
scorep-icx
使用记录
  • NVIDIA 套件(nvcc 等)参数匹配问题严重,不建议使用。