xrt.ini ファイル - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語
ザイリンクス ランタイム (XRT) ライブラリでは、デバッグ、プロファイリング、ホスト アプリケーションおよびカーネルを実行する際に XRT で記録されるメッセージの記録などを制御するためのさまざまなパラメーターが使用されます。これらの制御パラメーターはランタイム初期化ファイル (xrt.ini) で指定され、XRT の起動時の機能を設定します。

コマンド ラインを使用している場合は、xrt.ini ファイルを手動で作成し、ホスト実行ファイルと同じディレクトリに保存する必要があります。

ランタイム ライブラリで、xrt.ini がホスト実行ファイルと同じディレクトリにあるかどうかがチェックされ、起動時にこのファイルを読み込んでランタムが設定されます。また、次の例に示すように、XRT_INI_PATH 環境変数をファイルを指定するように設定することで、実行時に xrt.ini ファイルの場所を指定することもできます。

export XRT_INI_PATH=/path/to/xrt.ini
ヒント: Vitis IDE を使用している場合は、xrt.ini は設定に基づいて自動的に作成され、ホスト実行ファイルと同じディレクトリに保存されます。

ランタイム初期化ファイルのフォーマット

xrt.ini ファイルはテキスト形式のファイルで、キーのグループおよびその値が記述されています。セミコロン (;) またはシャープ記号 (#) で始まる行はコメント行です。グループ名、キー、キーの値では、大文字/小文字が区別されます。

次に、タイムライン トレース機能をイネーブルにし、ランタイム ログ メッセージを xrt.ini ビューに表示するよう指定した Console ファイルの例を示します。

#Start of Debug group 
[Debug] 
native_xrt_trace = true
device_trace = fine

#Start of Runtime group 
[Runtime] 
runtime_log = console

初期化キーには、次の 3 つのグループがあります。

  • ランタイム
  • デバッグ
  • エミュレーション

次の表に、サポートされる各グループのすべてのキー、各キーでサポートされる値、およびキーの簡単な説明を示します。

ランタイム グループ

ランタイム グループを使用すると、次に説明するように、ランタイム操作を設定できます。

キー 有効な値 説明
api_checks [true|false] OpenCL API チェックをイネーブルまたはディスエーブルにします。
  • true: イネーブル。これがデフォルト値です。
  • false: ディスエーブル。
cpu_affinity {N,N,...} すべてのランタイム スレッドを指定の CPU に固定します。例:
cpu_affinity = {4,5,6}
exclusive_cu_context [true|false] ホスト アプリケーションが OpenCL に CU の内容のみ取得するよう命令できるようになるので、下位レベルの AXI 読み出し/書き込みを標準カーネルに使用できるようになります。
runtime_log [null | console | syslog | <filename>] ランタイムのログを出力する場所を指定します。
  • null: ログを出力しない。これがデフォルト値です。
  • console: ログを stdout に出力。
  • syslog: ログを Linux システム ログに出力。
  • <filename>: ログを指定ファイルに出力。たとえば、runtime_log=my_run.log のように指定します。
verbosity [0 | 1 | 2 | 3] 詳細なログ メッセージを生成します。デフォルト値は 0 です。

デバッグ グループ

デバッグ グループは、実行時にアプリケーションのプロファイリングを有効にする、またはデータ転送と実行をトレースするキー オプションを定義します。これらのオプションは、Vitis アクセラレーション フローの AI エンジン および PL カーネルの両方に適用され、ランタイムの詳細を設定して、データ取得の頻度、取得するイベント、トレースおよびプロファイル データの記録に予約または使用するメモリ容量を制御できます。

表 1. AI エンジン プロファイルとトレース オプション
キー 有効な値 説明
aie_profile [true|false] AI エンジン ハードウェア パフォーマンス カウンターの実行時設定およびポーリングをイネーブルにします。VCK190 ハードウェア実行でのみ使用できます。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
aie_profile_core_metrics [heat_map|stalls|execution|floating_point|write_bandwidths|read_bandwidths|aie_trace]

AI エンジン のコア パフォーマンス カウンターから読み取られる統計情報の設定を制御します。

heat_map: アクティブ/ストール サイクルとベクター命令の使用法をプロファイル

stalls: さまざまなタイプのストール (メモリ、ストリーム、ロック、カスケード) をプロファイル

execution: AI エンジン 命令をプロファイル

floating_point: 浮動小数点例外をプロファイル

write_bandwidths: ストリームおよびカスケードの書き込み帯域幅をプロファイル

read_bandwidths: ストリームおよびカスケードの読み出し帯域幅をプロファイル

aie_trace: コア モジュールおよびメモリ モジュールからのイベント トレースの量およびストールをプロファイル

注記: このオプションは、aie_profile = true の場合にのみ有効です。
aie_profile_interface_metrics [bandwidths|stalls_idle]

AI エンジン のインターフェイス タイル パフォーマンス カウンターから読み取られる統計情報の設定を制御します。

bandwidths: PLIO マスター/スレーブの帯域幅をプロファイル

stalls_idle: PLIO マスター/スレーブのストールおよびアイドル サイクルをプロファイル

aie_profile_interval_us <int> AI エンジン カウンター値の読み出し間隔をマイクロ秒 (µ s) 単位で制御します。デフォルトの間隔は 1000 µs です。
注記: このオプションは、aie_profile = true の場合にのみ有効です。
aie_profile_memory_metrics [conflicts|dma_locks|dma_stalls_s2mm|dma_stalls_mm2s|write_bandwidths|read_bandwidths]

AI エンジン のメモリ パフォーマンス カウンターから読み取られる統計情報の設定を制御します。

conflicts: DMA メモリの競合をプロファイル

dma_locks: DMA ロック取得時のロックおよびストールをプロファイル

dma_stalls_s2mm: DMA S2MM チャネルのストールをプロファイル

dma_stalls_mm2s: DMA MM2S チャネルのストールをプロファイル

write_bandwidths: DMA S2MM チャネルの帯域幅をプロファイル

read_bandwidths: DMA MM2S チャネルの帯域幅をプロファイル

.
注記: このオプションは、aie_profile = true の場合にのみ有効です。
aie_status [true|false] AI エンジン ステータス情報のポーリングをイネーブルにします。VCK190 ハードウェア実行でのみ使用できます。
aie_status_interval_us integer (default=1000us) AI エンジン ステータス情報を取得する間隔を制御します。マイクロ秒単位で指定します。
aie_trace [true|false] AI エンジン のランタイム設定およびイベント トレースの収集をイネーブルにします。VCK190 ハードウェア実行でのみ使用できます。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
aie_trace_buffer_offload_interval_ms integer (default=10ms) デバイスからホスト メモリへの PLIO モードの AI エンジン のトレースの読み出し間隔 (ミリ秒単位)。
aie_trace_buffer_size <string> (default=8M) AI エンジン イベント トレースに割り当てられたバッファーの合計サイズを制御します。このサイズは、AI エンジン から送信されるさまざまなトレース ストリームの数に均等に分割されます。デフォルトは 8M です。
注記: このオプションは、aie_trace = true の場合にのみ有効です。
aie_trace_file_dump_interval_s integer (default=5s) 未処理の AI エンジン トレース データを出力ファイルへ書き込む (追加する) 間隔 (秒単位)。
aie_trace_metrics [functions|functions_partial_stalls| function_all_stalls] 指定したレベルのイベント トレースを生成するための AI エンジン レジスタの設定を制御します。
注記: このオプションは、aie_trace = true の場合にのみ有効です。
aie_trace_periodic_offload true/false (default=true) PLIO モードの AI エンジン のトレースの継続的なオフロードをイネーブルにします。生成された AI エンジン トレース出力ファイル (ストリームごとに 1 つ) に新しいトレース データが追加されます。
aie_trace_start_time string (i.e., <N>[ns|us|ms|s]) (default=0) 100、20.3ms、16.1us のように、AI エンジン のクロック サイクルまたは時間 (s、ms、us、ns) でトレースの開始をどれくらい遅らせるかを指定します。
表 2. ホストおよび PL カーネル オプション
キー 有効な値 説明
app_debug [true|false] GDB を使用してデバッグするときに、ホスト コードの OpenCL アプリケーション デバッグをイネーブルにします。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
continuous_trace [true|false] トレース用のファイルの連続ダンプとホストへのデバイス データの連続読み出しをイネーブルにします。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
注記: このオプションは、device_trace がイネーブルの場合にのみ有効です。
device_counters [true|false] トレース機能をイネーブルにせずに、デバイス カウンター オフロードのみをイネーブルにします。
device_trace [off|fine|coarse|accel] PL に挿入されたモニターからのデータの収集をイネーブルにして、サマリおよびトレースに追加します。
  • accel: 計算ユニットの開始/停止をトレースします。
  • coarse: 計算ユニットの実行ごとに、すべての読み出し/書き込みをまとめます。
  • fine: すべてを追跡します。
  • off: 実行中のデバイス レベルのトレースの読み出しおよびレポートをオフにします。これがデフォルト値です。
host_trace [true|false] 最初に検出されたプロトコルに基づいてホスト コードのトレースをイネーブルにします。
ヒント: ホスト アプリケーションで OpenCL と XRT ネイティブ API の両方を使用している場合は、opencl_tracenative_xrt_trace の両方を手動で指定して、すべてのイベントをキャプチャする必要があります。
lop_trace [true|false] オーバーヘッドの少ない OpenCL API ホスト トレースの生成をイネーブルにします。ほかの OpenCL オプションと一緒には使用しないでください。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
native_xrt_trace [true|false] ネイティブ C/C++ API トレースの生成をイネーブルにします。これにより、[Profile Summary] に [Host Data Transfer from/to Global memory] の表も生成されます。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
opencl_trace [true|false] OpenCL API ホスト トレースの生成をイネーブルにします。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
pl_deadlock_detection [true|false] PL カーネルのデッドロック検出をイネーブルにします。
power_profile [true|false] アプリケーションの実行中に消費電力データのポーリングをイネーブルにします。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
注記: この機能は、AWS などの特定のプラットフォームではサポートされません。
power_profile_interval_ms <int>(default=20) 消費電力カウンターの読み出し間隔をミリ秒単位で制御します。デフォルトの間隔は 20 ms です。
注記: このオプションは、power_profile = true の場合にのみ有効です。
profile_api [true|false] ホスト アプリケーションから HAL API に直接アクセスすると、実行中にデバイス プロファイリング モニターのカウンターを読み出すことができます。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
stall_trace [off|all|dataflow|memory|pipe] タイムライン トレースで収集してレポートするデバイス側のストール タイプを指定します。デフォルト値は off です。
  • off: ストール トレース情報のをオフにします。

    all: すべてのストール トレース情報を記録します。

    dataflow: カーネル ストリーム間 (例: データフロー ブロック間のフル FIFO への書き込み)。

    memory: 外部メモリ ストール (例: DDR メモリからの AXI4 読み出し)。

    pipe: OpenCL カーネルのカーネル間パイプ (例: カーネル間のフル パイプへの書き込み)。

注記: このオプションは、device_trace がイネーブルの場合にのみ有効です。
trace_buffer_offload_interval_ms <int> デバイスからホストへのデバイス データの読み出しをミリ秒 (ms) 単位で制御します。デフォルトは 10 ms です。
注記: このオプションは、device_trace がイネーブルの場合にのみ有効です。
trace_buffer_size <string> --profile オプション で説明するように、トレースのメモリ オフロードを指定して .xclbin が作成された場合、トレース データを取得するためにメモリに割り当てるバッファーのサイズがこのオプションで決定されます。デフォルトは 1M です。
注記: このオプションは、device_trace がイネーブルの場合にのみ有効です。
trace_file_dump_interval_s <int> トレース ファイルのダンプ間隔を秒 (s) 単位で制御します。デフォルトは 5s です。
注記: このオプションは、device_trace がイネーブルの場合にのみ有効です。
vitis_ai_profile [true|false] プロファイル サマリおよびその他のファイルは、Vitis AI アプリケーション層から取得されます。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
xocl_debug [true|false]

イネーブルの場合、xocl.log ファイルを生成します。

ほかのトレース オプションもイネーブルになっている場合は、デバッグ ログが xrt.run_summary に追加され、Vitis アナライザーで表示できます。

xrt_trace [true|false] ハードウェア実行中の低レベル HW シム機能トレースの生成をイネーブルにします。native_xrt_trace と併用するとディスエーブルになります。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。

エミュレーション グループ

エミュレーション グループは、エミュレーション環境と Vivado シミュレータに適用されます。

キー 有効な値 説明
aliveness_message_interval 整数 メッセージを出力する時間間隔を秒で指定します。デフォルトは 300 です。
debug_mode [off|batch|gui] エミュレーション中の波形の保存および表示方法を指定します。
  • off: シミュレータの波形 GUI を起動せず、wdb ファイルを保存しません。これがデフォルト値です。
  • batch: シミュレータの波形 GUI は起動せず、wdb ファイルを保存します。
  • gui: シミュレータの波形 GUI を起動し、wdb ファイルを保存します。
注記: 波形を保存してシミュレータの GUI に表示するには、カーネルをデバッグをイネーブル (v++ -g) にしてコンパイルする必要があります。
kernel-dbg [true|false] コマンド ライン デバッグ フロー で説明するように、ソフトウェア エミュレーション中のカーネル デバッグ機能をイネーブルにします。
  • true: イネーブル。
  • false: ディスエーブル。これがデフォルト値です。
print_infos_in_console [true|false] ユーザー コンソールへのエミュレーション情報メッセージの表示を制御します。エミュレーション情報メッセージは、emulation_debug.log というファイルに保存されます。
  • true: ユーザー コンソールに表示します。これがデフォルト値です。
  • false: ユーザー コンソールに出力しません。
print_warnings_in_console [true|false] ユーザー コンソールへのエミュレーション警告メッセージの表示を制御します。エミュレーション警告メッセージは、emulation_debug.log というファイルに保存されます。
  • true: ユーザー コンソールに表示します。これがデフォルト値です。
  • false: ユーザー コンソールに出力しません。
print_errors_in_console [true|false] ユーザー コンソールへのエミュレーション エラー メッセージの表示を制御します。エミュレーション エラー メッセージは、emulation_debug.log ファイルに保存されます。
  • true: ユーザー コンソールに表示します。これがデフォルト値です。
  • false: ユーザー コンソールに表示しません。
user_pre_sim_script Tcl ファイルへのパス 1 回目の run では、シミュレーションを GUI モードで実行します。信号を追加し、Tcl コンソールからコマンドをコピーして Tcl スクリプトに保存します。

次の run では、バッチ モードで Tcl スクリプトを渡します。

user_post_sim_script Tcl ファイルへのパス シミュレーション後の操作は Tcl ファイルで指定しておいて、このオプションでファイルを指定します。Tcl で指定するコマンドはすべてシミュレーションの終了後に実行されます。
xtlm_aximm_log [true|false] ランタイム時の XTLM AXI4 メモリ マップのトランザクション ログをイネーブルにすると、すべてのトランザクションが xsc_report.log ファイルで確認できるようになります。
xtlm_axis_log [true|false] ランタイムジの XTLM AXI4-Stream トランザクション ログをイネーブルにすると、すべてのトランザクションが xsc_report.log ファイルで確認できるようになります。
timeout_scale na/ms/sec/min エミュレーションでの clPollStream API のタイムアウトをサポートするためのもので、clPollStream API で指定されたタイムアウトの単位を提供します。コードで指定されたタイムアウトの単位は ms なので、エミュレーションには使用できないことがあります。このため、エミュレーションで必要な場合は、timeout_scale で ms を別の単位に変更しておきます。
重要: エミュレーションでは、タイムアウトはデフォルトではイネーブルになっていません。このオプションを使用するには、clPollStream タイムアウトをイネーブルにしておく必要があります。