Vitis IDE での AI エンジンのストール解析 - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

次のような複数のソースからのストール ロジックにより、AI エンジンの実行がストールすることがあります。

外部メモリ マップド AXI4 マスター
外部 AXI4 マスター (PS など) が、特定の AI エンジンに対してストール信号を発行することがあります。
ロック モジュール
AI エンジンは、ハードウェア同期のためロックにアクセスできます。ロックを取得するときにコアがロックを取得しない場合、ロックが解除されるまで AI エンジンがストールします。
EMPTY または FULL AXI4-Stream インターフェイス
AI エンジンは、空の入力 FIFO から読み出そうとしたり、フルの出力 FIFO に書き込もうとしたりすると、ストールします。
データ メモリ競合
メモリのストールは、2 つの異なる AI エンジン間、または 1 つの AI エンジンが 1 つのメモリ バンクにアクセスしようとしたとき (同じサイクルで同じメモリ バンクにロードおよびストアを実行するなど) に発生することがあります。
イベント ユニットからのイベント動作
AI エンジンは、イベント ユニットからのイベント動作よりストールすることがあります。

AI エンジンがストールすると、プログラム メモリ インターフェイスを含む AI エンジンへのすべてのメモリ インターフェイスがストールします。ストールの原因が修正されると、ストールは解決します。

IDE では、AI エンジン シミュレーションからの VCD トレースを使用して、ストール ステータスの概要をメトリクスで表示するストール解析を実行できます。これは、ストールの発生場所と可能な原因を検出するのにも役立ちます。

IDE でのストール解析には、AI エンジン シミュレータを --online -wdb -text オプションを指定して実行し、バックグラウンドでイベント トレース情報を生成することをお勧めします。

aiesimulator --pkg-dir=./Work --online -wdb -text
注記: 解析に VCD ファイルが必要な場合は、代わりに AI エンジン シミュレータの --dump-vcd オプションを使用できます。IDE で VCD ファイルからイベント トレースを生成するには時間がかかります。特にデザインが大きい場合、その時間は無視できなくなります。そのため、vcdanalyzeAI エンジン シミュレータと共に使用して、IDE で AI エンジン ストール解析を実行するためのイベント トレースを準備することをお勧めします。
aiesimulator --pkg-dir=./Work --dump-vcd foo
vcdanalyze --vcd=foo.vcd --wdb --text
注記: vcdanalyze の --outdir オプションを使用して出力データをデフォルト以外のディレクトリに配置しないでください。

IDE を起動して AI エンジン シミュレーション結果を表示する手順は、Vitis IDE での実行サマリの表示 を参照してください。

vitis -a ./aiesimulator_output/default.aierun_summary

Vitis IDE をハードウェア エミュレーションで使用して AI エンジン ストール解析を実行するには、次の追加設定が必要です。

  1. 次の内容を含むシミュレータ オプション ファイル (sim_options.txt など) を記述します。
    AIE_PKG_DIR=<ABSOLUTE_PRJ_PATH>/Work
    AIE_DUMP_VCD=foo
  2. 次のオプションを指定してハードウェア エミュレーションを起動します。
    ./launch_hw_emu.sh -aie-sim-options <ABSOLUTE_PATH_TO>/sim_options.txt
  3. (オプション) vcdanalyze を実行します。
    cd ./sim/behav_waveform/xsim/; vcdanalyze --pkg-dir=../../../Work --vcd=foo.vcd --wdb –text
  4. Vitis IDE を起動します。
    vitis -a ./sim/behav_waveform/xsim/default.aierun_summary