OpenCL在Xcode上使用数学库的问题
小弟初学OpenCL,在mac上使用Xcode自带的OpenCL环境。
sanple程序全部都能跑,可是运行我自己写的程序时,问题就来了:
只要一使用sin,cos之类的函数,编译就会报错如下:
/Users/Ziyu/Develop/SCI/GravityCalc/GravityCalc/GravityCalc/harmonic.cl:110:17: error: call to '__fast_relax_cos' is ambiguous
double c1 = cos(lat);
^~~~~~~~
/System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/../lib/clang/3.2/include/cl_kernel.h:4711:22: note: expanded from macro 'cos'
#define cos(__x) __fast_relax_cos(__x)
^~~~~~~~~~~~~~~~
/System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/../lib/clang/3.2/include/cl_kernel.h:4709:30: note: candidate function
__CLFN_FD_1FD_FAST_RELAX(__fast_relax_cos, native_cos, __cl_cos);
^
/System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/../lib/clang/3.2/include/cl_kernel.h:416:27: note: expanded from macro '__CLFN_FD_1FD_FAST_RELAX'
inline float __OVERLOAD__ _name(float x) { return _default_name(x); } \
^
/System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/../lib/clang/3.2/include/cl_kernel.h:4709:30: note: candidate function
__CLFN_FD_1FD_FAST_RELAX(__fast_relax_cos, native_cos, __cl_cos);
.......
还有像sqrt,pow一类全部都是类似的错误,如果不使用数学函数就可以正常运行。该如何解决呢?
(PS: 改用float型可以通过,可是我需要双精度,而且已经加了#pragma OPENCL EXTENSION cl_khr_fp64 : enable)