B.37. マーカー・バリアー・イベント待機

B.37.1. clEnqueueMarkerWithWaitList

Table B.100. 表:clEnqueueMarkerWithWaitList

関数

cl_int

clEnqueueMarkerWithWaitList (
    cl_command_queue command_queue,
    cl_uint num_events_in_wait_list,
    const cl_event *event_wait_list,
    cl_event *event
)

イベントリストが完了を待機するマーカーコマンドを挿入。 リストが空の場合、前にコマンドキューに挿入した全ての コマンドが完了するのを待機。このイベントは待機すべきイ ベントを戻し、event_wait_list内の全イベントまたは以前 に挿入(このコマンドがキューに挿入される前に)した全コマ ンドが完了することを保証する。

引数

command_queue

有効なコマンドキューを指定。

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_wait_listと関
連付けられたメモリ領域
は関数が戻った後に、再
利用か解放できる。

event

複製コマンドを識別する
イベントオブジェクトが戻
され、コマンド完了の確
認やコマンド完了の待機
に使える。

eventがNULLの場合、ア
プリケーションはコマンド
の状況確認やコマンド完
了待ちができなくなる。

event_wait_listと
eventがNULLでない場合、
eventはevent_wait_
list配列の要素を参照す
べきでない。

clEnqueueBarrier
WithWaitListを代わり
に使うことができる。
event_wait_listと
event引数NULLでない場合、
event引数はevent_
wait_list内の要素を参
照すべきでない。

成功した場合の戻り値

CL_SUCCESS

失敗した場合の戻り値

CL_INVALID_ COMMAND_QUEUE

command_queueが有効
なコマンドキューでな
い場合。

CL_INVALID_ CONTEXT

command_queueと
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内の
イベントオブジェクトが有
効なイベントでない場合。

CL_OUT_OF_ RESOURCES

デバイス上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

CL_OUT_OF_ HOST_MEMORY

ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

B.37.2. clEnqueueBarrierWithWaitList

Table B.101. 表:clEnqueueBarrierWithWaitList

関数

cl_int

clEnqueueBarrierWithWaitList (
    cl_command_queue command_queue,
    cl_uint num_events_in_wait_list,
    const cl_event *event_wait_list,
    cl_event *event
)

イベントリストが完了を待機するバリアーコマン ドを挿入。

リストが空の場合、前にコマンドキューに挿入した全 てのコマンドが完了するのを待機。このコマンドはコ マンド実行をブロック。つまり、コマンドが終了する まで、以降に挿入されたコマンドは実行されない。この イベントは待機すべきイベントを戻し、event_wait_ list内の全イベントまたは以前に挿入(このコマンドが キューに挿入される前に)した全コマンドが完了するこ とを保証する。

引数

command_queue

有効なコマンドキューを指定。

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_wait_listと関
連付けられたメモリ領域
は関数が戻った後に、再
利用か解放できる。

event

複製コマンドを識別
するイベントオブジェ
クトが戻され、コマンド
完了の確認やコマンド完
了の待機に使える。

eventがNULLの場合、
アプリケーションはコ
マンドの状況確認やコ
マンド完了待ちがで
きなくなる。

event_wait_list
とeventがNULLでな
い場合、eventは
event_wait_list
配列の要素を参照す
べきでない。

clEnqueueBarrier
WithWaitListを代
わりに使うことがで
きる。event_wait_
listとevent引数
NULLでない場合、
event引数はevent_
wait_list内の要素を
参照すべきでない。

成功した場合の戻り値

CL_SUCCESS

失敗した場合の戻り値

CL_INVALID_ COMMAND_QUEUE

command_queueが
有効なコマンドキュ
ーでない場合。

CL_INVALID_ CONTEXT

event_wait_list
内のイベントと
command_queueに
関連付けられたコン
テキストが同じで
ない場合。

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_OUT_OF_ RESOURCES

デバイス上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

CL_OUT_OF_ HOST_MEMORY

ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

Copyright 2018-2019, by Masaki Komatsu