浮動小数点ベクトル ユニット

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

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

次に、bfloat16 (BF) ベクトル データパスのブロック図を示します。8 x 8 乗算器を整数データパスの半分と共有し、浮動小数点の指数部演算および仮数部シフト/正規化のブロックが追加されています。

図 1. bfloat16 ベクトル データパス

累算フィードバック ループを減らすため、複数のアキュムレータ レジスタを使用して浮動小数点 MAC 命令の連続実行を可能にしています。

BF および FP 仮数部シフト ユニットは、128 個の乗算器レーンおよび 2 x 16 アキュムレータ レーンのそれぞれをシフト ダウンします。アキュムレータ ユニットは、単精度 FP32 フォーマットでのアキュムレータ レジスタの加算/減算/否定をサポートしています。FP 正規化ユニットは、後置加算器からの仮数部が負の値の場合、および仮数部がサポートされる範囲外にある場合の処理を実行します。

AIE-ML は、bfloat16 フォーマットのエレメント単位でのベクトル関数をいくつかサポートしています。これには、ベクトル比較、最小値、および最大値が含まれます。これらは、エレメント単位で動作し、2 つのベクトルを比較します。固定小数点ベクトル加算/コンペア ユニットを拡張し、エレメント単位の浮動小数点関数を処理できるようにしています。

浮動小数点ユニットは、標準的な浮動小数点例外に対応するイベントを発行でき、ステータス レジスタがイベントを追跡します。浮動小数点の機能ユニットごとに 8 つの例外ビットがあります。これらの例外 (ビット 0 から 7 まで) は、zero、infinity、tiny (アンダーフロー)、huge (オーバーフロー)、inexact、huge integer、および divide-by-zero です。8 つの例外のうち、tiny、huge、invalid、および divide-by-zero はイベントに変換でき、AIE-ML アレイ インターフェイスにブロードキャストして、PS/PMC に割り込みとして送信できます。

非正規化数は、AIE-ML の浮動小数点データパスではサポートされません。