4

我们有 C++ 代码,我们想在向其添加 CUDA 代码之前使用 Nividia Nsight Eclipse(Linux 版本)对其进行分析。想法是先对 C++ 进行剖析,找到热点,将其转换为 CUDA,再次剖析,然后迭代此过程以逐步加快代码速度。但是,当我们仅对 C++ 进行分析时,分析器似乎需要一些现有的 CUDA 代码才能生成时间线和分析输出。有人遇到过这种情况么?

4

3 回答 3

2

Nsight Eclipse Edition 只能分析 CUDA 代码。您可能需要安装第 3 方分析插件来分析主机代码。

您可以尝试从 Eclipse Foundation 站点安装 OProfile 集成(将http://download.eclipse.org/releases/indigo/粘贴到 Help/Install New Software... 对话框中) - 我刚刚尝试过,但无法正确设置 oprofile命令行。

于 2012-09-21T19:04:49.830 回答
1

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

于 2012-09-21T21:47:34.567 回答
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 博客对此有一篇文章。

于 2017-01-05T11:24:58.253 回答