Vitis コア開発キットでは、Alveo データセンター アクセラレーション カードとカスタム エンベデッド プラットフォームがデザインの基盤となります。ターゲット デバイスには、AMD Versal™
アダプティブ SoC、Zynq UltraScale+ MPSoC、Kria SOM、AMD UltraScale+™
FPGA などがあります。これらのデバイスには、デバイス バイナリ (.xclbin
) ファイルをロードして実行するプログラマブル ロジック (PL) 領域が含まれます。このファイルには、コンパイル済みオブジェクト オブジェクト (.xo
) ファイルとして PL カーネルが含まれて接続されており、AI エンジン グラフも含まれることがあります。
拡張可能な Alveo アクセラレーション カードとカスタム エンベデッド プラットフォームには、グローバル メモリ (DDR または HBM) への 1 つまたは複数のインターフェイス、および AI エンジン や外部 I/O などのほかのリソースに接続されたオプションのストリーミング インターフェイスが含まれています。PL カーネルは、グローバル メモリ インターフェイス (m_axi
) またはストリーミング インタフェース (axis
) を介してデータにアクセスできます。PL カーネルのメモリ インターフェイスは、エクステンシブル プラットフォームのメモリ インターフェイスに接続する必要があります。PL カーネルのストリーミング インターフェイスは、プラットフォーム、ほかの PL カーネル、または AI エンジン アレイの任意のストリーミング インターフェイスに接続できます。システムのリンク で説明するように、メモリ ベースの接続とストリーミング接続の両方が Vitis リンク オプションで定義されます。
AMD デバイス バイナリ (.xclbin) の PL 領域には複数のカーネル (.xo) をインプリメントできるので、アプリケーションをかなりアクセラレーションできます。1 つのカーネルを複数回インスタンシエートすることもできます。カーネルのインスタンス数または演算ユニット数は最大 31 までプログラム可能で、デバイス バイナリを構築する際に指定したリンク オプションで決定できます。
Versal デバイスの場合、.xclbin ファイルにはコンパイル済みの AI エンジン グラフ アプリケーション (libadf.a
) も含めることができます。グラフ アプリケーションは、計算カーネル関数を表すノードとデータ接続を表すエッジで構成されます。カーネル関数は、ADF グラフ アプリケーションの基本的な構成ブロックです。カーネルは、データ ストリーム上で動作し、入力データ ブロックを消費し、出力データ ブロックを生成します。libadf.a
と PL カーネル (.xo
) は、ターゲット プラットフォーム (.xpfm
) とリンクされ、ハードウェア デザインを定義します。AI エンジン は、axis
インターフェイスを介して PL カーネルで駆動できます。また、AI エンジン は、グラフ内のランタイム パラメーター (RTP) や Versal アダプティブ SoC デバイスの GMIO を介して、Arm プロセッサ (PS) から制御することもできます。詳細は、
『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076) を参照してください。