clEnqueueReadBuffer/1.0

提供: Tommy6
移動: 案内検索
OpenCL > OpenCLマニュアル > OpenCLランタイム > OpenCLランタイムAPI > メモリオブジェクト > clEnqueueReadBuffer/1.0
OpenCL > OpenCL 1.0 > OpenCLマニュアル/1.0 > OpenCLランタイム/1.0 > OpenCLランタイムAPI/1.0 > メモリオブジェクト/1.0 > clEnqueueReadBuffer/1.0

cl_int clEnqueueReadBuffer (cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read,                   size_t offset, size_t cb, void *ptr,                   cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)


バッファオブジェクトからホストメモリへの読み込みを行うコマンドを挿入します。

パラメータ

command_queue
読み込みコマンドを挿入するコマンドキューを指定します。command_queuebuffer は同じOpenCLコンテキスト上で作成されたものでなければなりません。
buffer
有効なバッファオブジェクトを指定します。
blocking_read
読み込み操作を、ブロッキングで行うのかノンブロッキングで行うのかを指定します。
blocking_readCL_TRUE を指定すると、読み込みコマンドはブロッキングとなり、バッファデータを読み込んで ptr が指すメモリ領域に複製し終わるまで、clEnqueueReadBuffer は返りません。
blocking_readCL_FALSE を指定すると、読み込みコマンドはノンブロッキングとなり、clEnqueueReadBuffer はノンブロッキング読み込みコマンドを挿入して返ります。読み込みコマンドが完了するまで、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 のとき、アプリケーションはコマンドの状況確認やコマンド完了待ちを行えなくなります。

エラー

実行が成功した場合、clEnqueueReadBuffer は 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 内のイベントオブジェクトが有効なものでないとき。
  • CL_MEM_OBJECT_ALLOCATION_FAILURE - buffer と関連付けられたデータ保存領域のためのメモリの確保に失敗したとき。
  • CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。

変更記録

脚注



―――― Version 1.0, The OpenCL Specification より翻訳