我正在尝试使用 nvvp 来分析 opencl 内核。我正在运行带有 GTX 580 的 ubuntu 12.04 64b 并已验证 CUDA 工具包工作正常(我可以运行和分析 cuda 代码)。尝试调试我的 opencl 代码时,我得到:
Warning: No CUDA application was profiled, exiting
任何提示?
问问题
4737 次
2 回答
4
Nvidia 的视觉分析器 (nvvp) 可用于分析 OpenCL 程序,但它比直接在 CUDA 中进行分析更痛苦。
布里斯托大学的Simon McIntosh 的高性能计算小组提出了最初的解决方案(这里),我可以验证它是否有效。
我将总结基础知识:
- 首先,必须设置环境变量 COMPUTE_PROFILE,这是通过
COMPUTE_PROFILE=1
其次,
COMPUTE_PROFILE_CONFIG
必须提供一个,我使用的样本(称为 nvvp.cfg)包含:profilelogformat CSV streamid gpustarttimestamp gpuendtimestamp
接下来执行实际的分析,在这种情况下,我将分析一个名为 HuffFramework 的 OpenCL 应用程序,使用:
COMPUTE_PROFILE=1 COMPUTE_PROFILE_CONFIG=nvvp.cfg ./HuffFramework
然后这会生成一系列 opencl_profile_*.log 文件,其中 * 是线程数。
nvvp 无法加载这些日志文件,因为所有内核函数符号都有前导
OPENCL_
而不是预期的CUDA_
,因此用快速脚本替换这些符号,如下所示:sed 's/OPENCL_/CUDA_/g' opencl_profile_0.log > cuda_profile_0.log
最后 cuda_profile_0.log 现在可以通过 nvvp 导入,通过启动 nvvp 并转到 File->Import...->Command-line Profiler,将其指向 cuda_profile_0.log 就可以了!
于 2016-11-03T04:45:05.343 回答
-1
nvvp 只能分析 CUDA 应用程序。
于 2012-08-23T15:47:56.077 回答