OpenCL中错误代码的perror()等价物是什么?

时间:2010-03-08 04:53:12

标签: debugging osx-snow-leopard opencl

如果我有类似的话:

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

我想这样做:

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

但perror()不知道“CL_HOST_OUT_OF_MEMORY”之类的错误常数(可以理解)。

我可以去处理与opencl相关的.h文件,但这不是一个理想的解决方案。我对任何其他方便的跟踪错误号码的方式持开放态度。我在OSX雪豹(包括以防万一,但我不认为它是相关的)

2 个答案:

答案 0 :(得分:1)

如果你有NVIDIA OpenCL SDK,那么你可以使用oclUtils提供的oclErrorString()功能。

答案 1 :(得分:1)

目前没有。我最终以gluErrorString()的风格写了自己的作品。我只是将所有cl_error代码粘贴到一个文件中,并处理Emacs中的每一行,将其转换为返回常量字符串的switch语句(允许不连续的条目)内的一堆案例。这很简单,非常有用。如果你愿意,我可以把它贴在某处。