数据类型

数据类型是Nvidia新摩尔定律的魔法来源之一, 通过不断的减小数据类型的位宽, Nvidia实现了一倍又一倍的算力提升.

基本浮点数类型

数据类型 符号位 指数位 尾数位 执行标准 有效数字 用途
fp32 1 8 23 IEEE-754 $log_{10}2^{(23+1)}>7$ 标准float数据类型
tf32 1 8 10 NVIDIA-TF32 $>3$ Nvidia TensorCore内部替代FP32计算,精度几乎无损
bf16 1 8 7 Google Brain $>2$ 多用于16位精度模型的训练,反向计算需要更大范围
fp16 1 5 10 IEEE-754 $>3$ 标准16位数据
fp8 0 8 0 NVIDIA $=0$ MX数据类型的scale
fp8 1 5 2 NVIDIA $=0$ FP8反向训练计算
fp8 1 4 3 NVIDIA $>1$ FP8推理,kvcache和MXFP8的element表示
fp6 1 3 2 NVIDIA $=0$ 范围更大的FP6
fp6 1 2 3 NVIDIA $>1$ 精度更高的FP6
fp4 1 2 1 NVIDIA $=0$ 最小的满足浮点数要求的数据类型

nvidia fp8简要介绍-中文版
alt text

块浮点数(Block Float,BFloat)

MXFP8和FP8的区别: FP是一种数据类型,MXFP8是多个scaler数统一量化成vector数的一种表达方式
OCP机构MX数据类型白皮书

MX-float

MX-float-2