跳转至

HiF Microscaling

缩放因子

HiF4数据格式的比例因子 X 是一种32比特的数据格式,由3个部分组成,共64个元素共享:

  • E6M2 (6位指数2位尾数):由所有64个元素共享。
  • E1_8 (8个1位指数):各由8个元素共享。
  • E1_16 (16个1位指数):各由4个元素共享。

编码规则

  • E6M2 是 8 位,记作 Ea
  • E1_8 总共是8 位,其中每一位对应 1 位 Ebii ∈ {0,..., 7})。
  • E1_16 总共是 16 位,其中每一位对应 1 位 Ecjj ∈ {0,..., 15})。

数据范围

Ea 是第一阶段的 8 位小数 E6M2,由所有 64 个元素共享。 Ebii ∈ {0,..., 7})是第二阶段的 1 位指数 E1_8,由数据 8i8i + 7 共享。 Ecjj ∈ {0,..., 15})是第三阶段的 1 位指数 E1_16,由数据 4j4j + 3 共享。

因此,对于 group=64 中的数据 NN ∈ {0,..., 63}),最终缩放因子计算公式为:

X = Ea x 2^(Ebi + Ecj)(其中 i = N/8j = N/4)。共享关系如下表:

E6M2 E1_8 E1_16 最终缩放因子 共享的数据范围
Ea Eb0 Ec0 Ea x 2^(Eb0 + Ec0) 0-3
Ec1 Ea x 2^(Eb0 + Ec1) 4-7
Eb1 Ec2 Ea x 2^(Eb1 + Ec2) 8-11
Ec3 Ea x 2^(Eb1 + Ec3) 12-15
Eb2 Ec4 Ea x 2^(Eb2 + Ec4) 16-19
Ec5 Ea x 2^(Eb2 + Ec5) 20-23
Eb3 Ec6 Ea x 2^(Eb3 + Ec6) 24-27
Ec7 Ea x 2^(Eb3 + Ec7) 28-31
Eb4 Ec8 Ea x 2^(Eb4 + Ec8) 32-35
Ec9 Ea x 2^(Eb4 + Ec9) 36-39
Eb5 Ec10 Ea x 2^(Eb5 + Ec10) 40-43
Ec11 Ea x 2^(Eb5 + Ec11) 44-47
Eb6 Ec12 Ea x 2^(Eb6 + Ec12) 48-51
Ec13 Ea x 2^(Eb6 + Ec13) 52-55
Eb7 Ec14 Ea x 2^(Eb7 + Ec14) 56-59
Ec15 Ea x 2^(Eb7 + Ec15) 60-63

图示如下:

hif_scale

其中第一阶的小数 e6m2 的取值计算公式如下:

X = 2^E x 1.M

e6m2

缩放结果

由于我们已经详细阐述了每个组件,现在可以将HiF4单元视为整体并计算其代表值。如图2所示,HiF4格式中的单个组包含四级通过乘法关联的数据层次。定义如下符号:

  • 令 ${S1P2}_i$ 表示第 $i$ 个组内元素值,其中 $i \in [1, 64]$
  • 令 ${E1_8}_j$ 表示第二级缩放元数据中的第 $j$ 个微指数,其中 $j \in [1, 8]$
  • 令 ${E1_16}_k$ 表示第三级缩放元数据中的第 $k$ 个微指数,其中 $k \in [1, 16]$
  • 令 ${V_i}_{i=1}^{64}$ 表示HiF4组中的64个实数

基于上述定义,HiF4单元的每个值可按以下方式计算:

计算规则:

  1. 若 $E6M2 = NaN$,则对所有 $i \in [1, 64]$ 满足: $$V_i = NaN$$

  2. 否则: $$V_i = E6M2 \times 2^{\left( {E1_8}{\lceil i/8 \rceil} + {E1_16} \times {S1P2}_i$$} \right)