首页 > 软件开发 > 其他综合 > 正文
3.9 OpenCL错误处理
2015-12-07 15:44:25     我来说两句      
收藏    我要投稿

对于OpenCL中每个API函数都有相应的函数执行状态,如函数clGetPlatformIDs()的返回值,或函数clCreateContext()最后一个参数errcode_ret。我们可以通过检查这个执行状态来获知某个OpenCL主机端的函数API是否执行成功,还是由于某些资源限制等问题使函数执行失败。成功执行,返回的状态为CL_SUCCESS,如果执行失败都会有相应的错误码。在opencl.h头文件中,列出了所有可能的错误代码,笔者把这些错误代码在表3-15中列出来。



 


如果OpenCL API执行返回状态不是CL_SUCCESS,可以用表格中的错误码对比函数返回状态,能够很快分析并解决程序中的问题。例如:

_kernel void SobelProecess(global char *SrcData,
                           global char *DstData )
{
    ……
}

内核函数名为SobelProcess,在创建内核时,我们手误输入如下:

cl_int err
cl_kernel kernel = clCreateKernel(program, "Sobelproecess",
&err);

此时,err的返回值为CL_INVALID_KERNEL_NAME(-46)。根据函数返回执行状态err,我们可以找出OpenCL API执行是否成功,如果不成功,根据错误代码分析出错误原因。

点击复制链接 与好友分享!回本站首页
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.8 编写内核代码
下一篇:3.10 本章小结
相关文章
图文推荐
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站