「clEnqueueWriteBuffer」の版間の差分
提供: Tommy6
細 |
細 |
||
(1人の利用者による、間の1版が非表示) | |||
41行: | 41行: | ||
* CL_INVALID_VALUE - (''offset'', ''cb'') で指定した書き込み領域が範囲外のとき。あるいは ''ptr'' が NULL のとき。 | * CL_INVALID_VALUE - (''offset'', ''cb'') で指定した書き込み領域が範囲外のとき。あるいは ''ptr'' が NULL のとき。 | ||
* CL_INVALID_EVENT_WAIT_LIST - ''event_wait_list'' が NULL で ''num_events_in_wait_list'' が 0 より大きいとき。あるいは ''event_wait_list'' が NULL でなく ''num_events_in_wait_list'' が 0 のとき。あるいは ''event_wait_list'' 内の[[イベントオブジェクト]]が有効なものでないとき。 | * CL_INVALID_EVENT_WAIT_LIST - ''event_wait_list'' が NULL で ''num_events_in_wait_list'' が 0 より大きいとき。あるいは ''event_wait_list'' が NULL でなく ''num_events_in_wait_list'' が 0 のとき。あるいは ''event_wait_list'' 内の[[イベントオブジェクト]]が有効なものでないとき。 | ||
− | * {{ChangePlus|1.1|CL_MISALIGNED_SUB_BUFFER_OFFSET - ''buffer'' | + | * {{ChangePlus|1.1|CL_MISALIGNED_SUB_BUFFER_OFFSET - ''buffer'' がサブバッファオブジェクトで、このサブバッファオブジェクトを作成する際に指定したオフセットが ''command_queue'' と関連付けられたデバイスの CL_DEVICE_MEM_BASE_ADDR_ALIGN にアラインされていないとき。}} |
* {{ChangePlus|1.1|CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST - 読み込みコマンドがブロッキングで、かつ ''event_wait_list'' 内のイベントのいずれかの実行状況が負の整数値のとき。}} | * {{ChangePlus|1.1|CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST - 読み込みコマンドがブロッキングで、かつ ''event_wait_list'' 内のイベントのいずれかの実行状況が負の整数値のとき。}} | ||
* CL_MEM_OBJECT_ALLOCATION_FAILURE - ''buffer'' と関連付けられたデータ保存領域のためのメモリの確保に失敗したとき。 | * CL_MEM_OBJECT_ALLOCATION_FAILURE - ''buffer'' と関連付けられたデータ保存領域のためのメモリの確保に失敗したとき。 | ||
58行: | 58行: | ||
[[Category:OpenCL]] | [[Category:OpenCL]] | ||
[[Category:OpenCLランタイム]] | [[Category:OpenCLランタイム]] | ||
− | [[Category: | + | [[Category:OpenCLランタイムAPI]] |
+ | [[Category:メモリオブジェクト]] |
2014年5月29日 (木) 01:42時点における最新版
cl_int clEnqueueWriteBuffer (cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, size_t offset, size_t cb, void *ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
-1.1() : OpenCL 1.1で削除
+1.1() : OpenCL 1.1で追加
ホストメモリからバッファオブジェクトへの書き込みを行うコマンドを挿入します。
パラメータ
- command_queue
- 書き込みコマンドを挿入するコマンドキューを指定します。command_queue と buffer は同じOpenCLコンテキスト上で作成されたものでなければなりません。
- buffer
- 有効なバッファオブジェクトを指定します。
- blocking_write
- 書き込み操作を、ブロッキングで行うのかノンブロッキングで行うのかを指定します。
- blocking_write に CL_TRUE を指定すると、OpenCL実装は ptr が参照するデータを複製しコマンドキューに書き込み操作を挿入します。clEnqueueWriteBuffer が返った後は、アプリケーションは ptr が指すメモリを再利用できます。
- blocking_write に CL_FALSE を指定すると、OpenCL実装は ptr を使用してノンブロッキング書き込みを行います。書き込みがノンブロッキングで行われるため、実装はすぐに返ることができます。呼び出しが返った後も、ptr が指すメモリを再利用することはできません。event 引数に返されるイベントオブジェクトを利用し、書き込みコマンドの実行状況を確認できます。書き込みコマンドが完了すると、アプリケーションは ptr が指すメモリを再利用できるようになります。
- offset
- バッファオブジェクトから書き込みを行う際に、書き込み開始位置をどれだけずらすかをバイトで指定します。
- cb
- 書き込むデータのサイズをバイトで指定します。
- ptr
- 書き込むデータの読み込み元となるホストメモリバッファへのポインタを指定します。
- num_events_in_wait_list
- event_wait_list で指定したイベントオブジェクトの数を指定します。
- event_wait_list
- このコマンドが実行される前に完了していなければならないイベントを指定します。event_wait_list が NULL のとき、このコマンドはどのイベントの完了待ちも行いません。event_wait_list が NULL のとき、num_events_in_wait_list は 0 でなければなりません。event_wait_list が NULL ではないとき、event_wait_list が指す各イベントは有効でなければならず、また num_events_in_wait_list は0より大きな値でなければなりません。event_wait_list に指定したイベントは同期点としてふるまいます。event_wait_list 内のイベントと関連付けられたOpenCLコンテキストと command_queue と関連付けられたOpenCLコンテキストは同じでなければなりません。
- event
- この書き込みコマンドを識別するイベントオブジェクトが返され、コマンド完了の確認やコマンド完了待ちを行えます。event が NULL のとき、アプリケーションはコマンドの状況確認やコマンド完了待ちを行えなくなります。
エラー
実行が成功した場合、clEnqueueWriteBuffer は CL_SUCCESS を返します。そうでない場合は以下のエラーのうちひとつを返します。
- CL_INVALID_COMMAND_QUEUE - command_queue が有効なコマンドキューでないとき。
- CL_INVALID_CONTEXT - command_queue と関連付けられたコンテキストと buffer と関連付けられたコンテキストが同じでないとき、あるいは command_queue と関連付けられたコンテキストと event_wait_list 内のイベントと関連付けられたコンテキストが同じでないとき。
- CL_INVALID_MEM_OBJECT - buffer が有効なバッファオブジェクトでないとき。
- CL_INVALID_VALUE - (offset, cb) で指定した書き込み領域が範囲外のとき。あるいは ptr が NULL のとき。
- CL_INVALID_EVENT_WAIT_LIST - event_wait_list が NULL で num_events_in_wait_list が 0 より大きいとき。あるいは event_wait_list が NULL でなく num_events_in_wait_list が 0 のとき。あるいは event_wait_list 内のイベントオブジェクトが有効なものでないとき。
- +1.1(CL_MISALIGNED_SUB_BUFFER_OFFSET - buffer がサブバッファオブジェクトで、このサブバッファオブジェクトを作成する際に指定したオフセットが command_queue と関連付けられたデバイスの CL_DEVICE_MEM_BASE_ADDR_ALIGN にアラインされていないとき。)
- +1.1(CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST - 読み込みコマンドがブロッキングで、かつ event_wait_list 内のイベントのいずれかの実行状況が負の整数値のとき。)
- CL_MEM_OBJECT_ALLOCATION_FAILURE - buffer と関連付けられたデータ保存領域のためのメモリの確保に失敗したとき。
- +1.1(CL_OUT_OF_RESOURCES - デバイス上でのリソース確保に失敗したとき。)
- CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。
変更記録
脚注
―――― Version 1.1, The OpenCL Specification
より翻訳