Skip to content
版本

asc_enable_hf32

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

用于设置Mmad计算开启HF32模式,开启该模式后,Mmad计算FP32数据的性能将得到提升,但会带来一定的精度损失。

是否开启HF32对Mmad计算理论性能的影响见下表:

表1 HF32对Mmad计算理论性能的影响(NPU架构版本2201

接口左矩阵A右矩阵B
asc_mmad(不开启HF32)floatfloat161648
asc_mmad(开启HF32)floatfloat161688

表2 HF32对Mmad计算理论性能的影响(NPU架构版本3510

接口左矩阵A右矩阵B
asc_mmad(不开启HF32)floatfloat161618
asc_mmad(开启HF32)floatfloat161688

性能计算公式如下:

关键变量及常量说明:

  • :mmad入参实际计算的大小。
  • 根据分型大小向上对齐后的值。
  • :硬件真实并行度(单位:elements/cycle)。
  • :L0 Buffer上最小分型K方向大小。
  • :头开销cycle数。

开启HF32模式后,L0A Buffer/L0B Buffer中的FP32数据将在参与Mmad计算之前被舍入为HF32格式,舍入模式使用asc_set_hf32_round_mode接口配置,中间计算使用HF32格式,最终的运算结果仍以FP32格式输出,以保证后续处理的兼容性。

FP32与HF32格式的精度对比如下图所示:

图1 FP32与HF32格式精度示意图(NPU架构版本2201

FP32与HF32格式精度示意图(NPU架构版本2201)

图2 FP32与HF32格式精度示意图(NPU架构版本3510

FP32与HF32格式精度示意图(NPU架构版本3510)

函数原型

C++
__aicore__ inline void asc_enable_hf32()

参数说明

返回值说明

流水类型

PIPE_S

约束说明

调用示例

C++
asc_enable_hf32();

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区