機能の概要

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

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

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
      1. int32 x int32 はエミュレーションによりサポートされます。演算性能は int32 x int16 の半分で、1 サイクルあたり 16 回の乗算が実行されます。
      2. IEEE 標準準拠の単精度浮動小数点 (SPFP)。
      3. 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 がローカル タイルのメモリ マップド レジスタに直接読み出し/書き込みアクセスを実行できるようにするプロセッサです。