总体说明
- 若涉及媒体数据处理功能,关于内存使用,有以下注意事项:
- 由于媒体数据处理功能对存放输入、输出数据的内存有更高的要求(例如,内存首地址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训练系列产品上,媒体数据处理功能在每个进程内,可访问的地址空间最大为16GB。
- 由于媒体数据处理功能对存放输入、输出数据的内存有更高的要求(例如,内存首地址128对齐),因此需调用专用的内存申请接口,如下。
- 对于Atlas 200/300/500 推理产品,若涉及申请Device上的大页内存,需注意,当前版本为防止大页内存不够用,系统内部已提前预留(Device操作系统上的可用内存 * 25% ≈ 1940M)大页内存,用户在申请大页内存时优先使用这部分预留内存。Device操作系统上的可用内存指使用free命令查询得到的total内存。
在标准形态下,使用完预留的大页内存后,系统内部会根据Device上的内存动态扩展或缩减大页内存。
父主题: 内存管理