nvprof分析工具使您能够从命令行收集和查看分析数据。nvprof能够收集CPU和GPU上与CUDA相关的活动的时间线,包括内核执行、内存传输、内存集和CUDA API调用以及CUDA内核的事件或度量。评测选项通过命令行选项提供给nvprof。分析结果在收集分析数据后显示在控制台中,也可以保存以供nvprof或Visual Profiler稍后查看。
官网:1. Preparing An Application For Profiling — Profiler 12.3 documentation
NVIDIA提供了具有高性能计算的GPU产品,如何检验硬件的实际性能,写出高效的CUDA代码让算力加速卡物尽其用,那可以通过其配套提供的“护城河”软件工具链来检验和帮助发挥GPU的性能:nvprof。nvprof有很多对应功能的参数,可以直接看官网文档。
当我们需要对自己写的CUDA程序进行优化分析时候,就可以直接用这个工具,不用在代码里加入过多的时间戳了。
比如如下命令,可以看到程序tmp1的总体性能,下面一行是打印gpu的执行时间情况。
sudo nvprof ./tmp1
sudo nvprof --print-gpu-trace ./tmp1
如下,对于将8192个A,B向量进行向量加法运算,即C[i] = A[i] + B[i],当软件设置不同的blocknum, threadnum时候,CUDA执行kernel的时间是不同的。