2013-07-02 31 views
0

是否有人知道由Apple实施的OpenCL中半精度浮点支持的状态。Apple OS X上的OpenCL半精度扩展支持

根据的OpenCL 1.1规范下面的语句应该使half2:

#pragma OPENCL EXTENSION cl_khr_fp16 : enable 

但是当我来到构建内核编译器会引发这样的消息

error: variable has incomplete type 'half4' (aka 'struct __Reserved_Name__Do_ 

以下线程问类似的问题:OpenCL half4 type Apple OS X 但是这个线程是旧的。任何人都可以请告诉我,如果最近苹果支持半精度?

回答

0

当你想知道,如果一个扩展是由特定的实现(如果不考虑它是苹果公司或其他)的支持,只是使用功能

cl_int clGetPlatformInfo(cl_platform_id platform, 
         cl_platform_info param_name, 
         size_t param_value_size, 
         void *param_value, 
         size_t *param_value_size_ret) 

传递值CL_PLATFORM_EXTENSIONS为PARAM_NAME说法。
它将返回空格分隔的扩展名列表。
请注意,此列表必须返回“受与此平台关联的所有设备支持的扩展名”。

因此,这意味着即使平台支持cl_khr_fp16扩展名,但不支持您的设备,它也不会出现在列表中。 要知道您的设备上可用的扩展使用

clGetDeviceInfo(...) 

与价值CL_DEVICE_EXTENSIONS为PARAM_NAME说法。

+0

我已经知道我目前的Apple OS版本不支持OpenCL cl_khr_fp16扩展名。我的问题是苹果操作系统的最新版本是否支持这个功能?如果是这样,那么我将安装该版本的Apple OS。 – dosmin

0

有关OpenCL扩展查询的一般答案,请参阅CaptainObvious上面的答案(https://stackoverflow.com/a/17425167/5394228)。

我向Apple Developer Support询问了这件事情,他们说Metal有一半的支持,现在还没有计划为OpenCL添加新功能。 (他们回答了2017年11月)