---
title: ReserveLocalMemory
description: "该函数用于在Unified Buffer中预留指定大小的内存空间。调用该接口后，使用GetCoreMemSize可以获取实际可用的剩余Unified Buffer空间大小。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendcopapi/atlasascendc_api_07_00061.html
sourcePath: /source/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_00061.html
indexId: 1e09c86f50b5aeb28f4c1df47256df6967428666474aa14516ac15cc428855da77
---
# ReserveLocalMemory

#### 功能说明

该函数用于在Unified Buffer中预留指定大小的内存空间。调用该接口后，使用GetCoreMemSize可以获取实际可用的剩余Unified Buffer空间大小。


#### 函数原型

```
void ReserveLocalMemory(ReservedSize size)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |  |  |
| --- | --- | --- | --- | --- |
| ReservedSize | 输入 | 需要预留的空间大小。 1 2 3 4 5 enum class ReservedSize { RESERVED\_SIZE\_8K, // 预留8 \* 1024B空间 RESERVED\_SIZE\_16K, // 预留16 \* 1024B空间 RESERVED\_SIZE\_32K, // 预留32 \* 1024B空间 }; | 1 2 3 4 5 | enum class ReservedSize { RESERVED\_SIZE\_8K, // 预留8 \* 1024B空间 RESERVED\_SIZE\_16K, // 预留16 \* 1024B空间 RESERVED\_SIZE\_32K, // 预留32 \* 1024B空间 }; |
| 1 2 3 4 5 | enum class ReservedSize { RESERVED\_SIZE\_8K, // 预留8 \* 1024B空间 RESERVED\_SIZE\_16K, // 预留16 \* 1024B空间 RESERVED\_SIZE\_32K, // 预留32 \* 1024B空间 }; |  |  |  |


#### 返回值说明

无


#### 约束说明

多次调用该函数时，仅保留最后一次调用的结果。


#### 调用示例

```
ge::graphStatus TilingXXX(gert::TilingContext* context) {
    auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo());
    uint64_t ub_size, l1_size;
    // 预留8KB的Unified Buffer内存空间
    ascendcPlatform.ReserveLocalMemory(platform_ascendc::ReservedSize::RESERVED_SIZE_8K);
    // 获取Unified Buffer和L1的实际可用内存大小
    ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::UB, ub_size);
    ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::L1, l1_size);
    // ...
    return ret;
}
```

完整样例可参考与数学库高阶API配合使用的样例。
