1 つの AI エンジンによる FFT

ブロックごとにコンフィギュレーション可能な高速フーリエ変換の AI エンジンでの実装 (XAPP1356)

Document ID
XAPP1356
Release Date
2021-01-11
Revision
1.0 日本語

離散フーリエ変換 (DFT) は、タイム ドメインのサンプル {x0, x1, … xN-1} を入力とし、サブキャリア {y0, y1, … yN-1} 上に周波数ドメイン信号を出力します (次式)。

この式を直接実装すると、N2 回の複素数積和 (MAC) 演算を実行する必要がありますが、これは Cooley と Tukey が提案したアルゴリズムによって (N log2N) 回に削減できます ( J. W. Cooley and J. W. Tukey, "An algorithm for the machine calculation of complex Fourier series", Math. Comput., vol. 19, no. 90, pp. 297-301 参照)。

図 1. DSP ライブラリ内の FFT のブロック図

ザイリンクス DSP ライブラリ ( 『AI エンジン用ザイリンクス DSP デジタル信号処理ライブラリ』 (UG1295) (要登録)) にはさまざまなサイズの FFT/IFFT カーネルが含まれていますが、現時点ではこれらのサイズは実行中にコ設定変更可能ではありません。前の図は、1 つの AI エンジンによる FFT/IFFT 実装のブロック図を示しています。ほとんどのメモリ バッファーのサイズは FFT サイズ N に比例しており、合計メモリ サイズは (36N + 2076) バイトです。3GPP 5G NR 規格では、N は最大 4096 です。1 つの AI エンジン による実装では、(1 つの AI エンジンがアクセスできる 128KB を超える) 150KB のデータ格納用メモリが必要になります。スループットを 50% 下げることでメモリ フットプリントを削減できますが、効率と性能を向上させるには、複数の AI エンジンを含むアーキテクチャを検討してください。