ブロック浮動小数点(BFP)とは
ブロック浮動小数点(Block Floating Point, BFP)は、固定小数点プロセッサ上で
浮動小数点数のような演算を実現するための技術です。通常の
浮動小数点数のように各数値に指数部を持つのではなく、複数の仮数部(ブロック)で単一の指数部を共有するのが特徴です。
BFPの仕組み
浮動小数点数では、各数値は仮数部と指数部を持ち、広い範囲の数値を表現できます。一方、BFPでは複数の仮数部(ブロック)に対して一つの指数部が割り当てられます。これにより、指数部を共有する数値群は、ハードウェア資源を節約しながら、浮動小数点演算に近い機能を実現できます。
BFPの利点は、演算精度をある程度犠牲にする代わりに、ハードウェア実装を簡略化できる点です。特に、同じブロック内の数値に対しては、一部の演算を少ない計算量で効率的に実行できます。指数部はブロック内で最大の数値を表現できるように設定されます。
マイクロスケーリング形式(MX)
近年、AI(人工知能)や機械学習の分野では、より効率的なデータ形式が求められています。そこで登場したのが、マイクロスケーリング形式(Microscaling Formats, MX)です。
MXは、ブロック浮動小数点をベースにしたデータ形式で、特にAIや機械学習のワークロードに合わせて設計されています。この規格は、AMD、Arm、Intel、Meta、Microsoft、NVIDIA、Qualcommなどの主要な業界プレーヤーによって承認・標準化されています。
MX形式には、いくつかのバリエーションがあります。初期の仕様では、以下のような形式が導入されています。
MXFP8: 8ビットの浮動小数点形式で、E5M2とE4M3の2つの派生があります。
MXFP6: 6ビットの浮動小数点形式で、E3M2とE2M3の2つの派生があります。
MXFP4: 4ビットの浮動小数点形式 (E2M1)。
MXINT8: 8ビットの整数形式。
これらの形式は、異なる精度レベルに対応しており、用途に応じて使い分けることができます。
ハードウェアサポート
BFPやMX形式は、最新のプロセッサにも採用され始めています。例えば、AMD Ryzen AI 300シリーズは、XDNA 2アーキテクチャにおいて、Block FP16というBFP形式をサポートしています。
その他の関連項目
Binary scaling(バイナリスケーリング)
Fast Fourier transform (FFT)(高速フーリエ変換)
* Digital signal processor (DSP)(デジタル信号プロセッサ)
まとめ
ブロック浮動小数点(BFP)は、固定小数点プロセッサでも浮動小数点演算に近い機能を提供できる効率的な手法です。特に、AIや機械学習の分野では、MX形式のようなBFPをベースにしたデータ形式が注目されています。これらの技術は、ハードウェア資源を節約しながら、高性能な演算を実現するのに役立っています。