Skip to content

Reg矢量计算接口精度标准汇总

本节汇总介绍了Reg矢量计算接口精度标准的情况,本节内容仅针对如下型号生效:

Ascend 950PR/Ascend 950DT

表 1 Reg矢量计算API精度标准

接口类型接口硬件指令精度标准软仿精度标准
基础算术Exp1ulp, not support denormalized numbers1ulp, support denormalized numbers
基础算术Sqrt1ulp, not support denormalized numbers• float: 0ulp
• half/float: 1ulp, support denormalized numbers
基础算术Add• half/float: 0ulp, support denormalized numbers
• bfloat16_t: Add(x, y) = rint_to_bf16(Add(cast_to_f32(x), cast_to_f32(y)))
0ulp, support denormalized numbers
基础算术SubSub(x, y) = Add(x, Neg(y))0ulp, support denormalized numbers
基础算术Adds• half/float: 0ulp, support denormalized numbers
• bfloat16_t: Add(x, y) = rint_to_bf16(Add(cast_to_f32(x), cast_to_f32(y)))
0ulp, support denormalized numbers
基础算术Div1ulp, not support denormalized numbers• complex64: 0ulp, not support denormalized numbers
• float: 0ulp, support denormalized numbers
• half/float: 1ulp, support denormalized numbers
基础算术Neg符号位取反-
基础算术Ln/Log1ulp, not support denormalized numbers1ulp, support denormalized numbers
基础算术Log2/Log10-• 1ulp, not support denormalized numbers
• 1ulp, support denormalized numbers
基础算术Mul• half/float: 0ulp, support denormalized numbers
• bfloat16_t: Mul(x, y) = rint_to_bf16(Mul(cast_to_f32(x), cast_to_f32(y)))
-
基础算术Mulshalf/float: 0ulp, support denormalized numbers-
复合指令AbsSub指令串行,AbsSub(x) = Abs(Sub(x))-
复合指令ExpSub• 输入half,输出float:
ExpSub(x, y) = Exp(Sub(cast_to_f32(x), cast_to_f32(y)))
• 输入float,输出float:
ExpSub(x, y) = Exp(Sub(x, y))
-
复合指令Axpy结果等效于:乘累加采用高精度计算, 同比Fma(x, y, z)-
复合指令MulDstAdd结果等效于:乘累加采用高精度计算,同比Fma(x, y, z)-
复合指令MulAddDst结果等效于:乘累加采用高精度计算,同比Fma(x, y, z)-
复合指令MulsCastMulsCast(x, y) = cast_to_f16<roundingmode>(x * y)-
归约计算Reducehalf/float: 0ulp, 采用二叉树结构的成对累加策略-
归约计算ReduceDataBlockhalf/float: 0ulp, 采用二叉树结构的成对累加策略-
归约计算PairReduceElemhalf/float: 0ulp-

表 2 Vector低精度指令支持情况

数据类型接口
fp4x2_e2m1_tCast、Duplicate(软仿)
fp4x2_e1m2_tCast、Duplicate(软仿)
fp8_e5m2_tCast、Duplicate(软仿)
fp8_e4m3fn_tCast、Duplicate(软仿)
fp8_e8m0_tCast、Duplicate(软仿)
hifloat8_tCast、Duplicate(软仿)
int4x2_tCast
int8_tCast、Add、Sub、Max、Min、Compare、Abs、Neg、Adds、Muls、Maxs、Mins、Compares、Duplicate
uint8_tCast、Add、Sub、Max、Min、Compare、Adds、Muls、Maxs、Mins、Compares、Duplicate

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