数据类型
数据类型是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$ | 最小的满足浮点数要求的数据类型 |
块浮点数(Block Float,BFloat)
MXFP8和FP8的区别: FP是一种数据类型,MXFP8是多个scaler数统一量化成vector数的一种表达方式
OCP机构MX数据类型白皮书