エミュレーション ターゲットの実行 - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

典型的な開発フローでの手順は次のとおりです。

  1. システム全体が機能的に正しく動作するかを検証するためにシステムのソフトウェア エミュレーションを実行する
    注記: これには、HLS コンポーネントで C シミュレーションを実行することや、AI エンジン コンポーネントを検証するために x86simulator を実行することも含まれます。
  2. AI エンジン シミュレータで AI エンジン カーネルとグラフがアプリケーションのパフォーマンス要件を満たしているかどうかを検証
  3. デザインのタイミングを検証するためのシステムのハードウェア エミュレーション
    注記: これには、HLS コンポーネントで C/RTL 協調シミュレーションを実行することや、AI エンジン コンポーネントを検証するために aiesimulator を実行することも含まれます。
  4. ハードウェアでのテストおよびデバッグ

ハードウェア実行の実行中は、プラットフォームやアクセラレータ カードの物理デバイス上でシステム デザインが実行されます。ただし、エミュレーション ターゲットの実行は、x86 プロセッサでは仮想システム上で実行され、エンベデッド プロセッサ上では QEMU 環境で実行されます。ソフトウェアおよびハードウェア エミュレーションのターゲットには、XRT でランタイムで読み込まれる独自のドライバーがターゲット別にあります。このため、ランタイム中にターゲット モードを変更すると、再コンパイルしないで同じ CPU バイナリをそのまま実行できます。

XRT は XCL_EMULATION_MODE 環境変数の値に基づいてターゲット別のドライバーを読み込み、ハードウェアのエミュレーション モデルを使用してアプリケーション インターフェイスを作成します。XCL_EMULATION_MODE に指定できる値は sw_emu および hw_emu です。XCL_EMULATION_MODE が設定されていない場合、 XRT はハードウェア ドライバーを読み込みます。

重要: エミュレーションを実行する場合は、必ず XCL_EMULATION_MODE を設定する必要があります。
図 1. XRT ドライバー

xrt.ini ファイルを使用しても、エミュレーションに適用可能なさまざまなオプションを設定できます。xrt.ini ファイル に説明するように、xrt.ini にはエミュレーション用の [Emulation] セクションがあります。

AI エンジンを含むシステムのエミュレーションは、次の操作をする際に便利です。

  • 限られた既知のデータ セットを使用してシステムの初期動作を確認
  • GDB を使用した PS、PL、ADF グラフの機能統合とデバッグ
  • Python または C++ を使用した外部トラフィック ジェネレーターを含むシステムのテスト
  • RTL カーネル用の C ベース モデルを使用したシステムの実行
  • Work/options にある x86.options ファイルまたは aiesimulator_output ディレクトリにある aiesim_options.txt を使って AI エンジン のシミュレーション オプションを適用
重要: ソフトウェア エミュレーションでは、すべての PL カーネルが HLS ベースであるか、C/C++ モデルが含まれている必要があります。RTL カーネルは通常、ソフトウェア エミュレーションをサポートしません。

ソフトウェア エミュレーションで実行するホスト コードを記述する際は、すべてのバッファー オブジェクト (xrtBO) を xrtBOSync API 呼び出しと同期します。データ駆動型 PL カーネルを複数回実行するには、ソフトウェア アプリケーションの while (1) ループ内で実行します。

ソフトウェアまたはハードウェア エミュレーションが起動したら、使用されるシミュレータに従って、AI エンジン コンポーネントのオプションを指定できます。これらのオプションは、 -x86-sim-options を使用して launch_sw_emu.sh スクリプトから指定することも、-aie-sim-options を使用して launch_hw_emu.sh スクリプトから指定することもできます。詳細は、 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076)AI エンジン シミュレータ オプションの再利用を参照してください。

エミュレーション環境が起動し、Linux プロンプトが表示されたら、QEMU 環境で次の環境変数を設定し、ホスト アプリケーションが動作するようにします。これらは、ハードウェア上で実行する場合にも設定する必要があります。

export XILINX_XRT=/usr
export LD_LIBRARY_PATH=/mnt/sd*1:
export XCL_EMULATION_MODE=hw_emu