【问题标题】:how to use NVidia Visual Profiler with OpenCL (on Linux)?如何将 NVidia Visual Profiler 与 OpenCL(在 Linux 上)一起使用?
【发布时间】:2016-11-03 12:45:05
【问题描述】:

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

【问题讨论】:

标签: cuda opencl


【解决方案1】:

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...->Command-line Profiler,将其指向 cuda_profile_0.log 并预先设置!

【讨论】:

    【解决方案2】:

    nvvp 只能分析 CUDA 应用程序。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2014-07-25
    • 2017-10-15
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多