昇腾社区首页
中文
注册

函数:malloc_cached

产品支持情况

产品

是否支持

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas 训练系列产品

Atlas 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 200/300/500 推理产品

功能说明

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

使用acl.rt.malloc_cached接口申请的内存与使用acl.rt.malloc接口申请的内存是等价的,都支持cache缓存,不需要用户处理cpu与npu之间的cache一致性。

调用媒体数据处理的接口前,若需要申请Device上的内存存放输入或输出数据,需调用acl.media.dvpp_malloc申请内存。

函数原型

  • C函数原型
    1
    aclError aclrtMallocCached(void **devPtr, size_t size, aclrtMemMallocPolicy policy)
    
  • python函数
    1
    dev_ptr, ret = acl.rt.malloc_cached(size, policy)
    

参数说明

参数名

说明

size

int,申请内存的大小,单位Byte。size不能为0。

policy

int,内存分配规则。

若配置的内存分配规则超出aclrtMemMallocPolicy取值范围,size≥2M时,按大页申请内存,否则按普通页申请内存

返回值说明

返回值

说明

dev_ptr

int,指向Device上已分配内存的指针地址。

ret

int,错误码,返回0表示成功,返回其它值表示失败。

约束说明

其它约束与acl.rt.malloc接口相同。