AIE-ML は SIMD (Single-Instruction Multiple-Data) および VLIW (Very-Long Instruction Word) プロセッサを内蔵した、高度に最適化されたプロセッサで、固定小数点精度と浮動小数点精度の両方をサポートしています。次の図に示すように、AIE-ML はメモリ インターフェイス、スカラー ユニット、ベクトル ユニット、2 つのロード ユニット、1 つのストア ユニット、および命令フェッチ/デコード ユニットで構成されます。
図 1.
AIE-ML
AIE-MLの主な特長は次のとおりです。
- 命令ベースの VLIW SIMD プロセッサ
- 32 ビット スカラー RISC プロセッサ
- スカラー レジスタ ファイルおよび特殊レジスタ
- 32 × 32 ビット乗算器 (符号付きおよび符号なし)
- 32 ビット加算/減算
- シフト、比較、論理演算などの ALU 演算
- 浮動小数点ユニットなし: エミュレーションによりサポート
- 3 つのアドレス生成ユニット (AGU)
- 2 つの 256 ビット ロード ユニットと 1 つの 256 ビット ストア ユニット (アドレス アライメントあり)
- ML 機能に使用する 2D/3D アドレス指定モードをサポート
- スパース型の重みのロード時にオンザフライで圧縮を伸張。詳細は、スパース性 を参照してください。
- ストア ユニットに専用の 1 つの AGU
- ベクトル固定小数点/整数ユニット
- cint32 x cint16 乗算 (cint32 のデータと cint16 の回転因子)、複素数と共役の制御サポート、新しい並べ替えモード、およびシャッフル モードなど、ML 推論用の FFT 処理およびスパース度をサポート。詳細は、スパース性 を参照してください。
- 複素数および実数オペランドに対して複数の精度をサポート。詳細は、表 1 を参照してください。
表 1. ベクトル データパスでサポートされる精度 精度 1 精度 2 アキュムレータ レーンの数 アキュムレータ レーンあたりのビット数 MAC 演算回数 int 8 int 4 32 32 512 int 8 int 8 32 32 256 int 16 int 8 32 32 128 int 16 int 8 16 64 128 int 16 int 16 32 32 64 int 16 int 16 16 64 64 int 32 1 int 16 16 64 32 cint 16 cint 16 8 64 16 cint 32 cint 16 8 64 8 bfloat 16 3 bfloat 16 16 SPFP 32 2 128 - int32 x int32 はエミュレーションによりサポートされます。演算性能は int32 x int16 の半分で、1 サイクルあたり 16 回の乗算が実行されます。
- IEEE 標準準拠の単精度浮動小数点 (SPFP)。
- float32 x float32 はエミュレーションによりサポートされます。エミュレーションは IEEE-754 規格から逸脱します。詳細は、アンサー 34376 を参照してください。
- 乗数/被乗数は符号付きまたは符号なしにできます。アキュムレータは常に符号付きです。
- 累算は、32 ビット x 32 レーンまたは 64 ビット x 16 レーンのいずれかのモードで実行できます。
- 乗算器の総数と累算レーン数により、後置加算の深さが決まります。
- コンポーネントの使用に関しては、表 1 の最初の行を考慮に入れてください。スパース度を使用するかどうかにより、乗算器の入力は 1024 x 512 または 512 x 512 ビットに設定できます。int8 乗算器は 256 個あります。累算は 32 ビット x 32 レーンに対して実行されます。詳細は、スパース性 を参照してください。
- 単精度浮動小数点 (SPFP) ベクトル ユニット:
- 整数乗算器と後置加算器、および浮動小数点の指数部演算と仮数部シフト/正規化の追加ブロックを再利用することにより、FP32 累算を使用した 128 の bfloat16 MAC 演算をサポート。
- 複数のベクトル レーンで同時に演算を実行。
- bfloat16 の乗算 (16 ビット ベクトル レーン) と SPFP での累算 (32 ビット レジスタ レーン) をサポート。このモードでは、16 個のアキュムレータ レーンのみを使用します。
- バランスのとれたパイプライン:
- ファンクション ユニットごとに種類の異なるパイプライン (最大 8 段)。
- ロードおよびストア ユニットがデータ メモリの 5 サイクル レイテンシを管理。
- 3 つのデータ メモリ ポート:
- 2 つのロード ポートと 1 つのストア ポート
- いずれのポートも 256 ビット/128 ビット ベクトル レジスタ モードで動作。スカラー アクセス (32 ビット/16 ビット/8 ビット) は、1 つのロード ポートと 1 つのストア ポートでのみサポート。8 ビットおよび 16 ビットのストアは Read-Modify-Write 命令として実行。
- 3 つすべてのポートで同時に演算を実行
- いずれかのポートでバンクが競合するとデータパス全体がストール
- VLIW (Very-Long Instruction Word) ファンクション:
- すべてのファンクション ユニットへ命令を同時発行
- 複数の命令フォーマットおよび可変長命令をサポート
- 1 つの VLIW ワードを使用して最大 6 つの演算を並列に発行可能
- ダイレクト ストリーム インターフェイス:
- 1 つの入力ストリームと 1 つの出力ストリーム
- 各ストリームは 32 ビット幅
- 水平方向以外に、垂直方向の 512 ビット カスケード ストリーム入力およびストリーム出力
- 次のモジュールへのインターフェイス:
- ロック モジュール
- ストール モジュール
- デバッグ/トレース モジュール
- イベント インターフェイスは AIE-ML からの 16 ビット幅出力インターフェイス。
- プロセッサ バス インターフェイス:
- AIE-ML アーキテクチャは、AIE-ML がローカル タイルのメモリ マップド レジスタに直接読み出し/書き込みアクセスを実行できるようにするプロセッサです。