コマンド ラインを使用している場合は、xrt.ini ファイルを手動で作成し、ホスト実行ファイルと同じディレクトリに保存する必要があります。
ランタイム ライブラリで、xrt.ini がホスト実行ファイルと同じディレクトリにあるかどうかがチェックされ、起動時にこのファイルを読み込んでランタムが設定されます。また、次の例に示すように、XRT_INI_PATH
環境変数をファイルを指定するように設定することで、実行時に xrt.ini ファイルの場所を指定することもできます。
export XRT_INI_PATH=/path/to/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 つのグループがあります。
- ランタイム
- Debug
- AIE_profile_settings
- AIE_trace_settings
- エミュレーション
次の表に、サポートされる各グループのすべてのキー、各キーでサポートされる値、およびキーの簡単な説明を示します。
ランタイム グループ
ランタイム グループを使用すると、次に説明するように、ランタイム操作を設定できます。
キー | 有効な値 | 説明 |
---|---|---|
api_checks
|
[true|false]
|
OpenCL API チェックをイネーブルまたはディスエーブルにします。
|
cpu_affinity
|
{N,N,...}
|
すべてのランタイム スレッドを指定の CPU に固定します。例:
|
exclusive_cu_context
|
[true|false]
|
ホスト アプリケーションが OpenCL に CU の内容のみ取得するよう命令できるようになるので、下位レベルの AXI 読み出し/書き込みを標準カーネルに使用できるようになります。 |
force_program_xclbin
|
[true|false]
|
リコンフィギャラブル モジュール (RM) の .xclbin ファイルが既に読み込まれている場合でも、デバイスに読み込み直します。これは、要求された場合に .xclbin を使用して、プラットフォーム内の DFX 領域を強制的に読み込み直すために使用されます。 |
runtime_log
|
[null | console | syslog |
<filename>]
|
ランタイムのログを出力する場所を指定します。
|
verbosity
|
[0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
]
|
詳細なログ メッセージを生成します。デフォルト値は 4 です。 |
デバッグ グループ
デバッグ グループは、実行時にアプリケーションのプロファイリングを有効にする、またはデータ転送と実行をトレースするキー オプションを定義します。これらのオプションは、Vitis アクセラレーション フローの AI エンジン および PL カーネルの両方に適用され、ランタイムの詳細を設定して、データ取得の頻度、取得するイベント、トレースおよびプロファイル データの記録に予約または使用するメモリ容量を制御できます。
キー | 有効な値 | 説明 |
---|---|---|
aie_profile
|
[true|false]
|
AI エンジン ハードウェア パフォーマンス カウンターの実行時設定およびポーリングをイネーブルにします。VCK190 ハードウェアおよびハードウェア エミュレーションの run で使用できます。
|
aie_trace
|
[true|false]
|
AI エンジン のランタイム設定およびイベント トレースの収集をイネーブルにします。VCK190 ハードウェア実行でのみ使用できます。
|
aie_status
|
[true|false]
|
AI エンジン ステータス情報のポーリングをイネーブルにします。VCK190 ハードウェアおよびハードウェア エミュレーションの run で使用できます。 |
aie_status_interval_us
|
integer (default=1000us) | AI エンジン ステータス情報を取得する間隔を制御します。マイクロ秒単位で指定します。 |
app_debug
|
[true|false]
|
GDB を使用してデバッグするときに、ホスト コードの OpenCL アプリケーション デバッグをイネーブルにします。
|
continuous_trace
|
[true|false]
|
トレース用のファイルの連続ダンプとホストへのデバイス データの連続読み出しをイネーブルにします。
注記: このオプションは、
device_trace がイネーブルの場合にのみ有効です。 |
device_counters
|
[true|false]
|
トレース機能をイネーブルにせずに、デバイス カウンター オフロードのみをイネーブルにします。 |
device_trace
|
[off|fine|coarse|accel]
|
PL に挿入されたモニターからのデータの収集をイネーブルにして、サマリおよびトレースに追加します。
|
host_trace
|
[true|false]
|
最初に検出されたプロトコルに基づいてホスト コードのトレースをイネーブルにします。 ヒント: ホスト アプリケーションで OpenCL と XRT ネイティブ API の両方を使用している場合は、
opencl_trace と native_xrt_trace の両方を手動で指定して、すべてのイベントをキャプチャする必要があります。 |
lop_trace
|
[true|false]
|
オーバーヘッドの少ない OpenCL API ホスト トレースの生成をイネーブルにします。ほかの OpenCL オプションと一緒には使用しないでください。
|
native_xrt_trace
|
[true|false]
|
ネイティブ C/C++ API トレースの生成をイネーブルにします。これにより、[Profile Summary] に [Host Data Transfer from/to Global memory] の表も生成されます。
|
opencl_trace
|
[true|false]
|
OpenCL API ホスト トレースの生成をイネーブルにします。
|
pl_deadlock_detection
|
[true|false]
|
PL カーネルのデッドロック検出をイネーブルにします。 |
power_profile
|
[true|false]
|
アプリケーションの実行中に消費電力データのポーリングをイネーブルにします。
注記: この機能は、エンベデッド プラットフォームまたは AWS ではサポートされません。
|
power_profile_interval_ms
|
<int>(default=20)
|
消費電力カウンターの読み出し間隔をミリ秒単位で制御します。デフォルトの間隔は 20 ms です。 注記: このオプションは、
power_profile = true の場合にのみ有効です。 |
profile_api
|
[true|false]
|
ホスト アプリケーションから HAL API に直接アクセスすると、実行中にデバイス プロファイリング モニターのカウンターを読み出すことができます。
|
stall_trace
|
[off|all|dataflow|memory|pipe]
|
タイムライン トレースで収集してレポートするデバイス側のストール タイプを指定します。デフォルト値は off です。
注記: このオプションは、
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 アプリケーション層から取得されます。
|
xocl_debug
|
[true|false]
|
イネーブルの場合、xocl.log ファイルを生成します。 ほかのトレース オプションもイネーブルになっている場合は、デバッグ ログが xrt.run_summary に追加され、Vitis アナライザーで表示できます。 |
xrt_trace
|
[true|false]
|
ハードウェア実行中の低レベル HW シム機能トレースの生成をイネーブルにします。native_xrt_trace と併用するとディスエーブルになります。
|
AIE_profile_settings グループ
このグループで指定されたオプションは、 [Debug]
グループで aie_profile=true
の場合にのみ適用されます。
キー | 有効な値 | 説明 |
---|---|---|
graph_based_aie_metrics
|
<graph name|all>:<kernel name|all>:<off|heat_map|stalls|execution|floating_point|write_bandwidths|read_bandwidths|aie_trace> |
AI エンジン タイルの AI エンジン モジュールからレポートされるメトリック セットをグラフ単位で指定します。 重要: 現在、カーネル指定には
all のみがサポートされています。AI エンジン グラフ アプリケーション全体の AIE コア パフォーマンス カウンターから読み取られる統計情報の設定を制御します。 heat_map: アクティブ/ストール サイクルとベクター命令の使用法をプロファイル stalls: さまざまなタイプのストール (メモリ、ストリーム、ロック、カスケード) をプロファイル execution: profile the AI エンジン命令をプロファイル floating_point: 浮動小数点例外をプロファイル write_bandwidths: ストリームおよびカスケードの書き込み帯域幅をプロファイル read_bandwidths: ストリームおよびカスケードの読み出し帯域幅をプロファイル aie_trace: コア モジュールおよびメモリ モジュールからのイベント トレースの量およびストールをプロファイル |
graph_based_aie_memory_metrics
|
<graph name|all>:<kernel name|all>:<off|conflicts|dma_locks|dma_stalls_s2mm|dma_stalls_mm2s|write_bandwidths|read_bandwidths> |
AI エンジン タイルのメモリ モジュールからレポートされるメトリック セットをグラフ単位で指定します。 重要: 現在、カーネル指定には
all のみがサポートされています。AI エンジン グラフ アプリケーション全体の AI エンジン メモリ パフォーマンス カウンターから読み取られる統計情報の設定を制御します。 conflicts: DMA メモリの競合をプロファイル dma_locks: DMA ロック取得時のロックおよびストールをプロファイル dma_stalls_s2mm: DMA S2MM チャネルのストールをプロファイル dma_stalls_mm2s: DMA MM2S チャネルのストールをプロファイル write_bandwidths: DMA S2MM チャネルの帯域幅をプロファイル read_bandwidths: DMA MM2S チャネルの帯域幅をプロファイル |
tile_based_aie_metrics
|
<{<column>,<row>}|all>:<off|heat_map|stalls|execution|floating_point|write_bandwidths|read_bandwidths|aie_trace> ; {<mincolumn,<minrow>}:{<maxcolumn>,<maxrow>}:<off|heat_map|stalls|execution|floating_point|write_bandwidths|read_bandwidths|aie_trace> |
AI エンジン タイルの AI エンジン モジュールからレポートされるメトリック セットをタイル単位で指定します。これはグラフごとの選択と併用でき、指定したタイルを優先的に表示します。
|
tile_based_aie_memory_metrics
|
<{<column>,<row>}|all>:<off|conflicts|dma_locks|dma_stalls_s2mm|dma_stalls_mm2s|write_bandwidths|read_bandwidths> ; {<mincolumn,<minrow>}:{<maxcolumn>,<maxrow>}:<off|conflicts|dma_locks|dma_stalls_s2mm|dma_stalls_mm2s|write_bandwidths|read_bandwidths> |
AI エンジン タイルのメモリ モジュールからレポートされるメトリック セットをタイル単位で指定します。これはグラフごとの選択と併用でき、指定したタイルを優先的に表示します。
|
tile_based_interface_tile_metrics
|
<column|all>:<off|input_bandwidths|output_bandwidths|packets>[:<channel>] ; <mincolumn>:<maxcolumn>:<off|input_bandwidths|output_bandwidths|packets>[:<channel>] |
AI エンジン インターフェイス タイルからレポートされるメトリック セットをタイル単位で指定します。 注記: インターフェイス タイルは、AI エンジン タイルとは別のもので、異なるメトリック セットを含みます。
|
interval_us
|
<int>
|
AI エンジン カウンター値の読み出し間隔をマイクロ秒 (µ s) 単位で制御します。デフォルトの間隔は 1000 µs です。 注記: このオプションは、
aie_profile =
true の場合にのみ有効です。 |
AIE_trace_settings グループ
このグループで指定されたオプションは、 [Debug]
グループで aie_trace=true
の場合にのみ適用されます。
キー | 有効な値 | 説明 |
---|---|---|
buffer_size
|
<string>
(default=8M)
|
AI エンジン イベント トレースに割り当てられたバッファーの合計サイズを制御します。このサイズは、AI エンジン から送信されるさまざまなトレース ストリームの数に均等に分割されます。デフォルトは 8M です。 注記: このオプションは、
aie_trace = true の場合にのみ有効です。 |
buffer_offload_interval_us
|
integer (default=10ms) | デバイスからホスト メモリへの PLIO モードの AI エンジン のトレースの読み出し間隔 (ミリ秒単位)。 |
periodic_offload
|
true/false (default=true) | PLIO モードの AI エンジン のトレースの継続的なオフロードをイネーブルにします。生成された AI エンジン トレース出力ファイル (ストリームごとに 1 つ) に新しいトレース データが追加されます。 |
file_dump_interval_s
|
integer (default=5s) | 未処理の AI エンジン トレース データを出力ファイルへ書き込む (追加する) 間隔 (秒単位)。 |
graph_based_aie_tile_metrics
|
string("") <graph name|all>:<kernel name|all>:<off|functions|functions_partial_stalls|functions_all_stalls> |
AI エンジン タイルの AI エンジン モジュールからレポートされるメトリック セットをグラフ単位で指定します。 重要: 現在、カーネル指定には
all のみがサポートされています。 |
tile_based_aie_tile_metrics
|
string("") <{<column>,<row>}|all>:<off|functions|functions_partial_stalls|functions_all_stalls>[:<memory_stalls|stream_stalls|cascasde_stalls|lock_stalls>] {<mincolumn,<minrow>}:{<maxcolumn>,<maxrow>}:<off|functions|functions_partial_stalls|functions_all_stalls> |
AI エンジン タイルの AI エンジン モジュールからレポートされるメトリック セットをタイル単位で指定します。 重要: 現在、カーネル指定には
all のみがサポートされています。 |
reuse_buffer
|
true/false (false) |
エミュレーション グループ
エミュレーション グループは、エミュレーション環境と AMD Vivado™ シミュレータに適用されます。
キー | 有効な値 | 説明 |
---|---|---|
aliveness_message_interval
|
整数 | メッセージを出力する時間間隔を秒で指定します。デフォルトは 300 です。 |
debug_mode
|
[off|batch|gui]
|
エミュレーション中の波形の保存および表示方法を指定します。
注記: 波形を保存してシミュレータの GUI に表示するには、カーネルをデバッグをイネーブル (
v++ -g ) にしてコンパイルする必要があります。 |
kernel-dbg
|
[true|false]
|
ソフトウェア エミュレーションのコマン ドライン デバッグ フロー で説明するように、ソフトウェア エミュレーション中のカーネル デバッグ機能をイネーブルにします。
|
print_infos_in_console
|
[true|false]
|
ユーザー コンソールへのエミュレーション情報メッセージの表示を制御します。エミュレーション情報メッセージは、emulation_debug.log というファイルに保存されます。
|
print_warnings_in_console
|
[true|false]
|
ユーザー コンソールへのエミュレーション警告メッセージの表示を制御します。エミュレーション警告メッセージは、emulation_debug.log というファイルに保存されます。
|
print_errors_in_console
|
[true|false]
|
ユーザー コンソールへのエミュレーション エラー メッセージの表示を制御します。エミュレーション エラー メッセージは、emulation_debug.log ファイルに保存されます。
|
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 タイムアウトをイネーブルにしておく必要があります。 |