Versal AI エンジン グラフ開発 - 2023.2 日本語

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

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

Versal アダプティブ SoC は、スカラー エンジン、適応型エンジン、およびインテリジェント エンジンを最新のメモリおよびインターフェイス技術と統合して、あらゆるアプリケーションで使用可能な高性能ヘテロジニアス コンピューティングを提供します。Versal アダプティブ SoC で最も重要な点は、ソフトウェア開発者やデータ サイエンティストがハードウェア開発者と同様にハードウェアとソフトウェアをプログラムおよび最適化できることにあります。

Versal アダプティブ SoC デバイスの中には、AI エンジン という単一命令複数データ (SIMD) ベクター ユニットを含む VLIW (Very-Long Instruction Word) プロセッサのアレイが搭載されているものもあり、5G ワイヤレスおよび人工知能 (AI) アプリケーションなどの演算負荷の高いアプリケーション向けに高度に最適化されています。Versal デバイスを使用するエンベデッド システム デザインには、Vitis ツールを使用して開発およびテストされた AI エンジン 適応型データフロー (ADF) グラフ アプリケーションを含めることができます。

『AI エンジン カーネルおよびグラフ プログラミング ガイド』 (UG1076) に示すように、適応型データフロー (ADF) グラフ アプリケーションは、演算カーネル関数を表すノードとデータ接続を表すエッジで構成されます。ADF グラフは、AI エンジン カーネルが並列に動作するスタティックなデータフロー グラフです。AI エンジン カーネルは VLIW SIMD ベクター プロセッサをターゲットとする専用の組み込み関数を使用して作成された C/C++ プログラムです。カーネルはデータ ストリーム上で動作し、ADF グラフ仕様の基本的なビルディング ブロックです。これらのカーネルは、入力データ ブロックを消費し、出力データ ブロックを生成します。

次の図は、AI エンジン グラフア プリケーションの開発フローで、個々のカーネル コードがコンパイルされ、グラフ アプリケーションに結合されています。AI エンジン グラフおよびカーネル コードは、AI エンジン コンパイラ (aiecompiler) または v++ --mode aie コマンドを使用してコンパイルされ、AI エンジン プロセッサ上で実行される実行ファイルを生成します。

重要: AI エンジン グラフ アプリケーションを含めるには、エンベデッド システム デザインにエクステンシブル プラットフォームを使用してアプリケーションの実行を制御する必要があります。
図 1. Vitis AI エンジン 開発フロー

Versal デバイスの aiengine ドメインをターゲットとする AI エンジン コンポーネントは、システムのビルドと実行 で説明されるようにコマンド ラインから、または Vitis Unified IDE の使用 で説明されるように Vitis Unified IDE でビルドできます。AI エンジン グラフ アプリケーションのビルドおよび解析プロセスは、この資料で簡単に説明します。詳細は、 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076) を参照してください。

デフォルトでは、AI エンジン コンパイラはすべての出力を ./Work というディレクトリに書き込み、libadf.a というファイルを作成します。Work はツールを起動した現在のディレクトリの下位ディレクトリで、libadf.aAI エンジン コンパイラの起動元と同じディレクトリに書き込まれ、次のセクションで説明するように v++ コマンドを使って PL カーネルとエクステンシブル プラットフォームをリンクするために使用されます。