【问题标题】:Profiling OpenCL kernels分析 OpenCL 内核
【发布时间】:2015-04-01 19:48:55
【问题描述】:

我正在尝试优化我的 OpenCL 内核,而我现在只有 NVidia Visual Profiler,这似乎相当受限制。我想查看内核的逐行配置文件,以更好地了解合并等问题。有没有办法获得比 Visual Profiler 提供的更全面的分析数据?

【问题讨论】:

    标签: profiling opencl


    【解决方案1】:

    我认为 AMD CodeXL 正是您所寻找的。它是一套免费的工具,包含一个 OpenCL 调试器和一个 GPU 分析器。 OpenCL 调试器允许您对 OpenCL 内核和主机代码进行逐行调试,查看不同工作组中的所有变量,查看发生的特殊事件和错误等。 GPU 分析器有一个很好的功能,它可以生成一个时间线,显示您的程序在数据传输和内核执行等任务上花费了多长时间。

    欲了解更多信息和下载链接,请查看http://developer.amd.com/tools-and-sdks/heterogeneous-computing/codexl/

    【讨论】:

    • OpenXL - GPUOPEN 仅适用于 AMD 处理器,这是许多用户的主要限制
    • 我认为您混淆了两个不同的术语:CodeXL 是 AMD 的工具套件,是作为 AMD 的 GPUOpen 计划的一部分开源的产品之一。我认为该计划的全部目的是允许开发人员和业内其他参与者扩展这些工具,以便他们支持更多平台。
    • 正式地,CodeXL 需要 AMD GPU、驱动程序和 SDK 来分析 OpenCL 应用程序。请参阅github.com/GPUOpen-Tools/CodeXL/releases/download/v2.0/… 中的先决条件部分。
    【解决方案2】:

    不,没有这样的工具,但您可以分析您的代码更改。尝试测量代码的速度,更改某些内容,然后再次测量。 clEnqueueNDRangeKernel 有一个 Event 参数,之后可以与 clGetEventProfilingInfo 一起使用,计时器非常灵敏,精度以微秒为单位测量。这是衡量单独代码部分性能的唯一方法...

    【讨论】:

      【解决方案3】:

      我没有测试它,但我刚刚找到了这个程序http://www.gremedy.com/gDEBuggerCL.php。 描述是:“这款新产品将 gDEBugger 的高级调试、分析和内存分析能力带入了 OpenCL 开发人员的世界……”

      【讨论】:

        【解决方案4】:

        LTPV is an open-source, OpenCL profiler 可能符合您的要求。目前,它只能在 Linux 下运行。

        (披露:我是这个工具的开发者)

        【讨论】:

          猜你喜欢
          • 2021-07-08
          • 1970-01-01
          • 2018-07-20
          • 2011-12-06
          • 2016-01-17
          • 2018-02-08
          • 2013-04-24
          • 2013-05-01
          • 2019-05-26
          相关资源
          最近更新 更多