AI エンジンと PL のレート マッチング - 2023.2 日本語

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

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

AI エンジンは、1 GHz (スピード グレードによってはそれ以上) で動作し、各インターフェイス チャネルは 1 サイクルごとに 64 ビットのデータ幅で読み出しまたは書き込むことができます。PL カーネルは、500 MHz (AI エンジンの 1/2 の周波数) で動作でき、より広いビット幅を使用します。レート マッチングでは、プロデューサー側からコンシューマー側へのスループットのバランスを取り、いずれのプロセスも全体的なパフォーマンスのボトルネックにならないようにします。次の式に、各チャネルのレート マッチングを示します。

AI エンジンの周波数 × 1 サイクルごとの AI エンジンのデータ = PL の周波数 × 1 サイクルごとの PL のデータ

次の表に、-1L スピード グレード デバイスで 1 GHz で動作する AI エンジンにより、各サイクルで 32 ビット チャネルが書き込まれる PL のレート マッチングの例を示します。この表に示すように、PL IP は、AI エンジンの 1/2 の周波数で 2 倍のデータを消費するか、1/4 の周波数で 4 倍のデータを消費する必要があります。

表 1. AI エンジンと PL 領域の周波数応答の比較
AI エンジン PL
周波数 1 サイクルごとのデータ 周波数 1 サイクルごとのデータ
1 GHz 32 ビット 500 MHz 64 ビット
    250 MHz 128 ビット

Vitis コンパイラ (v++) は、周波数を一致させてデータパス幅を調整する必要があることを理解しているので、PL カーネルからポート幅、クロック仕様から周波数を自動的に抽出し、AI エンジンと PL 領域の間でやりとりされるデータを一時的に格納してレート マッチングを管理するアップサイザー/ダウンサイザーを作成します。

デッドロックを回避するには、AI エンジンと PL の間で複数のチャネルが読み出されたり書き込まれたりした場合に、すべてのチャネルで同時に 1 サイクルごとのデータ レートが達成されることを確認することが重要です。たとえば、1 つのチャネルに 32 ビットが必要で、2 つ目のチャネルに 64 ビットが必要な場合、AI エンジン コードで両方のチャネルが正しく記述され、チャネルでバック プレッシャーやデータ不足が発生しないようにする必要があります。さらに、デッドロックを回避するには、AI エンジンからの書き込みと読み出し、および PL コードでの読み出しと書き込みが同じ順序で実行される必要があります。

PL のグラフ関数定義で使用されるインターフェイスの数によって、AXI4-Stream インターフェイスの数が定義されます。各引数から個別のストリームが生成されます。