FP8

提供:MonoBook

FP8(えふぴーえいと)とは、ARMIntelNVIDIAの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ビットにしたものとなっている。「FP32bfloat16」の関係と同じく「FP16とFP8は互換性がある」ということらしい。FP16で書かれたソースコードを単純に文字列置換するだけで使えるのが利点らしい。E5M2は「勾配テンソル」に最適らしいぞ。

E4M3[編集 | ソースを編集]

  • 符号ビット: 1ビット
  • 指数部の幅: 4ビット
  • 仮数部の幅: 3ビット

E4M3はE5M2よりダイナミックレンジが広い。E4M3は「重みテンソル」および「活性化テンソル」に最適らしいぞ。

主な対応ハードウェア[編集 | ソースを編集]

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シリーズ

外部リンク[編集 | ソースを編集]

関連項目[編集 | ソースを編集]