aclnnCalculateConvolutionWeightSize
支持的产品型号
- Atlas 推理系列产品。
接口原型
aclnnStatus aclnnCalculateConvolutionWeightSize(const aclIntArray* tensorShape, bool transposed, int64_t groups, aclDataType dataType, uint64_t* weightTensorSize)
功能描述
- 算子功能: 在Convolution算子NCHW格式输入下,计算需要申请的weight的大小,仅支持Float16数据类型,该接口仅仅用于判断对weight Tensor进行预处理需要使用多少size才可使Convolution算子执行性能最优。 例如: 输入【2, 4, 8, 8】, 该函数出于性能角度考虑,会将shape变化为【64, 1, 16, 16】, 因此函数会将引用输入修改为16384。
aclnnCalculateConvolutionWeightSize
参数说明:
- tensorShape(const aclIntArray *, 计算输入):用于表达该次Convolution载入权重矩阵的Shape,仅支持NCHW格式的shape。
- transposed(bool *, 计算输入):Host侧的布尔值,表明是否为转置卷积,目前仅支持设为false。
- groups(int64_t *, 计算输入):Host侧的整型,表示从输入通道到输出通道的块链接个数,取值范围为[1,65535]。
- dataType(aclDataType *, 计算输入):Host侧的aclDataType类型,表示转换后weight的数据类型,仅支持ACL_FLOAT16。
- weightTensorSize(uint64_t *, 计算输出):根据Convolution内部处理逻辑,计算该输入下weight需要多少个元素的数据量。
返回值:
aclnnStatus:返回状态码,具体参见undefined。
[object Object]
约束与限制
- 仅支持正向Conv2D场景。
- 不支持转置卷积。
调用示例
示例代码如下,仅供参考,具体编译和执行过程请参考undefined。
[object Object]