如何将 NVidia Visual Profiler 与 OpenCL(在 Linux 上)一起使用?

Ema*_* Ey 5 cuda opencl

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

小智 5

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

布里斯托大学西蒙·麦金托什的高性能计算小组提出了原始解决方案(此处),我可以验证它是否有效。

我将总结一下基础知识:

  • 首先,必须设置环境变量 COMPUTE_PROFILE,这是通过COMPUTE_PROFILE=1
  • 其次,必须提供一个COMPUTE_PROFILE_CONFIG,我使用的示例(称为 nvvp.cfg)包含:

    profilelogformat CSV
    streamid
    gpustarttimestamp
    gpuendtimestamp
    
    Run Code Online (Sandbox Code Playgroud)
  • 接下来执行实际的分析,在本例中,我将使用以下命令分析一个名为 HuffFramework 的 OpenCL 应用程序:

    COMPUTE_PROFILE=1 COMPUTE_PROFILE_CONFIG=nvvp.cfg ./HuffFramework
    
    Run Code Online (Sandbox Code Playgroud)
  • 然后生成一系列 opencl_profile_*.log 文件,其中 * 是线程数。

  • 这些日志文件还不能被 nvvp 加载,因为所有内核函数符号都有一个前导OPENCL_而不是预期的CUDA_,因此用一个快速脚本替换这些符号,如下所示:

    sed 's/OPENCL_/CUDA_/g' opencl_profile_0.log > cuda_profile_0.log
    
    Run Code Online (Sandbox Code Playgroud)
  • 最后,cuda_profile_0.log 现在可以由 nvvp 导入,方法是启动 nvvp 并转到“文件”->“导入...”->“命令行分析器”,将其指向 cuda_profile_0.log 和 preso!

在此输入图像描述


Eug*_*ene 0

nvvp 只能分析 CUDA 应用程序。