aclnnCalculateConvolutionWeightSize
产品支持情况
产品 | 是否支持 |
---|---|
[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object] | × |
[object Object]Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件[object Object] | × |
[object Object]Atlas 200I/500 A2 推理产品[object Object] | × |
[object Object]Atlas 推理系列产品 [object Object] | √ |
[object Object]Atlas 训练系列产品[object Object] | × |
功能说明
- 算子功能:在Convolution算子NCHW格式输入下,计算需要申请的weight的大小,仅支持Float16数据类型,该接口仅仅用于判断对weight Tensor进行预处理需要使用多少size才可使Convolution算子执行性能最优。
- 例如: 输入[2, 4, 8, 8],该函数出于性能角度考虑,会将shape变化为[64, 1, 16, 16],因此函数会将输入修改为16384。
函数原型
aclnnStatus aclnnCalculateConvolutionWeightSize(const aclIntArray* tensorShape, bool transposed, int64_t groups, aclDataType dataType, uint64_t* weightTensorSize)
aclnnCalculateConvolutionWeightSize
参数说明:
- tensorShape(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]