我可以通过选择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)
为什么会发生这种情况以及我该怎么办? 谢谢
最佳答案
大多数“不明确”错误是因为您传递了混合参数类型。
“x2”很可能是 float (正确吗?)。 “2”被解释为 int。在其他情况下,人们使用“2.0”,它被解释为 double 。解决方案:使用“2.0f”强制 float 。
关于将CPU改为GPU并运行OpenCL程序遇到调用模糊提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37100828/