Nsight Eclipse能够对C++代码进行性能分析吗?

4
我们有一段 C++ 代码,希望在添加 CUDA 代码之前,使用 Nvidia Nsight Eclipse (Linux 版本) 进行性能分析。我们的想法是先对 C++ 进行性能分析,找出热点,将其转换为 CUDA 代码,再进行性能分析,并不断迭代此过程以逐步提高代码效率。然而,当我们只对 C++ 进行性能分析时,看起来分析器需要一些现有的 CUDA 代码才能生成时间轴和分析输出。是否有其他人遇到过这种情况?
3个回答

2
Nsight Eclipse Edition只能对CUDA代码进行分析。您可能需要安装第三方分析插件来分析主机代码。
您可以尝试从Eclipse Foundation网站安装OProfile集成(在帮助/安装新软件...对话框中粘贴http://download.eclipse.org/releases/indigo/)- 我刚刚尝试了一下,但无法正确设置oprofile命令行。

1

您可以使用nvtx(NVIDIA工具扩展)手动检测您的代码,并在Nsight中显示时间轴,但对于自动分析和详细计数器,它只能分析GPU代码。


1
是的,Nsight Eclipse可以对C++代码进行分析。换句话说,它也可以对主机(CPU)的C++代码进行分析。默认情况下,它只会对GPU代码进行分析。CPU分析是一项更加手动化的任务;它不会自动分析函数。
您需要使用NVTX。如下所示:
#include "nvToolsExt.h"
nvtxNameOsThread(0,"InputVideo");
nvtxRangePush(__FUNCTION__);
// .. do some CPU computing here
nvtxRangePop();

使用 -lnvToolsExt -L/usr/local/cuda/lib64 进行构建。

libnvToolsExt.so 的路径对每个人都不同。NVTX 随 CUDA 工具包一起提供。

CUDA 博客上有一篇关于此的文章。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接