固定小数点数ベクトル ユニット

Versal アダプティブ SoC AIE-ML アーキテクチャ マニュアル (AM020)

Document ID
AM020
Release Date
2023-11-10
Revision
1.2 日本語

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 ビット符号付きレジスタへの変換もサポートしています (図には示していません)。