---
title: aclrtMallocCached
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_0097.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_0097.html
indexId: 63420609f29c6ebb32fe4a282c6556e19e03898bda49a8e2f60f9e04c1a46ea668
---
# aclrtMallocCached

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

在Device上申请size大小的线性内存，通过*devPtr返回已分配内存的指针，该接口在任何场景下申请的内存都是支持Cache缓存。

使用aclrtMallocCached接口申请的内存与使用aclrtMalloc接口申请的内存是等价的，都支持Cache缓存，不需要用户处理CPU与NPU之间的Cache一致性。


#### 函数原型

```
aclError aclrtMallocCached(void **devPtr, size_t size, aclrtMemMallocPolicy policy)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| devPtr | 输出 | “Device上已分配内存的指针”的指针。 |
| size | 输入 | 申请内存的大小，单位Byte。 size不能为0。 |
| policy | 输入 | 内存分配规则。类型定义请参见aclrtMemMallocPolicy。 若配置的内存分配规则超出aclrtMemMallocPolicy取值范围，size≥2M时，按大页申请内存，否则按普通页申请内存。 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。
