【问题标题】:How do you use double in OpenCL on a MacPro?如何在 MacPro 上的 OpenCL 中使用 double?
【发布时间】:2015-01-17 05:35:28
【问题描述】:

我有一台 Mac Pro(2013 年末),我想使用 OpenCL 做一些数学运算。当我使用 Mavericks 时,我的 FirePro GPU 的 CL_DEVICE_EXTENSIONS 只列出了 cl_APPLE_fp64_basic_ops,所以我不能使用像 exp() 这样的双重数学函数。我最近升级到优胜美地,现在正确的cl_khr_fp64 在扩展列表中,但我仍然不能使用 exp 作为双倍。错误日志显示它正在寻找一个重载的函数,并且 exp 可用于 float、float4、float8 ......但不是 64 位。我已经包含了打开 fp64 的命令:

#pragma OPENCL EXTENSION cl_khr_fp64 : enable

有人知道发生了什么吗?为什么GPU说cl_khr_fp64可用,但我不能全部使用。我可以使用双倍的+-*/,但之前我也可以只使用basic_ops。 Apple 是否在骗我说他们升级了对 fp64 的支持?

奇怪的是,在我的 CPU 上,OpenCL 还说cl_khr_fp64 也可用,但我也不能在 CPU 上使用 exp。

【问题讨论】:

标签: opencl gpu osx-mavericks double-precision


【解决方案1】:

在 OpenCL C 中,您应该将它们称为双精度而不是 cl_khr_fp64s
例如
double pie = M_PI;
double2 two_pies = (double2){M_PI}; // or {M_PI,M_PI};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2013-03-10
    • 2013-01-15
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多