FP8
FP8(えふぴーえいと)とは、ARMとIntelとNVIDIAの3社が共同で仕様を策定した「8ビットの浮動小数点数」です。ホワイトペーパーでは「reduced precision floating-point」となっているので日本語訳は「低精度浮動小数点数」でいいと思う。
主にNVIDIAのHopperアーキテクチャ以降(H100など)でサポートされ、従来のFP16/BF16と比較して約2倍の処理速度を実現し、大規模言語モデル(LLM)や生成AIの学習・推論を高速化します。
形式 編集
FP8には指数Eと仮数Mのビット数が異なる2種類の形式がある。
E5M2 編集
- 符号ビット: 1ビット
- 指数部の幅: 5ビット
- 仮数部の幅: 2ビット
E5M2は「指数5ビット」「仮数2ビット」の形式である。IEEE 754の16ビット形式である「FP16」の仮数部を10ビットから2ビットにしたものとなっている。「FP32とbfloat16」の関係と同じく「FP16とFP8は互換性がある」ということらしい。FP16で書かれたソースコードを単純に文字列置換するだけで使えるのが利点らしい。E5M2は「勾配テンソル」に最適らしいぞ。
E4M3 編集
- 符号ビット: 1ビット
- 指数部の幅: 4ビット
- 仮数部の幅: 3ビット
主な対応ハードウェア 編集
NVIDIA 編集
- 第4世代Tensorコア
- NVIDIA H100, H200
- NVIDIA L4
- RTX 6000, 4500, 4000
- GeForce RTX 40シリーズ
Intel 編集
- Intel Gaudi 3
- Intel Xeon の Intel AMX
ARM 編集
- Armv9.2-A のSME (Scalable Matrix Extension)
AMD 編集
- RDNA 4
- Radeon RX 9000シリーズ