我们有一段 C++ 代码,希望在添加 CUDA 代码之前,使用 Nvidia Nsight Eclipse (Linux 版本) 进行性能分析。我们的想法是先对 C++ 进行性能分析,找出热点,将其转换为 CUDA 代码,再进行性能分析,并不断迭代此过程以逐步提高代码效率。然而,当我们只对 C++ 进行性能分析时,看起来分析器需要一些现有的 CUDA 代码才能生成时间轴和分析输出。是否有其他人遇到过这种情况?
您可以使用nvtx(NVIDIA工具扩展)手动检测您的代码,并在Nsight中显示时间轴,但对于自动分析和详细计数器,它只能分析GPU代码。
#include "nvToolsExt.h"
nvtxNameOsThread(0,"InputVideo");
nvtxRangePush(__FUNCTION__);
// .. do some CPU computing here
nvtxRangePop();
使用 -lnvToolsExt -L/usr/local/cuda/lib64 进行构建。
libnvToolsExt.so 的路径对每个人都不同。NVTX 随 CUDA 工具包一起提供。