clGetEventProfilingInfo

提供: Tommy6
移動: 案内検索
OpenCL > OpenCLマニュアル > OpenCLランタイム > OpenCLランタイムAPI > プロファイリング > clGetEventProfilingInfo

cl_int clGetEventProfilingInfo (cl_event event, cl_profiling_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)

event と関連付けられたコマンドのプロファイリング情報を取得します。

この関数で取得した64ビット値を用いて、OpenCLコマンドを実行するのにかかった時間を計測できます。

OpenCLデバイスには、デバイスの周波数や電力状態が変わっても正確に時間を計測できることが求められています。CL_DEVICE_PROFILING_TIMER_RESOLUTION で、タイマーの解像度、つまり、タイマーがインクリメントされるごとに何ナノ秒経過するかを取得できます。

パラメータ

event
有効なイベントオブジェクトを指定します。
param_name
取得する情報を指定します。下記の表にある定数からひとつ選んで指定できます。
param_value
下記の表にしたがって param_name に指定した情報についての値が返されるメモリ空間へのポインタです。NULL の場合は無視されます。
param_value_size
param_value が指すメモリのサイズをバイトで指定します。このサイズは、下記の表で示されている戻り値型のサイズ以上でなければなりません。
param_value_size_ret
param_value にコピーされるデータの実際のサイズをバイトで返します。NULL の場合は無視されます。

取得できる情報

param_name で指定できる情報およびこれに対応して param_value に返される情報を以下の表に示しています。

1.1 : OpenCL 1.1で追加

cl_profiling_info 戻り値型 解説
CL_PROFILING_COMMAND_QUEUED cl_ulong ホストが event と関連付けられたコマンドをコマンドキューに挿入したときのデバイスタイムカウンタの値を64ビット値で返します。
CL_PROFILING_COMMAND_SUBMIT cl_ulong ホストが event と関連付けられたコマンドをコマンドキューに関連付けられたデバイスに送ったときのデバイスタイムカウンタの値を64ビット値で返します。
CL_PROFILING_COMMAND_START cl_ulong event と関連付けられたコマンドの実行がデバイス上で始まったときのデバイスタイムカウンタの値を64ビット値で返します。
CL_PROFILING_COMMAND_END cl_ulong event と関連付けられたコマンドの実行がデバイス上で完了したときのデバイスタイムカウンタの値を64ビット値で返します。

エラー

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

  • CL_PROFILING_INFO_NOT_AVAILABLE - コマンドキュー に CL_QUEUE_PROFILING_ENABLE フラグが設定されていないとき。あるいは、event と関連付けられたコマンドの実行状態が CL_COMPLETE でないとき。あるいは、eventユーザイベントオブジェクトのとき。
  • CL_INVALID_EVENT - event が有効なイベントオブジェクトでないとき。
  • CL_INVALID_VALUE - param_name がサポートされている値でない、あるいは、param_value_size で指定されたサイズが上記の表で指定されている戻り値型のサイズより小さくかつ param_value が NULL でないとき。
  • CL_OUT_OF_RESOURCES - デバイス上でのリソース確保に失敗したとき。
  • CL_OUT_OF_HOST_MEMORY - ホスト上でのリソース確保に失敗したとき。

変更記録

脚注



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