2010-03-08 76 views
4

如果我有这样的:OpenCL中错误代码的perror()等价物是什么?

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雪豹(包括那只是为了以防万一,但我认为它不相关)

回答

1

如果您有NVIDIA OpenCL SDK,那么您可以使用oclUtils提供的oclErrorString()函数。

1

目前还没有。我最终以gluErrorString()的风格写作了自己的作品。我只是将所有cl_error代码粘贴到一个文件中,并在Emacs中处理每行以将其转换为switch语句内的一组情况(以允许不连续的条目)返回常量字符串。这很容易,而且非常有用。如果你喜欢,我可以把它发布到某个地方。

+0

我在哪里可以找到所有cl_error代码的列表? – Yktula 2010-05-27 01:46:01

+2

完整列表位于标题中:http://www.khronos.org/registry/cl/api/1.0/cl.h – gavinb 2010-05-31 06:48:11

+0

您可以发布该功能吗?我会很感激。 – 2013-06-04 15:22:29

相关问题