将CPU改为GPU并运行OpenCL程序遇到调用模糊提示

标签 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)

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

最佳答案

大多数“不明确”错误是因为您传递了混合参数类型。

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

关于将CPU改为GPU并运行OpenCL程序遇到调用模糊提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37100828/

相关文章:

c - 将 "String"拆分为 C 中的字符

c# - 如何检查位值是否等于 1?

opencl - 将许多内存对象通知 OpenCL 内核的正确方法?

windows - 如何以编程方式杀死 CUDA 内核

ios - 如何通过代码获取 iOS 设备的 GPU 信息

c - C 中的多重链表

c - 使用 Gstreamer 播放蓝牙音频流

c - 如果我只知道linux中使用proc的进程名称,如何获取pid

c - 包含 header OpenCL(32 位与 64 位)

c++ - GPU编程策略