profiler工具
vtune
intel profiler
source /home/leenldk/intel/oneapi/vtune/2021.2.0/env/vars.sh #加载
gprof
gcc 开源 profile 工具
编译时添加 -pg 选项进行插装
运行后生成 gmon.out
通过 gprof 输出 profiling 文件
gcc example.c -o temp -g -pg
./temp
gprof temp > profiling.out
nvprof
cuda toolkit 中自带工具
使用:
nvprof ./gemm # 输出 prof 结果
# 在使用了 unified memory 时可能需要 添加 --unified-memory-profiling off
nvprof --unified-memory-profiling off ./gemm
-o prof.nvvp
: 输出为 nvvp 文件
--metrics [all/gld_throughput]
: profile 所有参数/Global Load Throughput (可能需要 sudo)
可视化:使用 x11 forwarding nvvp prof.out
cuda 11 版本可能有 java 问题,此时需要
sudo apt install openjdk-8-jdk
nvvp -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java prof.out
windows :
.\nvvp.exe -vm 'D:\Program Files\Java\jdk1.8.0_311\jre\bin\java.exe'