---
title: 动态shape推理申请内存失败-昇腾社区
description: 模型推理过程中，申请了大小为0的内存，日志报错信息中包含以下关键信息。
keywords: 动态shape;推理;申请;内存
url: https://www.hiascend.com/document/caselibrary/detail/topic_0000001321576380-TSHsv3iH
section: (其他)
---

# 动态shape推理申请内存失败-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/topic_0000001321576380-TSHsv3iH
描述: 模型推理过程中，申请了大小为0的内存，日志报错信息中包含以下关键信息。
关键词: 动态shape;推理;申请;内存

昇腾文档 [了解详情](https://www.hiascend.com/document)

故障案例 [了解详情](https://www.hiascend.com/document/caselibrary)

动态shape推理申请内存失败

动态shape推理申请内存失败

2022/09/05

812

问题信息

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

#### 问题现象描述

- 业务场景：DVPP、模型推理、应用/算子开发
- 适用处理器：Atlas 200/300/500 推理产品、Atlas 推理系列产品、Atlas 训练系列产品
- 处理器形态：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&amp;C++) [了解详情](https://www.hiascend.com/document/detail/zh/canncommercial/51RC2/inferapplicationdev/aclcppdevg)》的“模型动态Shape输入推理”章节内容处理。

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

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决措施
