浮点型存储格式
FP32
float共32bit:1bit符号位,8bit指数位,23bit底数位。如下表示:
S E8 M23
浮点与二进制转换公式如下:
$ Y = (-1)^{s} \times 2^{e} \times m,其中m = 1.M23,e = E8 - 127 $
以浮点数12.5,举例说明:
\[\begin{align} 12.5 &=> 1100.1 \\ &=> 1.1001 \times 2^{3} \\ &=> E8 = 3 + 127 = 130 = 1000 0010 \\ &\qquad M23= 1001 0000 0000 0000 000 \\ &=> 0 1000 0010 1001 0000 0000 0000 000 \end{align}\]FP16/BF16/FP8
对应表示如下:
Format | Bits | Sign | Exponent | Fraction | Max |
---|---|---|---|---|---|
FP32 | 32 | 1 | 8 | 23 | $2^{128}$ |
FP16 | 16 | 1 | 5 | 10 | $2^{16}$ |
BF16 | 16 | 1 | 8 | 7 | $2^{128}$ |
FP8 (E5M2) | 8 | 1 | 5 | 2 | $2^{16}$ |
FP8 (E4M3) | 8 | 1 | 4 | 3 | $2^{8}$ |