複数の AI エンジンによる FFT

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

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

N ポイント FFT の FFT サイズ N = Q M とすると、まず Q 回の M ポイント FFT への分割、次に線形位相回転、その後 M 回の Q ポイント FFT によって結果を計算できます。具体的には、式 1 を次のように書き換えることができます。

かっこの内側のシグマは入力データに対する M ポイント FFT で、外側のシグマは Q ポイント FFT です。これらの間に、-2π q/N の固定位相増分による線形位相回転 (q は位相インデックス) があります。

AI エンジンは 4 つのメモリ グループにアクセスするため、Q には 4 を選択するのが自然です。N=4096 の場合、FFT 入力は 4 つの位相に分割され、4 つの AI エンジンに並列で入力されます。各 AI エンジンがこのデータに対して 1024 ポイント FFT を実行し、次に線形位相回転を実行した後、データは 4 ポイント FFT のために 5 番目の AI エンジンに出力されます。このプロセスを次の図に示します。灰色の各長方形は各 AI エンジンに実装される機能を示し、それぞれの名前は FFTa、FFTb、FFTc、FFTd、および FFTz です。

図 1. 4096 ポイント FFT の 5 つの AI エンジンへの分割

4096 ポイント FFT 以外に、提案される 5 つの AI エンジンで構成されるアーキテクチャは、AI エンジン カーネル内の if-else 条件付き分岐を使用することにより、表 1 に示すすべてのモードをサポートします。1024 ポイント FFT カーネルは、制御ワードに従って 512 ポイントまたは 1024 ポイント の FFT/IFFT を実行します。5 番目の AI エンジン (FFTz) は、4096 ポイント モードでは 4 ポイント FFT/IFFT、2048 ポイント モードでは 2 ポイント FFT/IFFT、512 または 1024 ポイント モードではダイレクト メモリ コピーを実行します。