OpenCL在Mac上开发注意的一些问题
2013-04-16 14:38
162 查看
前提:作者所用平台Mac mini Mac OS X version 10.7.5 ,CPU :Intel Core i5-2520, 显卡:ATI Radeon HD 6630M,OpenCL 1.1
本文主要是阐述一下在OpenCL开发过程中出现了一些属于Mac平台限制的几个问题:
(1)在赋值时候的强制转化问题
例如:如果在kernel里面含有如下语句
处理上述问题的办法就是将0强制转化为float类型:
(2)在运算过程中的强制转化问题
例如:如果在kernel里面含有如下语句
Mac不会强制的将数据类型转化,只能靠手动将其数据类型强制转化:
例如:如果在options里面包含有潜在的多余空格的话,如下:
(4)其他
例如:如果在kernel中包含下面代码
当改为:
编译通过,具体原因还待进一步考究。
本文主要是阐述一下在OpenCL开发过程中出现了一些属于Mac平台限制的几个问题:
(1)在赋值时候的强制转化问题
例如:如果在kernel里面含有如下语句
int A = 8; float f = 0.1; float ss; ss = (A>0)? f:0;此时Mac就会提示:CL_BUILD_PROGRAM_FAILURE
处理上述问题的办法就是将0强制转化为float类型:
int A = 8; float f = 0.1; float ss; ss = (A>0)? f : (float)0;作者遇到的基本上是从int强制转化为char,或者其他非float类型必须强制转化为float类型等。
(2)在运算过程中的强制转化问题
例如:如果在kernel里面含有如下语句
float sum = 0; int a = 1; int b = 2; sum = a * b + sum;此时Mac同样会提示:CL_BUILD_PROGRAM_FAILURE
Mac不会强制的将数据类型转化,只能靠手动将其数据类型强制转化:
float sum = 0; int a = 1; int b = 2; sum = (float) a * (float) b + sum;(3)隐含的空格问题
例如:如果在options里面包含有潜在的多余空格的话,如下:
clBuildProgram (cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void (CL_CALLBACK *pfn_notify)(cl_program program, void *user_data);如果在clBuildProgram中的options中显示或者有潜在隐含的多余空格的话,就会提示CL_INVAILD_BUILD_OPTIONS,做法是去掉多余空格。
(4)其他
例如:如果在kernel中包含下面代码
#define dst (( dst >> 1 ) & 1)在开发过程中遇到上述问题,就会提示CL_BUILD_PROGRAM_FAILURE
当改为:
#define dst (( dst / 2 ) & 1)
编译通过,具体原因还待进一步考究。
相关文章推荐
- Direct show 开发时注意的一些问题
- iOS开发Automatic Refernce Counting 下注意的一些问题
- java实际开发中泛型使用需要注意的一些问题
- 开发中注意的一些小问题
- 开发BS系统中应该注意的一些问题
- VB6开发中注意的一些小问题
- 总结移动端页面开发时需要注意的一些问题
- Android开发环境搭建一些注意问题
- iOS开发--iOS多线程操作时一些要注意的安全问题
- 总结移动端页面开发时需要注意的一些问题
- Direct show 开发时注意的一些问题
- 移动端页面开发时需要注意的一些问题总结
- Mac开发环境下安装Myeclipse 10 所需要主要的一些问题
- 注意Hibernate4在开发当中的一些改变和遇到的一些问题及其解决方案
- 总结iOS开发当中一些特别注意的问题
- Direct show 开发时注意的一些问题
- 使用VS2005开发64位驱动程序需要注意的一些问题
- Android开发中要注意的一些问题
- [ios]总结iOS开发当中一些特别注意的问题 【转】
- 总结移动端页面开发时需要注意的一些问题