0

Apple によって実装された 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 しかし、このスレッドは古いです。最近Appleが半精度をサポートしているかどうか誰か教えてください。

4

2 に答える 2

0

拡張機能が特定の実装でサポートされているかどうかを知りたい場合 (Apple のものか別のものかに関係なく)、関数を使用するだけです

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)

param_name 引数に値 CL_PLATFORM_EXTENSIONS を渡します。
拡張機能名のスペース区切りのリストを返します。
このリストは、「このプラットフォームに関連付けられたすべてのデバイスでサポートされている」拡張機能を返す必要があることに注意してください。

したがって、プラットフォームが cl_khr_fp16 拡張機能をサポートしていても、デバイスがサポートしていない場合でも、リストに表示されないことを意味します。デバイスで使用可能な拡張機能を知るには

clGetDeviceInfo(...)

param_name 引数に値 CL_DEVICE_EXTENSIONS を指定します。

于 2013-07-02T12:04:58.007 に答える