bfloat16 数据类型支持情况

查看源文件

概述

bfloat16(BF16)是一种新的浮点格式,可以加速机器学习(尤其是深度学习训练)算法。

FP16 格式有 5 位指数和 10 位尾数,而 BF16 有 8 位指数和 7 位尾数。与 FP32 相比,BF16 在降低精度(仅 7 位尾数)的同时,保留了与 FP32 相似的范围,这使其适用于深度学习训练。

支持列表

  • 当使用bfloat16数据类型的Tensor进行计算时,所用到的算子也需支持bfloat16数据类型。当前仅在Ascend后端存在适配的算子。

  • bfloat16数据类型暂不支持隐式类型转换,即当参数数据类型不一致时,bfloat16精度类型不会被自动转换成较高精度类型。

API名称

Ascend

说明

mindspore.Tensor.asnumpy

由于numpy不支持bfloat16数据类型,无法将bfloat16类型的Tensor转换为numpy类型。

mindspore.amp.auto_mixed_precision

✔️

使用自动混合精度接口时,支持将低精度的数据类型指定为bfloat16。

mindspore.amp.custom_mixed_precision

✔️

使用自定义混合精度接口时,支持将低精度的数据类型指定为bfloat16。

mindspore.load_checkpoint

✔️

mindspore.save_checkpoint

✔️

mindspore.ops.Add

✔️

mindspore.ops.AddN

✔️

mindspore.ops.AllGather

✔️

mindspore.ops.AllReduce

✔️

mindspore.ops.AssignAdd

✔️

mindspore.ops.BatchMatMul

✔️

mindspore.ops.Broadcast

✔️

mindspore.ops.Cast

✔️

mindspore.ops.Equal

✔️

mindspore.ops.Exp

✔️

mindspore.ops.FastGeLU

✔️

mindspore.ops.GreaterEqual

✔️

mindspore.ops.LayerNorm

✔️

mindspore.ops.LessEqual

✔️

mindspore.ops.MatMul

✔️

mindspore.ops.Maximum

✔️

mindspore.ops.Minimum

✔️

mindspore.ops.Mul

✔️

mindspore.ops.NotEqual

✔️

mindspore.ops.RealDiv

✔️

mindspore.ops.ReduceMean

✔️

mindspore.ops.ReduceScatter

✔️

mindspore.ops.ReduceSum

✔️

mindspore.ops.Select

✔️

mindspore.ops.Softmax

✔️

mindspore.ops.Sqrt

✔️

mindspore.ops.Square

✔️

mindspore.ops.Sub

✔️

mindspore.ops.Tile

✔️

mindspore.ops.Transpose

✔️