HF32
特性说明:
HF32的核心功能体现为:用户在输入矩阵A、B矩阵都为fp32数据类型的场景下,当配置开启HF32开关后,fp32数据在执行矩阵乘法运算前会被转换并舍入为HF32(half-fp32)格式。这种做法可使Mmad(f322f32)接口的计算性能提升至原来的两倍,但会带来一定的精度损失。需要注意的是,尽管中间计算使用HF32格式,最终的运算结果仍以fp32格式输出,以保证后续处理的兼容性。
舍入模式说明:fp32至HF32转换过程中的舍入模式由SetHF32TransMode接口配置。当HF32模式开启且设置TransMode为NEAREST_ZERO时,则FP32将以向零靠近的方式四舍五入为HF32;若设置TransMode为NEAREST_EVEN时,则FP32将以最接近偶数的方式四舍五入为HF32。

使用示例:
C++
// 开启HF32模式
AscendC::SetHF32Mode(AscendC::HF32Mode::ENABLE);
// 设置转换模式为向零靠近的方式处理
AscendC::SetHF32TransMode(AscendC::HF32TransMode::NEAREST_ZERO);
AscendC::MmadParams mmadParams;
mmadParams.m = m;
mmadParams.n = n;
mmadParams.k = k;
AscendC::Mmad(c1Local, a2Local, b2Local, mmadParams);
AscendC::SetHF32Mode(AscendC::HF32Mode::DISABLE);
AscendC::SetHF32TransMode(AscendC::HF32TransMode::NEAREST_EVEN);
