コマンド ラインからのグラフのコンパイルおよび実行 - 2023.2 日本語

AI エンジン カーネルおよびグラフ プログラミング ガイド (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 日本語
  1. 作成したグラフをコンパイルするには、次のコマンドを実行します (詳細は 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076)AI エンジン グラフ アプリケーションのコンパイル参照)。
    aiecompiler  project.cpp

    プログラムは project.cpp という名前です。aiecompiler は指定された入力グラフを読み出して AI エンジン アレイにコンパイルし、各種レポートを作成して Work ディレクトリに出力ファイルを生成します。

  2. C++ 入力を解析して JSON (JavaScript Object Notation) で表されるグラフィカルな中間形式に変換後、aiecompiler はリソース マッピングとスケジューリング解析を実行し、グラフ内のカーネル ノードを AI エンジン アレイのプロセッシング コアにマップし、データ バッファーをメモリ バンクにマップします。JSON 表現には、マップ情報が含まれます。各 AI エンジンには、マップされているすべてのカーネルのスケジュールも必要です。

    入力グラフはまず、同じコアにマップされるカーネルのグループに分割されます。

    マップの出力は、project_mapping_analysis_report.txt に表形式で表示されます。これは、ノードのプロセッシング コアへのマップと、データ バッファーのメモリ バンクへのマップをレポートします。プロセッサ間の通信は、ピンポン バッファーとして適切にダブル バンクされます。

  3. aiecompiler は必要なロック、メモリ バッファー、DMA チャネル、ディスクリプターを割り当て、グラフを AI エンジン アレイにマップするための配線情報を生成します。コア上のすべてのカーネルをスケジューリングする各コアのメイン プログラムを合成し、必要なロック機構とバッファー間のデータ コピーをインプリメントします。各コアの C/C++ プログラムはコンパイルされ、ロード可能な ELF ファイルを生成します。aiecompiler は、main アプリケーションからグラフの初期化、実行、および終了を制御するための制御 API、およびシミュレータ コンフィギュレーション スクリプト scsim_config.json も生成します。これらはすべて、Work ディレクトリのサブフォルダーに保存されます (詳細は 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076)AI エンジン グラフ アプリケーションのコンパイルを参照)。
  4. AI エンジン グラフをコンパイル後、aiecompiler はコンパイル結果を <graph-file-name>.aiecompile_summary という名前のサマリとして生成します。これは、Vitis IDE で表示できます。このサマリには、複数のレポートと、コンパイル済みビルドにインプリメントされた AI エンジン アプリケーションのステートを表す図が含まれます。このサマリは、aiecompiler--workdir オプションで指定する作業ディレクトリ (デフォルトでは ./Work) に出力されます。

    aiecompiler サマリを開くには、次のコマンドを使用します。

    vitis -a ./Work/graph.aiecompile_summary
  5. グラフを実行するには、次のコマンドを実行します (詳細は 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076)AI エンジン グラフ アプリケーションのコンパイルを参照)。
    aiesimulator –-pkg-dir=./Work

    これにより、制御プログラムが main アプリケーションである SystemC ベースのシミュレータが起動します。制御プログラムで使用されるグラフ API は、スタティック配線の設定、DMA のプログラム、個々のコアへの ELF ファイルの読み込み、AI エンジン アレイの実行の開始など、AI エンジン アレイを設定します。

    シミュレーションの最後に、出力データが aiesimulator_output ディレクトリに生成されます。これは、基準データと一致する必要があります。

    グラフは、ブート時にハードウェアに読み込むか、ホスト アプリケーションで読み込むことができます。ハードウェアでのグラフの運用および関連するフローの詳細は、 『Vitis 統合ソフトウェア プラットフォーム資料: アプリケーション アクセラレーション開発』 (UG1393)システムのビルドと実行を参照してください。

注記: AI エンジン グラフの次回のコンパイルでは、変更された AI エンジン カーネルのみが再コンパイルされます。変更されていないカーネルは再コンパイルされません。