AI エンジン アレイのリセットおよび再読み込みフロー - 2023.2 日本語

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

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

AI エンジン のリセットと再読み込みフローにより、ボードと Linux OS を再起動することなく、ハードウェア上でアプリケーションを複数回実行できます。このフローでは、RST_PL RESET0 レジスタを制御することで、AI エンジン アレイおよびプラットフォームのダイナミック領域ブロック デザイン内のすべての PL ロジックがリセットおよび再読み込みされます。RST_PL レジスタについては、 『Versal アダプティブ SoC レジスタ リファレンス』 (AM012) を参照してください。このリセットおよび再読み込みフローでは、次が実行されます。

  • 特定のタイルにプログラムされたカーネル、DMA、タイルとメモリ間の FIFO など、AI エンジン グラフ アプリケーションでコンフィギュレーションされた AI エンジン アレイをリセットします。
  • DFX を使用しないプラットフォームの AI エンジン アレイをリセットします。
  • ボードを再起動することなく AI エンジン アレイをリセットします。
  • ボードを再起動することなく、同じグラフまたは異なるグラフで AI エンジン アレイを再読み込みします。

フローは、Linux XRT でサポートされています。

アプリケーションを連続してリセットおよび再読み込みする場合は、同じ AI エンジン-PL インターフェイスを使用する必要があります。同じグラフまたは異なるグラフを使用して AI エンジン アレイを再読み込みできます。

このフローは、次のことを目的として使用します。

  • AI エンジン アプリケーションを複数回実行するため、システムのリセットおよびボードの再起動を回避する。
  • ボードで実行していてシステムが異常状態となり、アプリケーションの再実行が必要になった場合、長時間の再起動を回避する。
  • 変更された AI エンジン カーネルを実行する場合、システムのリセットおよびボードの再起動を回避する。

リセットおよび読み込みフローでは、AI エンジン グラフと PL カーネルを別々の XCLBIN ファイルにコンパイルする必要があります。ホスト アプリケーションは、これらの XCLBIN ファイルを使用する必要があります。続いて、xbutil ユーティリティを使用して、連続するアプリケーション実行間で PL および AI エンジン カーネルをリセットします。

ハードウェアで AI エンジン デザインをリセットして再読み込みする場合、イベント トレースとこのデザインのプロファイルはサポートされません。

リセットおよび再読み込みフローの前提条件

次の手順を実行し、アプリケーションでリセットおよび再読み込みフローがサポートされるようにします。
  1. AI エンジン グラフをコンパイルします。
  2. PL カーネルをコンパイルします。
  3. v++ リンカーを使用して HW フローをターゲットにして XSA ファイルを生成します。
  4. v++ パッケージャーを使用して PL 専用 XCLBIN を生成します。AI エンジン専用および PL 専用 XCLBIN の生成 を参照してください。
  5. v++ パッケージャーを使用して、AI エンジン専用 XCLBIN を生成します。AI エンジン専用および PL 専用 XCLBIN の生成 を参照してください。
  6. v++ パッケージャーを使用して、上記で生成した AI エンジン専用 XCLBIN と PL 専用 XCLBIN を --package.sd_file <> オプションを使用して sd_card イメージに含めます。
  7. ホスト コードにより AI エンジン専用 XCLBIN と、前の手順で生成された PL 専用の XCLBIN が読み込まれることを確認します。リセットおよび再読み込みフローのホスト アプリケーション を参照してください。

リセットおよび再読み込みフローの手順

  1. ボード上でアプリケーションを実行します。ハードウェアでの AI エンジン グラフ アプリケーションのパフォーマンス解析 を参照してください。
  2. xbutil reset コマンドを使用してアプリケーションをリセットします。連続するアプリケーション実行前のリセット を参照してください。
  3. ボード上でアプリケーションを再実行します。
図 1. AI エンジンのリセットおよび再読み込みフロー
連続する実行で異なるカーネルが AI エンジン アレイで使用される場合、AI エンジン コンパイラのインクリメンタル フローを使用して、同じ AI エンジン-PL インターフェイスが使用されるようにすることができます。次を実行する必要があります。
  1. aiecompiler と、上記の前提条件のセクションの手順 3 で生成したプラットフォーム XSA を使用して、新しいカーネルを再コンパイルします。
  2. v++ パッケージャーを使用して、新しい AI エンジン専用 XCLBIN を生成します。
  3. v++ パッケージャーを使用して、新しい AI エンジン専用 XCLBIN を --package.sd_file <> オプションを使用して sd_card イメージに含めます。