互推导关系【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv推导规则当一个API如aclnnAdd、aclnnMul等输入的aclTensor数据类型不一致时API内部会推导出一个数据类型将输入数据转换成该数据类型进行计算。aclTensor支持的数据类型参见数据类型其中部分类型满足如下推导规则推导原理类似PyTorch的Type Promotion。说明为方便描述表格中使用的数据类型是简写形式代表的含义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数据类型推导关系数据类型f32f16f64bf16s8u8s16u16s32u32s64u64boolc32c64c128f32f32f32f64f32f32f32f32×f32×f32×f32c64c64c128f16f32f16f64f32f16f16f16×f16×f16×f16c32c64c128f64f64f64f64f64f64f64f64×f64×f64×f64c128c128c128bf16f32f32f64bf16bf16bf16bf16×bf16×bf16×bf16c32c64c128s8f32f16f64bf16s8s16s16×s32×s64×s8c32c64c128u8f32f16f64bf16s16u8s16×s32×s64×u8c32c64c128s16f32f16f64bf16s16s16s16×s32×s64×s16c32c64c128u16×××××××u16××××××××s32f32f16f64bf16s32s32s32×s32×s64×s32c32c64c128u32×××××××××u32××××××s64f32f16f64bf16s64s64s64×s64×s64×s64c32c64c128u64×××××××××××u64××××boolf32f16f64bf16s8u8s16×s32×s64×boolc32c64c128c32c64c32c128c32c32c32c32×c32×c32×c32c32c64c128c64c64c64c128c64c64c64c64×c64×c64×c64c64c64c128c128c128c128c128c128c128c128c128×c128×c128×c128c128c128c128推导示例调用aclnnAdd接口时如果输入参数的数据类型不一致一个为float16一个为float32那么API内部就会将float16的数据类型转换成float32的数据类型然后进行计算。调用aclnnAdd接口时如果输入参数的数据类型不一致一个为float32一个为bool那么API内部就会将bool的数据类型转换成float32的数据类型然后进行计算。【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考