将CPU更改为GPU并运行OpenCL程序并满足调用模糊提示

时间:2016-05-08 14:19:32

标签: c opencl gpu cpu distributed-computing

我可以通过选择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)

为什么会发生这种情况,我该怎么办? 谢谢

1 个答案:

答案 0 :(得分:0)

大多数“含糊不清”错误是因为您传递的是混合参数类型。

很可能“x2”是浮点数(正确吗?)。 “2”被解释为int。在其他情况下,人们使用“2.0”,它被解释为double。解决方案:使用“2.0f”强制浮动。