Versal AI Engine で DSP ワークロードを高速化
システム全体のパフォーマンスを向上させる鍵
ワークロードを効率的に実行できるプログラマブル ロジックや Versal AI Engine などに展開することで、エネルギー効率と全体的なパフォーマンスを大きく改善できます。Versal AI Engine が高性能 DSP アプリケーションに最適な理由をご覧ください。
Versal AI エンジンは、高性能なデジタル信号処理 (DSP) を可能にします。
次世代 DSP アプリケーションの開発に取り組むお客様は膨大な演算能力を必要としますが、従来の FPGA アーキテクチャでは効率的に実装できるものではありません。FIR、FFT、GeMM などの高い演算処理能力を必要とする DSP アプリケーションは、大量の DSP ブロックとプログラマブル ロジック リソースを使用します。
この要件があるため、従来型のプログラマブル ロジック デバイスで利用できる全体的な演算能力は大幅に低下します。使用できる DSP ブロックやプログラマブル ロジックの数を増やすだけでは、消費電力のバジェットが制限される負荷の高い DSP ワークロードに対するスケーラブルなソリューションとは言えません。
Versal AI Engine は、このようなケースにおいてより効率的な演算ソリューションを提供するように設計されています。
AMD Versal™ AI エンジンをターゲットとする高性能 DSP 機能の設計には、AMD Vitis™ 開発ツールを使用する方法と、MathWorks Simulink® ツールのシミュレーションやグラフィック機能を活用する Vitis Model Composer フローを使用する方法があります。
いずれの場合も、DSP アプリケーションを FPGA または AI エンジンで実行、あるいは FPGA ロジックと AI エンジンの組み合わせで実行するために、関数に適切に割り当てることが非常に重要です。この場合、システム全体だけでなく、各デバイスの能力も理解しておく必要があります。
一般的に、演算負荷の高い関数は AI エンジンに実装し、データの移動や再配置を目的とする関数は FPGA に実装します。
次の例で示すように、複雑なフィルタリングとフーリエ変換は、AI エンジン アレイに実装することが推奨されています。
関数が AI エンジンで効果的に実行できることが確認できると、次のオプションのいずれかを使用して AI エンジンに実装できます。
注記: 以下のオプションを複数組み合わせたハイブリッドなアプローチも可能です。
Vitis プラットフォームは、DSP ライブラリ、API、イントリンシクス関数を活用する 2 つのプログラミング環境を提供
C/C++ で開発
Vitis プラットフォームには、一般的な DSP アルゴリズムや関数、デバイス グラフ向けのオープンソースの構築ブロックが用意されています。これらをそのまま使用して迅速にテストを実行することも、用途に合わせてカスタマイズすることも可能です。
C/C++ フロー
DSP 向けの AI エンジン開発を開始する場合、Vitis DSP ライブラリ関数 (C ベース) の利用を推奨しています。手動コーディングは最適化の余地がありますが、次に示す方法を使うことで、高性能を維持しつつ、DSP 向けの AI エンジンを最速で適用できます。これらのオプションを複数組み合わせたハイブリッドなアプローチも可能です。
dsplib::fft::dit1ch::fft_ifft_dit_1ch
aie::vector<int8_t, sizeTileA> A0
aie::vector<int8_t, sizeTileA> A1
Acc0 = mac16(acc0, Bbuff, 0, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210);
Acc0 = mac16(acc0, Bbuff, 32, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210);
その後、異なる AI エンジン関数を連携させるため、graph C コードという C++ コードを記述して、複数の AI エンジン タイルからなるネットワークを構築します。
Vitis Model Composer を使用したモデルベースのフロー
Vitis Model Composer を使用すると、MathWorks の MATLAB®/Simulink® 環境上で開発が可能になり、Versal AI エンジン用のカーネル生成、プログラマブル ロジックとの統合、システム シミュレーションを実行できます。
Vitis Model Composer フロー
Vitis Model Composer を使用すれば、異なる AI エンジンの関数をグラフィカルに接続できます。Vitis Model Composer ではこのグラフィック表示をボタン操作でグラフ C コードに変換できます。デザインの検証には、MathWorks Simulink 環境のシミュレーション機能を利用することも可能です。
Vitis Model Composer を使用した Versal AI Engine 開発の詳細は、Vitis Model Composer を使用する Versal AI Engine 開発のページを参照してください。
AI エンジン コンパイラおよびシミュレータ ツールは、AMD Vitis™ ソフトウェア インストーラーに含まれていますが、これらのツールを使用するにはライセンス (無償) が必要です。ライセンスは、製品のライセンス取得ページから取得可能です。
詳細を入力して [AI Engine Tools License] オプションを選択してください。
ポリフェーズ チャネライザは、デジタル信号処理に基づく効率的なアプローチを使用して、単一のデータ ストリームで伝送される周波数分割多重 (FDM) チャネルのセットを同時にダウンコンバートします。チャネライザの使用は、多くの無線通信、レーダー、宇宙/防衛、および医療用画像システムで広く普及しています。このチュートリアルでは、AMD Versal™ アダプティブ SoC デバイスの AI エンジンとプログラマブル ロジック (PL) リソースを組み合わせて、2 つのチャネライザ デザインを実装します。
AMD Versal アダプティブ SoC を使用した、プログラマブル ロジックのみのデザインとアダプティブ SoC + AI エンジン デザインのベンチマークの直接比較をご希望の場合は、ベンチマーク結果とソース デザインについて、営業担当者または FAE にお問い合わせください。