如果我有类似的话:
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雪豹(包括以防万一,但我不认为它是相关的)
答案 0 :(得分:1)
如果你有NVIDIA OpenCL SDK,那么你可以使用oclUtils提供的oclErrorString()
功能。
答案 1 :(得分:1)
目前没有。我最终以gluErrorString()
的风格写了自己的作品。我只是将所有cl_error
代码粘贴到一个文件中,并处理Emacs中的每一行,将其转换为返回常量字符串的switch语句(允许不连续的条目)内的一堆案例。这很简单,非常有用。如果你愿意,我可以把它贴在某处。