2012-08-23 82 views
3

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

+0

的[有没有一种方法来分析在OpenCL或pyOpenCL程序?(可能的复制http://stackoverflow.com/questions/29068229/is-there-a-way- to-profile-an-opencl-or-a-pyopencl-program) – Dschoni

+0

在http://stackoverflow.com/questions/29068229/is-there-a-way-to-profile-an-opencl-or上查看我的答案-a-pyopencl-program/35016313#35016313 – Dschoni

回答

0

nvvp只能配置CUDA应用程序。

+0

尽管我在NVidia的文档中找不到任何地方,但我还是很担心...是否有其他选择? –

+1

虽然它仍然是一个正在开发的项目,但您可以使用LTPV获取OpenCL应用程序的时间轴视图:http://code.google.com/p/ltpv/ –

+0

实际上,这不是100%真实的。 http://uob-hpc.github.io/2015/05/27/nvvp-import-opencl/ – Dschoni

2

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的_ *日志文件,其中*是线程数。

  • 这些日志文件不能被nvvp被加载,只是还没有,因为所有的内核函数的符号已经领先OPENCL_,而不是预期的CUDA_,从而具有快速更换的脚本这些符号,像这样:

    sed 's/OPENCL_/CUDA_/g' opencl_profile_0.log > cuda_profile_0.log 
    
  • 现在可以通过nvvp导入cuda_profile_0.log,方法是启动nvvp并进入File-> Import ...-> Command-line Profiler,将其指向cuda_profile_0.log并将其前导!

enter image description here

相关问题