clGetDeviceIDs/1.2
提供: Tommy6
cl_int clGetDeviceIDs[1] (cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices)
指定したOpenCLプラットフォーム上の有効なOpenCLデバイスのリストを取得します。
パラメータ
- platform
- clGetPlatformIDs で取得したプラットフォームIDを指定します。NULL を指定することもできます。platform が NULL のときの振る舞いは実装に依存します。
- device_type
- 取得するOpenCLデバイスのタイプを指定するビットフィールドです。device_type は、特定のOpenCLデバイスを取得するのにも、全ての有効なOpenCLデバイスを取得するのにも用いることができます。有効な値は以下のとおりです。
- 1.2 : OpenCL 1.2で追加
cl_device_type 解説 CL_DEVICE_TYPE_CPU ホストプロセッサとなっているOpenCLデバイスです。ホストプロセッサはOpenCL実装を動かすもので、シングルあるいはマルチコアのCPUです。 CL_DEVICE_TYPE_GPU GPUです。これは、OpenGL や DirectX といった 3D API をアクセラレートするのにも、このデバイスを用いることができることを意味します。 CL_DEVICE_TYPE_ACCELERATOR CELLなどのようなアクセラレータです。こういったデバイスは、PCIe のような接続手段を用いてホストプロセッサをやり取りを行います。 CL_DEVICE_TYPE_CUSTOM OpenCL C で書かれたプログラムをサポートしない専用アクセラレータです。 CL_DEVICE_TYPE_DEFAULT システムのデフォルトのOpenCLデバイスです。CL_DEVICE_TYPE_CUSTOM デバイスはデフォルトデバイスにはなれません。 CL_DEVICE_TYPE_ALL CL_DEVICE_TYPE_CUSTOM デバイスを除くシステム上の有効なOpneCLデバイス全てです。
- num_entries
- devices に追加可能な cl_device_id エントリの数を指定します。devices が NULL でないのなら、num_entries は0より大きな値でなければなりません。
- devices
- OpenCLデバイスのリストを返します。devices 内に返された cl_device_id の値は、特定のOpenCLデバイスを指定するのに用いることができます。devices が NULL のとき、この引数は無視されます。返されるOpenCLデバイスの数は、「num_entries で指定した値」と 「device_type と一致するOpenCLデバイスの数」のうち値が小さなほうになります。
- num_devices
- device_type とマッチする有効なOpenCLデバイスの数を返します。num_devices が NULL のとき、この引数は無視されます。
エラー
実行が成功した場合、clGetDeviceIDs は CL_SUCCESS を返します。そうでない場合は以下のエラーのうちひとつを返します。
- CL_INVALID_PLATFORM - platform が有効なOpenCLプラットフォームでないとき。
- CL_INVALID_DEVICE_TYPE - device_type が有効な値でないとき。
- CL_INVALID_VALUE - num_entries が0でかつ platforms が NULL でないとき。あるいは、num_platforms と platforms の両方が NULL のとき。
- CL_DEVICE_NOT_FOUND - device_type とマッチするOpenCLデバイスがひとつもないとき。
- CL_OUT_OF_RESOURCES - デバイス上でのリソース確保に失敗したとき。
- CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。
変更記録
- OpenCL 1.2
- CL_DEVICE_TYPE_CUSTOM が追加
脚注
- ↑ clGetDeviceIDs は、指定したプラットフォーム内にあり、かつ device_type にマッチする実際の物理デバイスの全てもしくは一部を返します。
―――― Version 1.2, The OpenCL Specification
より翻訳