昇腾故障案例详情页

动态shape推理申请内存失败

更新时间: 2022/09/05

暂无评分

问题信息

问题来源产品大类产品子类关键字
官方模型推理应用开发AscendCL动态shape、推理、申请、内存

问题现象描述

  • 业务场景:DVPP、模型推理、应用/算子开发
  • 适用处理器:昇腾310 AI处理器、昇腾310P AI处理器、昇腾910 AI处理器
  • 处理器形态:EP、RC
  • 问题现象:

    模型推理过程中,申请了大小为0的内存,日志报错信息中包含以下关键信息。

    [INFO] ASCENDCL ****** start to execute aclrtMalloc, size = 0
    [ERROR] ASCENDCL ****** malloc size must be greater than zero

原因分析

模型为动态shape模型,模型的输出shape中含有-1,所以直接调用aclmdlGetOutputSizeByIndex接口取到的size为0。

然后申请了大小为0的内存,导致失败。

解决措施

请参考《应用软件开发指南 (C&C++)》的“模型动态Shape输入推理”章节内容处理。

在aclmdlGetOutputSizeByIndex取到size为0时,用户需要预估一块较大的内存。

本页内容

该页面对您有帮助吗?
我要评分