AI エンジン グラフの開発と検証 - 2023.2 日本語

Versal アダプティブ SoC デザイン ガイド (UG1273)

Document ID
UG1273
Release Date
2023-10-25
Version
2023.2 日本語

AI エンジンのプログラムには、C++ 言語で記述されたデータフロー グラフの仕様が含まれ、ノードとエッジで構成されています。ノードは (カーネルと呼ばれる) 演算関数を表し、エッジはデータ接続を表します。AI エンジン グラフの仕様は、Vitis aiecompiler を使用してコンパイルされ、Vitis aisimulator でシミュレーションされます。

AMDでは、スカラー演算からベクトル化された演算へとグラフを段階的に調整してテストすることを推奨します。これで、下位の AI エンジン固有のコーディングをしなくても、システムをセットアップできるようになります (ビルド スクリプト、機能の正当性など)。

グラフは、グラフ アプリケーション プログラミング インターフェイス (API) を使用し、グラフを駆動および管理するユーザーが作成したテストベンチを用いてテストされます。グラフに対するデータの入力/出力方法はいくつかあります。

  • ランタイム パラメーター (RTP) は、PS アプリケーションと AI エンジン カーネル間の値のやり取りに使用されるプログラム可能なレジスタです。
  • GMIO は、AI エンジンからグローバル メモリへの直接接続を水平 NoC 経由で提供します。
  • PLIO は、AI エンジン カーネルと PL ブロック間の直接ストリーミング接続を提供します。

テストベンチは、基本的なファイル I/O 動作、あるいは Python、C/C++、または HDL で記述されるより強力なトラフィック ジェネレーターで構成され、AI エンジン グラフに対してデータを入出力します。

重要: 開発が先の段階に進むにつれてシステム パフォーマンスの改善は難しくなるため、この段階で性能テストの結果を観察し、パフォーマンス目標を満たすようにすることが重要です。ただし、aiesimulator による I/O トラフィックのシミュレーションはベスト ケースの動作条件を前提にしているため、こうした設計の早い段階で aiesimulator で性能を満たしても、最終的なシステム性能を示しているとはいえません。

AMD では、シミュレーションで AI エンジン グラフをテストした後に、ハードウェア上でテストすることを推奨しています。VCK190 で AI エンジン グラフを簡単にテストできるように、AMD はすぐに使えるテスト ハーネスを提供しています。このテスト ハーネスは、AI エンジン シミュレーション環境からハードウェア上でのテストへ簡単かつ自然に移行できるように設計されています。このテスト ハーネスを使用すると、シミュレーションで動作する AI エンジン グラフにわずかな変更を加えるだけで、すぐにハードウェアで動作させることができます。AI エンジン テスト ハーネスの詳細は、AMD GitHub リポジトリの AIE テスト ハーネスを参照してください。

AI エンジン グラフおよびカーネルの開発およびシミュレーション方法の詳細は、Versal アダプティブ SoC デザイン プロセス資料: AI エンジン開発を参照してください。