昇腾社区首页
中文
注册

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]