Cuda 如何将NVidia Visual Profiler与OpenCL(在Linux上)结合使用?

Cuda 如何将NVidia Visual Profiler与OpenCL(在Linux上)结合使用?,cuda,opencl,Cuda,Opencl,我正在尝试使用nvvp来分析opencl内核。 我正在用GTX580运行Ubuntu12.0464B,并且已经验证了CUDA工具包工作正常(我可以运行并分析CUDA代码)。 尝试调试opencl代码时,我得到: 警告:未分析CUDA应用程序,正在退出 任何提示?nvvp只能评测CUDA应用程序。Nvidia的可视评测器(nvvp)可用于评测OpenCL程序,但这比直接在CUDA中评测更痛苦 布里斯托大学的高性能计算组提出了原始的解决方案(),并且我可以验证它的工作原理。p> 我将总结基本内容:

我正在尝试使用nvvp来分析opencl内核。 我正在用GTX580运行Ubuntu12.0464B,并且已经验证了CUDA工具包工作正常(我可以运行并分析CUDA代码)。 尝试调试opencl代码时,我得到:
警告:未分析CUDA应用程序,正在退出


任何提示?

nvvp只能评测CUDA应用程序。

Nvidia的可视评测器(nvvp)可用于评测OpenCL程序,但这比直接在CUDA中评测更痛苦

布里斯托大学的高性能计算组提出了原始的解决方案(),并且我可以验证它的工作原理。p> 我将总结基本内容:

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

    profilelogformat CSV
    streamid
    gpustarttimestamp
    gpuendtimestamp
    
  • 接下来要执行实际的评测,在本例中,我将评测一个名为HuffFramework的OpenCL应用程序,使用:

    COMPUTE_PROFILE=1 COMPUTE_PROFILE_CONFIG=nvvp.cfg ./HuffFramework
    
  • 然后生成一系列opencl_profile_u*.log文件,其中*是线程数

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

    sed 's/OPENCL_/CUDA_/g' opencl_profile_0.log > cuda_profile_0.log
    
  • 最后,cuda_profile_0.log现在可以由nvvp导入,方法是启动nvvp并进入File->Import…->命令行分析器,将其指向cuda_profile_0.log并按下


我也很害怕,尽管我在NVidia的文档中找不到这方面的内容。。。有替代方案吗?尽管它仍然是一个正在开发的项目,但您可以使用LTPV获得OpenCL应用程序的时间轴视图:实际上,这不是100%正确的。它现在在这里:可能的重复看到我的答案