Skip to content

SetHF32

产品支持情况

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

功能说明

在纯Cube模式(只有矩阵计算)下,设置是否开启HF32(矩阵乘计算时可采用的数据类型)模式。开启后,在矩阵乘计算时,float32数据类型会转换为hf32数据类型,可提升计算性能,但同时也会带来精度损失。

函数原型

Text
__aicore__ inline void SetHF32(bool enableHF32 = false, int32_t transMode = 0)

参数说明

参数名输入/输出描述
enableHF32输入配置是否开启HF32模式,默认值false(不开启)。
transMode输入配置在开启HF32模式时,float转换为hf32时所采用的ROUND模式。默认值0。

0:就近舍入,距离相等时向偶数进位。

1:就近舍入,距离相等时向远离0方向进位。

返回值说明

约束说明

本接口仅支持在纯Cube模式下调用。

调用示例

Text
//纯Cube模式
#define ASCENDC_CUBE_ONLY
REGIST_MATMUL_OBJ(&pipe, GetSysWorkSpacePtr(), mm, &tiling);    //  A/B/C/BIAS类型是float
mm.SetTensorA(gm_a);
mm.SetTensorB(gm_b);
if (tiling.isBias) {
    mm.SetBias(gmBias);
}
mm.SetHF32(true);
mm.IterateAll(gm_c);
mm.SetHF32(false);
mm.End();

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