我如何在Xcode 4.1中调试OpenCL内核?
我有一些OpenCL内核没有做他们应该做的,我很想在Xcode中调试它们。 这可能吗?
如果没有,我有没有办法在我的基于CPU的内核中使用printf()
? 当我在我的内核中使用printf()
,OpenCL编译器总是给我一大堆错误。
将格式字符串转换为const char *似乎可以解决此问题。
这在Lion上适用于我:
printf((char const *)"%d %dn", dl, dll);
这有上面描述的错误:
printf("%d %dn", dl, dll);
你可能也想尝试使用Quartz Composer来测试你的内核。 如果您有权访问WWDC 2010视频,我相信他们将展示如何使用Quartz Composer在Sessions 416中快速创建OpenCL内核原型:“在您的应用程序中使用OpenCL”或418:“最大化OpenCL性能”。 在WWDC 2009和2008上也有一些关于此的会议,也可能通过iTunes在iTunes上提供。
使用Quartz Composer,您可以快速设置内核的输入和输出,然后实时监控结果。 您可以避免更改编译测试循环,因为在键入时编译所有内容。 语法错误等会在您更改代码时弹出,这可以很容易地识别这些错误。
我使用这个工具来开发和测试OpenGL着色器,这些着色器与OpenCL内核有许多共同之处。
你有没有给gDEBugger一个试试吗? 我认为这是您在Mac上进行OpenCL调试的唯一选择。
英特尔在其新的OpenCL 1.1 SDK中提供了printf,但这仅适用于Linux和Windows。 Lion有OpenCL 1.1,但至少我的Core 2 Duo不支持printf扩展。
据我所知,AMD仍在开发他们的OpenCL工具,而Nvidia调试工具仅用于CUDA。
链接地址: http://www.djcxy.com/p/54607.html上一篇: How can I debug an OpenCL kernel in Xcode 4.1?
下一篇: C++ Cross platform file explorer implementation challenges