2

我正在使用Cloo用C#开发OpenCL应用程序。我从我的设备(Intel CPU)得到了奇怪的值,所以我决定使用 OpenCL 调试器在内核中设置一些断点。即使我在Visual Studio 2012中启用了Intel Debugger ,它们也会被忽略。也许我应该使用内核的路径而不是包含源的字符串来构建程序,但是我找不到使用 Cloo 的方法。

这是我构建程序的方式:

program = new ComputeProgram(context, kernelSource);
program.Build(devices, "-g", null, IntPtr.Zero);

其中kernelSource是包含OpenCL源的字符串。提前致谢!

4

1 回答 1

2

您需要使用“-g -s”构建您的程序,其中应包含您尝试构建的 .cl 文件。还要确保内核中没有#include 文件。如果没有任何效果,请设置环境变量:

INTEL_OCL_DBG_LOG=1 INTEL_OCL_DBG_LOG_FILE=c:\temp\debugger.txt

并重新启动 Visual Studio。继续调试。这将生成一个日志文件,让我们确定调试不工作的原因。您可以在http://software.intel.com/en-us/forums/intel-opencl-sdk提交此日志。您还可以在这里提交有关英特尔 OpenCL SDK 的问题/提问。

谢谢。

于 2014-02-25T18:50:23.590 回答