オーバーヘッドなしのプロファイリングのイネーブル - 2021.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-03-29
Version
2021.2 Japanese

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. オーバーヘッドなしのタイムライン

通常はプロファイリングが詳細になるほどオーバーヘッドが追加されるので、標準またはオーバーヘッドの少ないプロファイリングの場合、このオーバーヘッドなしのプロファイリングはディスエーブルにしておく必要があります。

表 1. OpenCL プロファイリングのオプション
取り込まれるトレース情報 プロファイルのオーバーヘッド ユース ケース xrt.ini のオプション
Complete アプリケーション開発の初期段階などのデバッグ目的で使用します。 opencl_summary = true

opencl_trace = true

Partial プロファイル オーバーヘッドが多く、予期しない遅延が発生した場合に使用します。 lop_trace = true
Minimum なし イベント間の遅延の原因を確認する場合にのみ使用します。 xocl_debug = true