Top > Programming > OpenCL > JpnReference > clBuildProgram
Last-modified: Sun, 08 Sep 2013 01:21:15 JST
Counter:2021 Today:1 Yesterday:0 Online:9
このエントリーをはてなブックマークに追加

clBuildProgram

About

実行可能な OpenCL プログラムを、ソースまたはバイナリからビルドします。

C/C++

cl_int clBuildProgram 
    (cl_program program,
     cl_uint num_devices,
     const cl_device_id *device_list,
     const char *options,
     void (CL_CALLBACK *pfn_notify)
         (cl_program program,
          void *user_data),
     void *user_data)

C#

int clBuildProgram
            (IntPtr program,
            uint num_devices,
            IntPtr[] device_list,
            string options,
            CL_CALLBACK_clBuildProgram pfn_notify,
            IntPtr user_data);

Args

  • program
    • OpenCL プログラムを指定します。
  • num_devices
    • device_list に指定するデバイスの数を指定します。
  • device_list
    • program と関連付けられたデバイスのリストを指定します。NULL を指定するとき、program と関連付けられたすべてのデバイス用の実行可能なプログラムがビルドされます。NULL でない値を指定するとき、指定されたデバイス用の実行可能なプログラムがビルドされます。
  • options
    • OpenCLプログラムのビルドオプションを指定します。詳細はリファレンスを参照してください。
  • pfn_notify
    • 登録するコールバックを指定します。登録されたコールバックは、実行可能なプログラムがビルドされたとき、ビルドの成功、失敗に関わらず呼び出されます。NULL を指定するとき、このメソッドはビルドが完了するまで処理を返しません。NULL でない値を指定するとき、このメソッドはビルドの完了を待たずに処理を返します。
  • user_data
    • pfn_notify によって登録されるコールバックが呼び出されたとき、user_data の引数として渡される値を指定します。NULL を指定することができます。

コールバックについて

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

  • program
    • プログラムの出力先を指定します。
  • user_data
    • clBuildProgram の引数 user_data に指定した任意のデータの出力先を指定します。

Return

実行に成功したとき、CL_SUCCESS を返します。それ以外のとき、次のうち1つのエラーを返します。

  • CL_INVALID_PROGRAM
    • program に無効な値が指定されたとき。
  • CL_INVALID_VALUE
    • device_list が NULL で、num_devices が 0 より大きいとき。または、device_list が NULL でなく、num_devices が 0 のとき。
  • CL_INVALID_VALUE
    • pfn_nofity が NULL で、user_data が NULL でないとき。
  • CL_INVALID_DEVICE
    • device_list に含まれる OpenCL デバイスが、program に関連付けられたデバイスのリストに含まれないとき。
  • CL_INVALID_BUILD_OPTIONS
    • options に無効な値が指定されたとき。
  • CL_INVALID_BINARY
    • clCreateWithProgramBinary によって生成された program と device_list の両方に、有効なプログラムバイナリが読み込まれていないとき。
  • CL_INVALID_OPERATION
    • この呼び出しより前に、program に対して行われた clBuildProgram で、device_list に含まれるいずれかのデバイスについて、実行可能なプログラムのビルドが完了していないとき。
  • CL_COMPILER_NOT_AVAILABLE
    • program が clCreateProgramWithSource によって生成されたもので、コンパイラが利用可能でないとき。
  • CL_BUILD_PROGRAM_FAILURE
    • 実行可能なプログラムのビルドに失敗したとき。ビルドが完了するまで clBuildProgram に処理が返らないとき。
  • CL_OUT_OF_RESOURCES
    • デバイス上でリソースの確保、割り当てに失敗したとき。
  • CL_OUT_OF_HOST_MEMORY
    • ホスト上でリソースの確保、割り当てに失敗したとき。

その他の詳細はリファレンスを参照してください。