「clBuildProgram」の版間の差分

提供: Tommy6
移動: 案内検索
(Tommy6 (会話) による ID:325 の版を取り消し)
35行: 35行:
 
* CL_INVALID_VALUE - ''pfn_notify'' が NULL で ''user_data'' が NULL でないとき。
 
* CL_INVALID_VALUE - ''pfn_notify'' が NULL で ''user_data'' が NULL でないとき。
 
* CL_INVALID_DEVICE - ''device_list'' にリストされた[[OpenCLデバイス]]が ''program'' に関連付けられたデバイスのリスト内にないとき。
 
* CL_INVALID_DEVICE - ''device_list'' にリストされた[[OpenCLデバイス]]が ''program'' に関連付けられたデバイスのリスト内にないとき。
* CL_INVALID_BINARY - [[clCreateWithProgramBinary]] を使用して作成した ''program'' について、''device_list'' 内のデバイスが有効なプログラムバイナリを持っていないとき。
+
* CL_INVALID_BINARY - [[clCreateWithProgramBinary]] を使用して作成した ''program'' について、''device_list'' 内のデバイス用の有効なプログラムバイナリがないとき。
 
* CL_INVALID_BUILD_OPTIONS - ''options'' に指定したビルドオプションが有効でないとき。
 
* CL_INVALID_BUILD_OPTIONS - ''options'' に指定したビルドオプションが有効でないとき。
 
* CL_INVALID_OPERATION - この呼び出しより前に ''program'' に対して行われた [[clBuildProgram]] の呼び出しでの、''device_list'' 内のいずれかのデバイスについての実行可能プログラムのビルドが完了していないとき。
 
* CL_INVALID_OPERATION - この呼び出しより前に ''program'' に対して行われた [[clBuildProgram]] の呼び出しでの、''device_list'' 内のいずれかのデバイスについての実行可能プログラムのビルドが完了していないとき。

2011年2月9日 (水) 12:43時点における版

OpenCL > OpenCLマニュアル > OpenCLランタイム > OpneCLランタイムAPI > プログラムオブジェクト > clBuildProgram

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)

program と関連付けられたOpenCLコンテキスト内の全てもしくは特定のデバイス用の実行可能プログラムを、プログラムソースもしくはバイナリからビルド(コンパイルとリンク)します。OpenCL では、プログラムソースもしくはバイナリを使用して実行可能プログラムをビルドできます。clBuildProgramclCreateProgramWithSource あるいは clCreateProgramWithBinary を呼び出して作成した program に対して使用しなければなりません。

パラメータ

program
有効なプログラムオブジェクトを指定します。
num_devices
device_list 引数に渡したデバイスの数を指定します。
device_list
program と関連付けられたデバイスのリストへのポインタを指定します。deivce_list が NULL のとき、program と関連付けられたすべてのデバイス用の実行可能プロうグラムがビルドされます。deivce_list が NULL でないとき、このリストで指定されたデバイス用の実行可能プログラムがビルドされます。
options
実行可能プログラムをビルドする際に適用するビルドオプションを指定する NULL 終端文字列へのポインタを指定します。サポートされるオプションについては以下の節にあります。
pfn_notify
コールバック関数を登録します。アプリケーションがコールバック関数を登録すると、実行可能プログラムがビルドされたときに、登録した関数が成功失敗に関わらず呼び出されます。pfn_notify が NULL でないとき、clBuildProgram はビルドの完了を待つ必要が無くなりすぐに返ることができます。pfn_notify が NULL のとき、clBuildProgram はビルドが完了するまで返りません。このコールバック関数は非同期的に呼び出されます。コールバック関数がスレッドセーフであることを確実にするのは、アプリケーションの責任です。このコールバック関数に対するパラメータは以下のとおりです。
user_data
ユーザが与えたデータへのポインタです。
user_data
pfn_notify が呼び出されたときに、user_data 引数として渡されます。NULL を指定することもできます。

ビルドオプション

エラー

実行が成功した場合、clBuildProgram は CL_SUCCESS を返します。そうでない場合は以下のエラーのうちひとつを返します。

  • CL_INVALID_PROGRAM - program が有効なプログラムオブジェクトでないとき。
  • CL_INVALID_VALUE - device_list が NULL で num_devices が 0 より大きいとき。あるいは、device_list が NULL でなく num_devices が 0 のとき。
  • CL_INVALID_VALUE - pfn_notify が NULL で user_data が NULL でないとき。
  • CL_INVALID_DEVICE - device_list にリストされたOpenCLデバイスprogram に関連付けられたデバイスのリスト内にないとき。
  • CL_INVALID_BINARY - clCreateWithProgramBinary を使用して作成した program について、device_list 内のデバイス用の有効なプログラムバイナリがないとき。
  • CL_INVALID_BUILD_OPTIONS - options に指定したビルドオプションが有効でないとき。
  • CL_INVALID_OPERATION - この呼び出しより前に program に対して行われた clBuildProgram の呼び出しでの、device_list 内のいずれかのデバイスについての実行可能プログラムのビルドが完了していないとき。
  • CL_COMPILER_NOT_AVAILABLE - programclCreateProgramWithSource を使用して作成されたもので、コンパイラが利用可能でないとき。
  • CL_BUILD_PROGRAM_FAILURE - 実行可能プログラムのビルドに失敗したとき。このエラーは、ビルドが完了するまで clBuildProgram が返らないときに返されます。
  • CL_OUT_OF_RESOURCES - デバイス上でのリソース確保に失敗したとき。
  • CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。

変更記録

脚注



―――― Revision 33, Version 1.1, The OpenCL Specification より翻訳