Top > Programming > OpenCL > JpnReference > clCreateContext
Last-modified: Sun, 08 Sep 2013 07:17:22 JST
Counter:1409 Today:1 Yesterday:0 Online:2
このエントリーをはてなブックマークに追加

clCreateContext

About

OpenCL コンテキストを生成します。OpenCL コンテキストは、1つまたは複数のデバイスを使用して生成されます。

C/C++

cl_context clCreateContext (const cl_context_properties *properties,
                            cl_uint num_devices,
                            const cl_device_id *devices,
                            (void CL_CALLBACK  *pfn_notify)
                                (const char *errinfo,
                                 const void *private_info,
                                 size_t cb,
                                 void *user_data),
                            void *user_data,
                            cl_int *errcode_ret)

C#

IntPtr clCreateContext (IntPtr[] properties,
                        uint num_devices,
                        IntPtr[] devices,
                        CL_CALLBACK_clCreateContext pfn_notify,
                        IntPtr user_data,
                        out int errcode_ret);

Args

  • properties
    • プロパティ名とそれに対応する値のリストを指定します。
  • num_devices
    • clGetDeviceIDs によって得られたデバイス、または clCreateSubDevices によって生成されたデバイスへのポインタのリストを指定します。
  • pfn_notify
    • 登録するコールバックを指定します。登録されたコールバックは、コンテキスト内で発生したエラーを通知するために、OpenCLによって利用されます。NULL を指定するとき、コールバックは登録されません。
  • user_data
    • pfn_notify によって登録されるコールバックが呼び出されたとき、user_data の引数として渡される値を指定します。NULL を指定することができます。
  • errcode_ret
    • エラーコードの出力先を指定します。NULL のとき、エラーコードは返されません。

コールバックについて

clCreateContext の引数 pfn_notify に指定するコールバックについては、次の通りです。

  • errinfo
    • エラー文字列の出力先を指定します。
  • private_info
    • OpenCL によって返されるバイナリデータの出力先を指定します。エラーをデバッグするための追加情報が記録されます。
  • cb
    • [公式に情報がありません、推定です] private_info から返されるデータのサイズです。
  • user_data
    • clCreateContext の引数 user_data に指定した任意のデータの出力先を指定します。

Return

実行に成功したとき、有効でゼロでない OpenCL コンテキストを返し、errcode_ret に CL_SUCCESS を設定します。実行に失敗したとき、NULL を返し、errcode_ret に次のうち1つのエラーを設定します。

  • CL_INVALID_VALUE
    • devices が NULL のとき。num_devices が 0 のとき。pfn_notify が NULL で user_data が NULL でないとき。
  • CL_INVALID_DEVICE
    • devices に無効な値が指定されたとき。
  • CL_DEVICE_NOT_AVAILABLE
    • devices に含まれるデバイスが、clGetDeviceIDs で返されたデバイスではあるが、現在は利用できないとき。
  • CL_OUT_OF_RESOURCES
    • デバイス上でリソースの確保、割り当てに失敗したとき。
  • CL_OUT_OF_HOST_MEMORY
    • ホスト上でリソースの確保、割り当てに失敗したとき。