cann/ops-cv互推导关系
2026/5/9 21:18:31 网站建设 项目流程

互推导关系

【免费下载链接】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数据类型推导关系

数据类型f32f16f64bf16s8u8s16u16s32u32s64u64boolc32c64c128
f32f32f32f64f32f32f32f32×f32×f32×f32c64c64c128
f16f32f16f64f32f16f16f16×f16×f16×f16c32c64c128
f64f64f64f64f64f64f64f64×f64×f64×f64c128c128c128
bf16f32f32f64bf16bf16bf16bf16×bf16×bf16×bf16c32c64c128
s8f32f16f64bf16s8s16s16×s32×s64×s8c32c64c128
u8f32f16f64bf16s16u8s16×s32×s64×u8c32c64c128
s16f32f16f64bf16s16s16s16×s32×s64×s16c32c64c128
u16×××××××u16××××××××
s32f32f16f64bf16s32s32s32×s32×s64×s32c32c64c128
u32×××××××××u32××××××
s64f32f16f64bf16s64s64s64×s64×s64×s64c32c64c128
u64×××××××××××u64××××
boolf32f16f64bf16s8u8s16×s32×s64×boolc32c64c128
c32c64c32c128c32c32c32c32×c32×c32×c32c32c64c128
c64c64c64c128c64c64c64c64×c64×c64×c64c64c64c128
c128c128c128c128c128c128c128c128×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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询