---
title: CalcSize
description: "用于计算算子对应的ComputeNodeInfo需要预分配的内存空间大小。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/basicdataapi/atlasopapi_07_00043.html
sourcePath: /source/zh/canncommercial/900/maintenref/basicdataapi/atlasopapi_07_00043.html
indexId: c300f7406edf3cbcb8d4a8e82ba1df33043c696069295c2f285e7364c21dc6e878
---
# CalcSize

#### 函数功能

用于计算算子对应的ComputeNodeInfo需要预分配的内存空间大小。

ComputeNodeInfo的内存空间是平铺式的，内存依次存放ComputeNodeInfo自身的数据成员、算子IR原型定义输入个数的Anchor信息、实际输入个数和输出个数的编译阶段的Tensor描述信息以及属性信息。该函数的计算结果不包含属性信息所占的内存空间大小。


#### 函数原型

```
static ge::graphStatus CalcSize(const size_t ir_inputs_num, const size_t inputs_num, const size_t outputs_num, size_t &total_size)
static ge::graphStatus CalcSize(const size_t ir_inputs_num, const size_t ir_outputs_num, const size_t inputs_num, const size_t outputs_num, size_t &total_size)
```


#### 参数说明

| 参数 | 输入/输出 | 说明 |
| --- | --- | --- |
| ir\_inputs\_num | 输入 | 算子IR原型定义的输入个数。 |
| ir\_outputs\_num | 输入 | 算子IR原型定义的输出个数。 |
| inputs\_num | 输入 | 算子实际的输入个数。 |
| outputs\_num | 输入 | 算子实际的输出个数。 |
| total\_size | 输出 | 需要预分配的ComputeNodeInfo和相关信息的内存总大小，不包含RuntimeAttrs的内存大小。 |


#### 返回值说明

返回值为graphStatus类型（uint32_t），其不同的状态取值说明如下：

| 状态 | 值 | 说明 |
| --- | --- | --- |
| ge::GRAPH\_SUCCESS | 0 | 执行成功。 |
| ge::GRAPH\_PARAM\_INVALID | 50331649 | 执行失败，参数无效，校验未通过。 |


#### 约束说明

无。


#### 调用示例

```
auto ir_input_num = node->GetOpDesc()->GetIrInputs().size();
auto input_num = node->GetInDataNodesAndAnchors().size();
auto output_num = node->GetAllOutDataAnchorsSize();
GE_ASSERT_SUCCESS(ComputeNodeInfo::CalcSize(ir_input_num, input_num, output_num, total_size));
```
