【发布时间】:2015-04-01 19:48:55
【问题描述】:
我正在尝试优化我的 OpenCL 内核,而我现在只有 NVidia Visual Profiler,这似乎相当受限制。我想查看内核的逐行配置文件,以更好地了解合并等问题。有没有办法获得比 Visual Profiler 提供的更全面的分析数据?
【问题讨论】:
我正在尝试优化我的 OpenCL 内核,而我现在只有 NVidia Visual Profiler,这似乎相当受限制。我想查看内核的逐行配置文件,以更好地了解合并等问题。有没有办法获得比 Visual Profiler 提供的更全面的分析数据?
【问题讨论】:
我认为 AMD CodeXL 正是您所寻找的。它是一套免费的工具,包含一个 OpenCL 调试器和一个 GPU 分析器。 OpenCL 调试器允许您对 OpenCL 内核和主机代码进行逐行调试,查看不同工作组中的所有变量,查看发生的特殊事件和错误等。 GPU 分析器有一个很好的功能,它可以生成一个时间线,显示您的程序在数据传输和内核执行等任务上花费了多长时间。
欲了解更多信息和下载链接,请查看http://developer.amd.com/tools-and-sdks/heterogeneous-computing/codexl/
【讨论】:
不,没有这样的工具,但您可以分析您的代码更改。尝试测量代码的速度,更改某些内容,然后再次测量。 clEnqueueNDRangeKernel 有一个 Event 参数,之后可以与 clGetEventProfilingInfo 一起使用,计时器非常灵敏,精度以微秒为单位测量。这是衡量单独代码部分性能的唯一方法...
【讨论】:
我没有测试它,但我刚刚找到了这个程序http://www.gremedy.com/gDEBuggerCL.php。 描述是:“这款新产品将 gDEBugger 的高级调试、分析和内存分析能力带入了 OpenCL 开发人员的世界……”
【讨论】:
LTPV is an open-source, OpenCL profiler 可能符合您的要求。目前,它只能在 Linux 下运行。
(披露:我是这个工具的开发者)
【讨论】: