BFloat16精度

Brain Floating 16

Bfloat16是由Google Brain开发的数据格式 [1]。如今在很多AI处理中得到应用,比如Nervana NNP-L1000,Xeon processors (AVX-512 BF16 extensions) 以及Intel FPGAs,Google Cloud TPUs,[9][10]和TensorFlow。ARMv8.6-A,AMD ROCm和CUDA也同样支持bfloat16数据精度。在训练时,可以使用混合加速,即使用FP16/BF16做乘法以及存储,使用FP32做加法。

引入BF16的原因 [2]

  • 提高了16bit数值的dynamic range(5->8)
  • 硬件乘法器的面积(晶体管数量)大致与mentissa数据宽度的平方成正比,因此,mentisa由10降低为7之后,乘法器的面积减少约50%

以下复习一下FP16/32并于BF16作比较。

type sign bit exponent bit fraction/mentissa bit
FP16 1 5 10
FP32 1 8 23
BF16 1 8 7

FP16的计算方法
v a l u e F P 16 = ( − 1 ) s i g n × 2 ( e x p o n e n t − 15 ) × ( 1 + f r a c t i o n 1024 ) value_{FP16} = (-1)^{sign}\times 2^{(exponent-15)}\times (1+\frac{fraction}{1024}) valueFP16=(1)sign×2

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值