如果我有类似的东西:

err = clEnqueueReadBuffer(cmdQueue, output, CL_TRUE, 0, sizeof(float) * data_sz, &results, 0, NULL, NULL);

我想做:

if (err != CL_SUCCESS){
    perror("Read Failed!");
}

但是,诸如“ cl_host_out_of_memory”之类的错误常数(可以理解)Perror()是不知道的。

我可以四处浏览与OpenCL关联的.H文件,但这不是理想的解决方案。我对跟踪错误号码的任何其他方便方法开放。我在OSX Snow Leopard上(包括以防万一,但我认为这没有相关)

有帮助吗?

解决方案

如果您有nvidia opencl sdk,则可以使用 oclErrorString() Oclutils提供的功能。

其他提示

目前没有。我最终以自己的风格写作 gluErrorString(). 。我刚粘贴了所有的 cl_error 将代码编码到文件中,然后处理Emacs中的每一行,以将其转换为返回常数字符串的开关语句(允许不连续的条目)中的一堆情况。这很容易,而且非常有用。如果您愿意,我可以在某个地方发布它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top