总体说明
- 若涉及媒体数据处理功能,关于内存使用,有以下注意事项:
- 由于媒体数据处理功能对存放输入、输出数据的内存有更高的要求(例如,内存首地址128对齐),因此需调用专用的内存申请接口,如下。
- 调用媒体数据处理V1版本的接口对图片进行抠图、缩放等操作时,调用acl.media.dvpp_malloc接口申请内存。
- 调用媒体数据处理V2版本的接口对图片进行抠图、缩放等操作时,调用acl.himpi.dvpp_malloc接口申请内存。
- 调用上述接口申请出来的内存可以满足媒体数据处理的要求,也可以在其它任务中使用,例如,从性能角度,为了减少拷贝,媒体数据处理的输出作为模型推理的输入,实现内存复用。
- 由于媒体数据处理访问的地址空间有限,为确保媒体数据处理时内存足够,除媒体数据处理功能外的其它功能(例如,模型加载),建议调用内存管理章节下的acl.rt.malloc接口、acl.rt.malloc_host接口或acl.rt.malloc_cached接口申请内存。
Atlas 推理系列产品上,媒体数据处理功能在每个进程内,可访问的地址空间最大为16GB。
Atlas A2训练系列产品/Atlas 800I A2推理产品上,媒体数据处理功能在每个进程内,可访问的地址空间最大为16GB。
- 由于媒体数据处理功能对存放输入、输出数据的内存有更高的要求(例如,内存首地址128对齐),因此需调用专用的内存申请接口,如下。
- 对于Atlas 200/300/500 推理产品,若涉及申请Device上的大页内存,当前版本为防止大页内存不足,系统内部已提前预留(Device操作系统上的可用内存 * 25% ≈ 1940M)大页内存,在申请大页内存时请优先使用这部分预留内存。Device操作系统上的可用内存指使用free命令查询得到的total内存。
- 对于Atlas A2训练系列产品/Atlas 800I A2推理产品,若涉及申请Device上的大页内存,需注意,当前版本为防止大页内存不够用,系统内部已提前预留大页内存,用户在使用大页内存前,可调用acl.rt.get_mem_info接口,查询空闲的HBM大页内存(对应ACL_HBM_MEM_HUGE类型)、HBM普通内存(对应ACL_HBM_MEM_NORMAL类型)。
- Ascend EP形态下,Device启动后首次执行推理或训练任务时,会将AI CPU算子从Host搬迁到Device上并缓存在Device上,用于提升性能,因此会占用部分Device内存(100M~200M,不同芯片有所不同)。若Device重启,这部分AI CPU算子缓存才会释放。
以下产品涉及该约束:
- Atlas 推理系列产品
- Atlas 200I/500 A2推理产品
- Atlas 训练系列产品
- Atlas A2 训练系列产品
父主题: 内存管理