組み込み関数を使用したデザイン解析およびプログラミング - 2023.2 日本語

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

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 日本語
注意:
デザインには AI エンジン API を使用することを強くお勧めします。組み込み関数の使用は、デザインの厳しいパフォーマンス要件のため AI エンジン API では提供されない機能を必要とする場合にのみ考慮してください。たとえば、AI エンジン API では、現在のところ、fft_data_incrcyclic_add などの組み込み関数で提供される機能はサポートされていません。AI エンジン API では主な並べ替えのユース ケースがサポートされ、抽象化されていますが、並べ替えのすべての機能が提供されているわけではありません。組み込み関数を使用することにより、デザインに必要なパフォーマンスを達成しやすくなることがあります。

AI エンジンは、大量の VLIW および SIMD 計算ユニットを革新的なメモリおよび AXI4-Stream ネットワークを介して相互接続することにより、高い計算密度を実現します。アプリケーションを AI エンジンにインプリメントする場合、AI エンジンおよびデータの計算ニーズとスループット要件を評価することが重要です。たとえば、AI エンジンが PL カーネルおよび外部 DDR メモリとどのようにデータをやり取りするかなどを評価します。AI エンジンの計算およびデータのスループット要件を満たすことができたら、次の手順では、アルゴリズムを AI エンジン アレイにマップするため分割統治法を使用します。分割統治法を使用するには、ベクター プロセッサ アーキテクチャ、メモリ構造、AXI4-Stream、およびカスケード ストリーム インターフェイスについて理解することが必要です。この手順は通常複数回繰り返します。同時に、各 AI エンジン カーネルを最適化し、グラフを構築して反復的に最適化します。AI エンジン カーネルおよびグラフをシミュレーションおよびデバッグするには、AI エンジン ツールを使用します。その後、グラフを PL カーネル、GMIO、および PS と統合し、システム レベルの検証とパフォーマンスの調整を実行します。

この章では、分割統治法を使用してアルゴリズムをデータフロー図 (DFD) にマップする方法について簡単に説明します。シングル カーネル プログラミングと複数カーネル プログラミングの例を示し、計算バウンドおよびメモリ バウンド、シングル カーネルのベクター化と最適化、異なるカーネル間のストリーミングのバランス調整により、カーネルを分割する方法を示します。

注記: この付録における input_window および output_window は、廃止されています。代わりに、input_buffer および output_buffer を使用することをお勧めします。