调试openCL主机代码时,`clEnqueueReadBuffer`为什么会中断?

调试openCL主机代码时,`clEnqueueReadBuffer`为什么会中断?,opencl,amd-processor,Opencl,Amd Processor,当我按下这里的break键时,它会 Unhandled exception at 0x10001098 in CL_kmeans.exe: 0xC000001D: Illegal Instruction. 这里可能有什么问题?请给我建议一些解决办法。 我的内核代码如上所述,我用来读取数据的语句是 No symbols are loaded for any call stack frame. The source code cannot be displayed. 我如何在这里检查可能的错误?

当我按下这里的break键时,它会

Unhandled exception at 0x10001098 in CL_kmeans.exe: 0xC000001D: Illegal Instruction.
这里可能有什么问题?请给我建议一些解决办法。 我的内核代码如上所述,我用来读取数据的语句是

No symbols are loaded for any call stack frame. The source code cannot be displayed.

我如何在这里检查可能的错误?

您能详细介绍一下您正在使用的OpenCL实现吗?这是AMD的实施吗?您正在使用CPU设备吗?是的,boiler96。。它是AMD的实现,但我拥有的ATI卡是3xxx系列,不支持openCL。因此它在cpu上运行。我猜clEnqueueReadBuffer是ClenqueueEndRangeKernel之后的第一个阻塞调用。如果这是真的,那么我认为异常是由为内核生成的代码引起的。你是在AMD CPU上吗?是的,我在ClenqueueEndRangeKernel之后立即调用clEnqueueReadBuffer。。如何知道内核bcz断点生成的异常在内核代码中不起作用。。??是的,我正在使用AMD CPU。在这一点上,我能猜到的是,你在AMD OpenCL SDK中发现了一个bug。它似乎正在生成处理器不支持的指令。
No symbols are loaded for any call stack frame. The source code cannot be displayed.
ret = clEnqueueReadBuffer(command_queue, gpu_data, CL_TRUE, 0,sizeof( float ) * instances->cols* 1 , instances->data, 0, NULL, NULL);