开发者
下载

fp8数据类型简介

SIMT编程支持3种fp8数据类型,分别是float8_e4m3_t、float8_e5m2_t、hifloat8_t。其数据范围如下:

类型

符号位宽

指数位宽

尾数位宽

取值范围

float8_e4m3_t

1

4

3

[26 - 29, 29 - 26]

float8_e5m2_t

1

5

2

[213 - 216, 216 - 213]

hifloat8_t

1

由点域编码决定

由点域编码决定

点域编码决定数据精度与取值范围

浮点数由符号位(S)、指数(E)、尾数(M)三个部分组成,不同类型的浮点数,三个部分所占的比特数可能不同。

  • float8_e4m3_t

    下图是一个fp8_e4m3fn_t类型的示例,其符号位占用1位,指数占用4位,尾数占用3位,表示的结果为 (-1)^1 × 2^-3 × 2^-6。

    图1 float8_e4m3_t示例图
  • float8_e5m2_t

    下图是一个fp8_e5m2_t类型的示例,其符号位占用1位,指数占用5位,尾数占用2位,表示的结果为 (-1)^0 × (2 - 0.25) × 2^(30 -15)=1.75 × 2^15。

    图2 float8_e5m2_t示例图
  • hifloat8_t

    hifloat8_t类型相对其他类型增加了指数位宽控制字段D,用于指示指数位和尾数位的编码方式。

    hifloat8_t类型根据点域的不同,有不同的编码方式,下面一一列出。

    图3 S、E、M在不同点域D值下的bit位分布

    下图示例中,其符号位占用1位,指数占用2位,尾数占用3位,D字段为2比特b01,Sv=1,Ev=3,Mv = 2-1 + 2-2,表示的结果为14。下标v表示各部分的具体数值。