11. 内存管理

本章节描述 CANN Runtime 的内存管理接口,涵盖设备内存分配、主机内存管理、内存拷贝、虚拟内存、统一内存、缓存操作、IPC 内存共享等功能。

内存使用说明

各产品型号在内存使用上有一些注意事项,如下所示。

型号 注意事项
各型号都涉及 - 若涉及媒体数据处理功能,由于媒体数据处理功能对存放输入、输出数据的内存有更高的要求,因此需调用专用的内存申请接口,例如hi_mpi_dvpp_malloc。
- 调用专用的内存申请接口申请出来的内存可以满足媒体数据处理的要求,也可以在其它任务中使用,例如,从性能角度,为了减少拷贝,媒体数据处理的输出作为模型推理的输入,实现内存复用。
- 但由于媒体数据处理访问的地址空间有限,为确保媒体数据处理时内存足够,除媒体数据处理功能外的其它功能(例如,模型加载),建议调用内存管理下的接口申请内存,例如aclrtMalloc接口、aclrtMallocHost接口等。
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
- 若涉及申请Device上的大页内存,需注意,当前版本为防止大页内存不够用,系统内部已提前预留大页内存,用户在使用大页内存前,可调用aclrtGetMemInfo接口,查询空闲的大页内存。
- Ascend EP形态下,Device启动后首次执行推理或训练任务时,会将系统包加载到Device上,因此会占用部分Device内存(300M左右,不同AI处理器有所不同)。若Device重启,这部分内存才会释放。

本分类包含以下子类: