opencl_trace
を使用して xrt.ini でプロファイリングをイネーブルにすると、オーバーヘッドが追加され、タイムライン内のイベント間の遅延が長くなる場合があります。ただし、XRT には、タイムライン上に OpenCL イベントをダンプするオーバーヘッドのないオプションがあります。これは、オーバーヘッドなしでタイムラインにイベントを表示する簡単な方法です。 ヒント: ホスト側のプロファイリングを指定することはできません。指定した場合は、このオーバーヘッドなしのアプローチが上書きされます。ただし、このアプローチは
device_trace
で使用できます。この場合、デバイスをプロファイルはしますが、ホスト アプリケーションにオーバーヘッドは追加されません。目的は、オーバーヘッドがまったくないイベントを可視化することなので、ログに記録できるイベントの数には制限があります。また、このビューにはコマンド キュー情報がないので、より詳細な Timeline Trace の代わりにはなりません。
このオーバーヘッドなしのビューを使用すると、OpenCL コマンドの依存関係を確認し、ホスト アプリケーションからのコマンド実行の実際のイベント オーバーヘッドを観察できます。
OpenCL イベントをイネーブルにするには、xrt.ini に次のオプションを追加します。イベント キャプチャの始まりと終わりは、次のように制御できます。
[Debug]
xocl_debug=true
#xocl_event_begin= 0 (default)
#xocl_event_end=1000 (default)
デフォルトでは、表示できるイベントは 1000 個だけです。
実行後、
xrt.run_summary
が生成されない場合、次の手順に従って .wdb ファイルを生成し、Vitis アナライザーで表示します。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_trace = true
|
Partial | 小 | プロファイル オーバーヘッドが多く、予期しない遅延が発生した場合に使用します。 |
lop_trace = true
|
Minimum | なし | イベント間の遅延の原因を確認する場合にのみ使用します。 |
xocl_debug = true
|