AIE-ML の固定小数点数ベクトル ユニット
次に、固定小数点ベクトル データパスのブロック図を示します。データパスは、5 つのパイプライン ステージに分割されます。
図 1.
AIE-ML の固定小数点ベクトル ユニットの乗算パスのパイプライン
このデータパスに含まれる各ユニットの機能は次のとおりです。
- 乗算器ユニットには、並べ替えブロックからの出力が入力されます。ベクトル加算器は、ベクトル シャッフルおよびシフト データパスと共に、別のファンクション ユニットにあります。
- 並べ替えユニットは PRMX と PRMY の 2 つあり、これらが X ベクトル レジスタの並べ替えを処理します。
- 並べ替えと乗算以外に、シャッフル/シフトと加算/コンペアの 2 つのベクトル ユニットがあります。これらには 2 つのベクトル レジスタの値が直接入力され、結果がベクトル レジスタに書き戻されます。次のビット幅モード (符号付きおよび符号なし) がサポートされます。
- 32 ビット x 16 レーン
- 16 ビット x 32 レーン
- 8 ビット x 64 レーン
図 2.
AIE-ML の固定小数点ベクトル ユニットのシャッフル/シフトおよび加算器パスのパイプライン
上の図に示すように、ベクトル加算器以外にベクトル シャッフル/シフト データパスもあります。ベクトル シフト ユニットは 1 つまたは 2 つの 512 ビット ベクトル レジスタを入力にとり、1 つの 512 ビット ベクトルを出力します。次のモードがサポートされます。
- 8 ビット粒度の標準的な右シフト
- 左右いずれかの側へのスカラー値のシフトおよびプッシュ。8、16、または 32 ビット レーンを 512 ビット ベクトル レジスタの LSB レーンにシフトでき、既存の値はすべて 1 レーン上にシフトされます。MSB レーンの値は捨てられます。
シャッフル ユニットにより、各種モードでの入力ベクトルの変換が可能となります。次の機能がサポートされます。
- 8 ビット、16 ビット、および 32 ビットの値のインターリーブとデインターリーブ
- 変換後の入力の上下半分の抽出。
固定小数点 SRS および UPS 変換
次に、このユニットのブロック図を示します。
図 3. 固定小数点 SRS および UPS データパス
SRS ユニットはアキュムレータ レジスタを読み出し、変換を実行し、結果をベクトル レジスタ、または直接メモリへ書き戻します。UPS ユニットはメモリまたはレジスタから直接ベクトル レジスタを読み出し、結果をアキュムレータ レジスタへ書き込みます。次のモードがサポートされます。
- 8 ビット x 32 レーンと 32 ビットの双方向変換
- 16 ビット x 32 レーンと 32 ビットの双方向変換
- 16 ビット x 16 レーンと 64 ビットの双方向変換
- 32 ビット x 16 レーンと 64 ビットの双方向変換
浮動小数点の変換モードもサポートされます。bfloat16 と単精度を双方向に変換します。次のモードがサポートされます。
- 16 レーンの fp32 アキュムレータから bfloat16 ベクトル レジスタ
- 16 レーンの bfloat16 ベクトル レジスタから fp32 アキュムレータ
これ以外に、このユニットは浮動小数点から整数への変換として 16 レーンの bfloat16 ベクトル レジスタから 32 ビット符号付きレジスタへの変換もサポートしています (図には示していません)。