2013-07-02 60 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月)