文档
注册

互推导关系

推导规则

当一个API(如aclnnAdd、aclnnMul等)输入的Tensor数据类型不一致时,API内部会推导出一个数据类型,将输入数据转换成该数据类型进行计算。

类型推导的规则如下:

说明:

  • 为方便描述,表格中使用的数据类型是简写形式,代表的含义:ACL_FLOAT(f32)、ACL_FLOAT16(f16)、ACL_DOUBLE(f64)、ACL_BF16(bf16)、ACL_INT8(s8)、ACL_UINT8(u8)、ACL_INT16(s16)、ACL_UINT16(u16)、ACL_INT32(s32)、ACL_UINT32(u32)、ACL_INT64(s64)、ACL_UINT64(u64)、ACL_BOOL(bool)、ACL_COMPLEX32(c32)、ACL_COMPLEX64(c64)、ACL_COMPLEX128(c128)。
  • 表格里表头和最左侧一列分别表示待推导的两个输入数据类型,表格中对应位置表示推导出的数据类型。
  • 表中叉号(×)表示这两种类型不能进行推导计算。

表 1 数据类型推导关系

数据类型 f32 f16 f64 bf16 s8 u8 s16 u16 s32 u32 s64 u64 bool c32 c64 c128
f32 f32 f32 f64 f32 f32 f32 f32 × f32 × f32 × f32 c64 c64 c128
f16 f32 f16 f64 f32 f16 f16 f16 × f16 × f16 × f16 c32 c64 c128
f64 f64 f64 f64 f64 f64 f64 f64 × f64 × f64 × f64 c64 c64 c128
bf16 f32 f32 f64 bf16 bf16 bf16 bf16 × bf16 × bf16 × bf16 c32 c64 c128
s8 f32 f16 f64 bf16 s8 s16 s16 × s32 × s64 × s8 c32 c64 c128
u8 f32 f16 f64 bf16 s16 u8 s16 × s32 × s64 × u8 c32 c64 c128
s16 f32 f16 f64 bf16 s16 s16 s16 × s32 × s64 × s16 c32 c64 c128
u16 × × × × × × × u16 × × × × × × × ×
s32 f32 f16 f64 bf16 s32 s32 s32 × s32 × s64 × s32 c32 c64 c128
u32 × × × × × × × × × u32 × × × × × ×
s64 f32 f16 f64 bf16 s64 s64 s64 × s64 × s64 × s64 c32 c64 c128
u64 × × × × × × × × × × × u64 × × × ×
bool f32 f16 f64 bf16 s8 u8 s16 × s32 × s64 × bool c32 c64 c128
c32 c64 c32 c64 c32 c32 c32 c32 × c32 × c32 × c32 c32 c64 c128
c64 c64 c64 c64 c64 c64 c64 c64 × c64 × c64 × c64 c64 c64 c128
c128 c128 c128 c128 c128 c128 c128 c128 × c128 × c128 × c128 c128 c128 c128

推导示例

  • 调用aclnnAdd接口时,如果输入参数的数据类型不一致,一个为float16,一个为float32,那么API内部就会将float16的数据类型转换成float32的数据类型然后进行计算。
  • 调用aclnnAdd接口时,如果输入参数的数据类型不一致,一个为float32,一个为bool,那么API内部就会将bool的数据类型转换成float32的数据类型然后进行计算。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词