インターフェイスに関する考慮事項 - 2023.2 日本語

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

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 日本語

シングル カーネル プログラミングでは、アルゴリズムを 1 つの AI エンジンにベクター化しますが、複数カーネル プログラミングでは、複数の AI エンジン カーネル間のデータフローを考慮します。

ADF グラフには、PS、PL、およびグローバル メモリとデータをやり取りする 1 つまたは複数のカーネルが含まれます。各 AI エンジン カーネルには、ランタイム比があります。この値は、カーネルの 1 回の呼び出し (1 つのブロック データを処理) にかかるサイクル数のサイクル バジェットに対する比率として計算されます。アプリケーションのサイクル バジェットは、予測されるデータ スループットおよび処理されるブロック サイズによって、通常は固定されています。ランタイム比は、ADF グラフの各 AI エンジン カーネルの制約として指定できます。

合計ランタイム比が 1 未満で複数のカーネルが AI エンジン プログラム メモリに収まり、ストリーム インターフェイス数などのリソース使用量の合計が AI エンジン タイルの制限を超えない場合、AI エンジン コンパイラで複数のカーネルが 1 つの AI エンジンに割り当てられます。複数の AI エンジンに割り当てることも可能です。

ここで重要な点は、AI エンジンをプログラムする際、各 AI エンジンが 1 つの 32 ビット AXI4-Stream入力、1 つの 32 ビット AXI4-Stream出力、1 つの 512 ビット カスケード ストリーム入力 (上または左から入力)、1 つの 512 ビット カスケード ストリーム出力 (下または右に出力)、2 つの 256 ビット データ ロード、および 1 つの 256 ビット データ ストアにアクセスできるということです。ただし、命令の長さによっては、同じサイクルでこれらの操作すべて実行できるとは限りません。

ハードウェア リソースを最適に使用するには、ADF グラフと PS、PL、およびグローバル メモリ間のデータ転送、カーネル間のデータ転送に使用可能な異なる方法を理解し、データ移動のバランス取ってメモリまたはストリームのストールを可能な限り最小限に抑えます。これについては、次のセクションで説明します。