当一个API(如aclnnAdd、aclnnMul等)输入的aclTensor数据类型不一致时,API内部会推导出一个数据类型,将输入数据转换成该数据类型进行计算。
aclTensor支持的数据类型参见,其中部分类型满足如下推导规则,推导原理类似PyTorch的。
类型推导的规则如下:
[object Object]
表1 数据类型推导关系
- 调用aclnnAdd接口时,如果输入参数的数据类型不一致,一个为float16,一个为float32,那么API内部就会将float16的数据类型转换成float32的数据类型然后进行计算。
- 调用aclnnAdd接口时,如果输入参数的数据类型不一致,一个为float32,一个为bool,那么API内部就会将bool的数据类型转换成float32的数据类型然后进行计算。
当一个API(如aclnnAdds、aclnnMuls等)输入的Tensor数据类型和输入的Scalar数据类型不一致时,API内部会推导出一个数据类型,将输入数据转换成该数据类型进行计算。
aclTensor支持的数据类型参见,其中部分类型满足如下推导规则,推导原理类似PyTorch的。
类型推导的规则如下:
[object Object]
表2 数据类型推导关系表
- 如果输入Tensor的数据类型为float16,输入Scalar的数据类型为float32,那么API内部就会将输入Scalar的float32数据类型转换成float16数据类型然后进行计算。
- 如果输入Tensor的数据类型为bool,输入Scalar的数据类型为float32,那么API内部就会将输入Tensor的bool数据类型转换成float32数据类型然后进行计算。