请参阅下图所示的Nvidia Nsight 2.2评测会话(Win7、MSVC++ 10专业版、CUDA4.2、GTX670)。

在第一个主机线程(26.8%)上,我从CUDA API获取函数调用名称。是否可以从主机进程中的第二个线程(13.6%)执行的用户定义函数中获取函数调用名称?如果是这样的话,是怎么做的?
发布于 2012-08-02 04:47:05
Paul,默认情况下这是不支持的。
使用NVIDIA工具扩展(NVTX)库,您可以手动检测代码。此库安装在目录C:\Program Files\NVIDIA GPU Computing Toolkit\nvToolsExt with Nsight Visual Studio Edition (所有版本)或CUDA Toolkit 5.0 RC中。在5.0 RC中,Visual Profiler支持NVTX。
该库附带了两个示例,向您展示如何使用该库。NvtxMultithread.cpp示例提供了帮助器库。感兴趣的函数包括
nvtxRangePushA
nvtxRangePop或者,如果您使用的是C++,则帮助器库具有可用作以下用途的作用域帮助程序
nvtx::ScopedRange range(__FUNCTION__)在每个函数的顶部。
可以使用cl.exe选项/Gh和/GH自动执行此操作,但这需要编写程序集。
发布于 2012-07-25 14:26:46
这个演示文稿可能会有所帮助。Parallel Nsight: Analyzing and Optimizing Massively Parallel Applications。
https://stackoverflow.com/questions/11638778
复制相似问题