Reg矢量计算接口精度标准汇总
本节汇总介绍了Reg矢量计算接口精度标准的情况,本节内容仅针对如下型号生效:
Ascend 950PR/Ascend 950DT
| 接口类型 | 接口 | 硬件指令精度标准 | 软仿精度标准 |
|---|---|---|---|
| 基础算术 | Exp | 1ulp, not support denormalized numbers | 1ulp, support denormalized numbers |
| 基础算术 | Sqrt | 1ulp, 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 |
| 基础算术 | Sub | Sub(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 |
| 基础算术 | Div | 1ulp, not support denormalized numbers | • complex64: 0ulp, not support denormalized numbers • float: 0ulp, support denormalized numbers • half/float: 1ulp, support denormalized numbers |
| 基础算术 | Neg | 符号位取反 | - |
| 基础算术 | Ln/Log | 1ulp, not support denormalized numbers | 1ulp, 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))) | - |
| 基础算术 | Muls | half/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) | - |
| 复合指令 | MulsCast | MulsCast(x, y) = cast_to_f16<roundingmode>(x * y) | - |
| 归约计算 | Reduce | half/float: 0ulp, 采用二叉树结构的成对累加策略 | - |
| 归约计算 | ReduceDataBlock | half/float: 0ulp, 采用二叉树结构的成对累加策略 | - |
| 归约计算 | PairReduceElem | half/float: 0ulp | - |
| 数据类型 | 接口 |
|---|---|
| fp4x2_e2m1_t | Cast、Duplicate(软仿) |
| fp4x2_e1m2_t | Cast、Duplicate(软仿) |
| fp8_e5m2_t | Cast、Duplicate(软仿) |
| fp8_e4m3fn_t | Cast、Duplicate(软仿) |
| fp8_e8m0_t | Cast、Duplicate(软仿) |
| hifloat8_t | Cast、Duplicate(软仿) |
| int4x2_t | Cast |
| int8_t | Cast、Add、Sub、Max、Min、Compare、Abs、Neg、Adds、Muls、Maxs、Mins、Compares、Duplicate |
| uint8_t | Cast、Add、Sub、Max、Min、Compare、Adds、Muls、Maxs、Mins、Compares、Duplicate |