opencl_summary
または native_xrt_trace
を使用して xrt.ini でプロファイリングをイネーブルにすると、オーバーヘッドが追加され、タイムライン内のイベント間の遅延が長くなる場合があります。ただし、XRT には、プロファイリングによるオーバーヘッドなしで、タイムライン トレース上の OpenCL イベントのみをダンプするオプションがあります。これは、オーバーヘッドなしでタイムラインにイベントを表示する簡単な方法です。
目的は、オーバーヘッドがまったくないイベントを可視化することなので、ログに記録できるイベントの数には制限があります。また、このビューにはコマンド キュー情報がないので、Timeline Trace の代わりになるものではなく、表示方法が違うだけです。
このオーバーヘッドなしのビューを使用すると、OpenCL コマンドの依存関係を確認し、ホスト アプリケーションからのコマンド実行の実際のイベント オーバーヘッドを観察できます。
OpenCL イベントをイネーブルにするには、xrt.ini に次のオプションを追加します。イベント キャプチャの始まりと終わりは、次のように制御できます。
[Debug]
xocl_debug=true
#xocl_event_begin= 0 (default)
#xocl_event_end=1000 (default)
デフォルトでは、表示できるイベントは 1000 個だけです。OpenCL コマンドは同じタイムライン上に表示できます。この機能は、opencl_trace
がイネーブルの場合は使用できませんが、デバイス プロファイルをイネーブルにすると使用できます。
実行後、次の手順に従って Vitis アナライザーで表示する .wdb ファイルを生成します。
vp_analyze xocl -i xocl.log // generates debug_log.csv
vp_analyze trace -i debug_log.csv // generates debug_log.wdb
vitis_analyzer debug_log.wdb // loads the wdb file in Vitis analyzer
図 1. オーバーヘッドなしのタイムライン
通常はプロファイリングが詳細になるほどオーバーヘッドが追加されるので、標準またはオーバーヘッドの少ないプロファイリングの場合、このオーバーヘッドなしのプロファイリングはディスエーブルにしておく必要があります。
取り込まれるトレース情報 | プロファイルのオーバーヘッド | ユース ケース | xrt.ini のオプション |
---|---|---|---|
Complete | 大 | アプリケーション開発の初期段階などのデバッグ目的で使用します。 |
opencl_summary = true
|
Partial | 小 | プロファイル オーバーヘッドが多く、予期しない遅延が発生した場合に使用します。 |
lop_trace = true
|
Minimum | なし | イベント間の遅延の原因を確認する場合にのみ使用します。 |
xocl_debug = true
|