有没有办法在 Mac 上为 OpenCL 启用双向量?

Is there a way to enable double vectors for OpenCL on a Mac?

我试图在 OpenCL 中使用 double3,但出现以下错误:

error: field has incomplete type 'double3' (aka 'struct__Unsupported_Type__Do_not_use_double3_on_this_device')

我大概已经使用 #pragma OPENCL EXTENSION cl_khr_fp64 : enable 启用了双精度浮点数据类型,但我不知道为什么会这样。这是MacOS的限制吗?

是的,通过在 mac pro 中使用工作站 class 卡。在带有消费类视频卡的系统上,双打不可用。

您的错误消息几乎说明了一切:

"struct__Unsupported_Type__Do_not_use_double3_on_this_device"

在硬件中支持双打会占用 space 和电源,并且是大多数人不需要的功能,因此大多数显卡不支持它,并且支持的显卡执行常见图形任务的速度比具有相同晶体管数量的那些专用于 32 位浮点数。

这是一篇关于工作站和消费级显卡之间相对双倍性能的文章:https://www.microway.com/knowledge-center-articles/comparison-of-nvidia-geforce-gpus-and-nvidia-tesla-gpus/

简而言之,一张非常昂贵的消费卡(1000 美元)的性能大约是具有类似制造复杂性的高端工作站卡的两倍。