我可以通过选择CPU设备成功编译和运行我的程序。但当我将其更改为GPU时,我遇到了大量的错误:
<program source>:73:24: error: call to '__cl_pow' is ambiguous
result = 700 - (x1+pow(x2,2)+x2*x3);
^~~~~~~~~
/System/Library/Frameworks/OpenCL.framework/Versions/A/lib/clang/3.2/include/cl_kernel.h:4662:27: note: expanded from macro 'pow'
#define pow(__x, __y) __cl_pow(__x, __y)
为什么会发生这种情况,我该怎么办? 谢谢
答案 0 :(得分:0)
大多数“含糊不清”错误是因为您传递的是混合参数类型。
很可能“x2”是浮点数(正确吗?)。 “2”被解释为int。在其他情况下,人们使用“2.0”,它被解释为double。解决方案:使用“2.0f”强制浮动。