【问题标题】:How to debug OpenCL on Nvidia GPUs?如何在 Nvidia GPU 上调试 OpenCL?
【发布时间】:2013-08-18 09:39:24
【问题描述】:

有没有办法在 Nvidia GPU 上调试 OpenCL 内核,即设置断点和检查变量?我的理解是Nvidia's tool不允许OpenCL调试,AMD'sIntel's只允许在自己的设备上调试。

【问题讨论】:

  • 我还没有找到解决这个问题的方法,但是我们经常在 AMD 平台上使用 CodeXL 进行调试,以确保我们的代码正常工作,然后在没有调试支持的情况下进行特定于 Nvidia 平台的最终修改和优化.这工作得相当好,但显然需要购买与您的 Nvidia 卡相似的 AMD 卡。这不是一个理想的解决方案,但对我们来说往往效果很好。
  • 支持 CodeXL 工具,AMD 的优秀工具,除了你在 NVIDIA 上不走运,你可能可以使用 printf 命令(khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/…)作为查看本地人的肮脏方式,我建议你转向 AMD GPU,那里的工具和支持要好得多

标签: opencl gpu gpgpu nvidia amd-processor


【解决方案1】:

gDEBugger 可能会对您有所帮助(虽然从未使用过),但除此之外,我所知道的没有任何工具可以设置断点或检查内核中的变量。如果它是一个长内核,也许尝试保存内核的中间输出。对不起,我不能给你一个神奇的解决方案,调试 OpenCL 很难。

【讨论】:

  • This post 提到以前版本的 gDEBugger 支持 Nvidia 卡,但这项工作被放弃了。这个版本以及支持它的驱动程序是否仍然可用?
  • 似乎我应该在发布之前从 Graphic Remedy 检查 gDEBugger 的状态。他们发布的最后一个版本是 2010 年的(仍然可以下载),AMD 的版本现在已被 CodeXL 取代。我不知道旧版本的 gDEBugger 是否有效,但我会尝试并报告。
  • 您可能需要找到较早的版本,因为他们显然在最新版本之前放弃了一些 Nvidia 支持。
  • 我试过 gDEBugger 5.8.1,它似乎只支持 OpenCL 库函数的断点,而不是内核。
  • 我自己试过了,我发现它在下一次 OpenCL 调用时也无法成功暂停应用程序,因此它无法向我显示有关缓冲区等的任何信息。结论 - 没有可用的Nvidia 用户调试 OpenCL 代码。
猜你喜欢
  • 2012-08-17
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 2021-02-03
  • 1970-01-01
相关资源
最近更新 更多