总体说明
若涉及媒体数据处理功能,关于内存使用,有以下注意事项:
由于媒体数据处理功能对存放输入、输出数据的内存有更高的要求(例如,内存首地址128字节对齐),因此需调用专用的内存申请接口,如下:
调用
媒体数据处理V1
版本的接口对图片进行抠图、缩放等操作时,调用
acldvppMalloc
接口申请内存。
调用
媒体数据处理V2
版本的接口对图片进行抠图、缩放等操作时,调用
hi_mpi_dvpp_malloc
接口申请内存。
调用
1
申请出来的内存可以满足媒体数据处理的要求,也可以在其它任务中使用,例如,从性能角度,为了减少拷贝,媒体数据处理的输出作为模型推理的输入,实现内存复用。
但由于媒体数据处理访问的地址空间有限,为确保媒体数据处理时内存足够,除媒体数据处理功能外的其它功能(例如,模型加载),建议调用
内存管理
章节下的
aclrtMalloc
接口、或
aclrtMallocHost
接口、或
aclrtMallocCached
接口申请内存。
Atlas 推理系列产品
上,媒体数据处理功能在每个进程内,可访问的地址空间最大为16GB。
Atlas A2训练系列产品
上,媒体数据处理功能在每个进程内,可访问的地址空间最大为16GB。
对于
Atlas 200/300/500 推理产品
,若涉及申请Device上的大页内存,需注意,当前版本为防止大页内存不够用,系统内部已提前预留(Device操作系统上的可用内存*25%≈1940M)大页内存,用户在申请大页内存时优先使用这部分预留内存。Device操作系统上的可用内存指使用free命令查询得到的total内存。
在
标准形态
下,使用完预留的大页内存后,系统内部会根据Device上的内存动态扩展或缩减大页内存。
对于
Atlas A2训练系列产品
,若涉及申请Device上的大页内存,需注意,当前版本为防止大页内存不够用,系统内部已提前预留大页内存,用户在使用大页内存前,可调用aclrtGetMemInfo接口,查询空闲的HBM大页内存(对应ACL_HBM_MEM_HUGE类型)、HBM普通内存(对应ACL_HBM_MEM_NORMAL类型)。
父主题:
内存管理