请参阅下面的Nvidia Nsight 2.2分析会话图(Win7,MSVC ++ 10 Pro,CUDA 4.2,GTX 670)。
在第一个主机线程(26.8%)上,我从CUDA API获取函数调用名称。是否可以从主机进程中的第二个线程(13.6%)执行用户定义函数中的函数调用名称?如果是这样,怎么样?
答案 0 :(得分:1)
Paul,默认情况下不支持此功能。
使用NVIDIA工具扩展(NVTX)库,您可以手动检测代码。该库安装在目录C:\ Program Files \ NVIDIA GPU Computing Toolkit \ nvToolsExt中,带有Nsight Visual Studio Edition(所有版本)或CUDA Toolkit 5.0 RC。 Visual Profiler在5.0 RC中支持NVTX。
该库附带两个示例,向您展示如何使用该库。 NvtxMultithread.cpp示例提供了一个帮助程序库。感兴趣的功能是
nvtxRangePushA
nvtxRangePop
或者如果您使用的是C ++,则帮助程序库具有可用作
的作用域帮助程序nvtx::ScopedRange range(__FUNCTION__)
位于每个功能的顶部。
可以使用cl.exe选项/ Gh和/ GH自动执行此操作,但这需要编写程序集。
答案 1 :(得分:0)