如何在OpenCL上使用NVidia Visual Profiler(在Linux上)?

时间:2012-08-23 15:16:44

标签: cuda opencl

我正在尝试使用nvvp来配置opencl内核。 我正在使用GTX 580运行ubuntu 12.04 64b,并验证了CUDA工具包工作正常(我可以运行并配置cuda代码)。 在尝试调试我的opencl代码时,我得到:
Warning: No CUDA application was profiled, exiting
任何提示?

2 个答案:

答案 0 :(得分:3)

Nvidia的视觉分析器(nvvp)可用于分析OpenCL程序,但它比CUDA中的分析更加痛苦。

Simon McIntosh's布里斯托大学的高性能计算小组提出了原始解决方案(here),我可以验证它是否有效。

我总结了基础知识:

  • 首先,必须设置环境变量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 ...->命令行Profiler,将其指向cuda_profile_0.log并预先输入!

enter image description here

答案 1 :(得分:-1)

nvvp只能分析CUDA应用程序。