昇腾社区首页
中文
注册
开发者
下载

调优流程

目前典型的内存问题分类可参见表1

表1 内存问题分类

问题类别

问题现象

场景

内存踩踏

出现精度异常或出现NaN,通常出现在Device上。

训练、推理、算子开发

内存使用过多

内存使用过多,通常与以下两种情况有关:

  • 泄漏或OOM(Out of Memory,内存溢出)
    • Host侧内存监测持续增长,甚至OOM。
    • Device侧内存使用量持续增长,甚至OOM。
  • 与预期或基线相差大

    实际采集的内存使用数据远超预期或基线数据,差值会达到GB量级,通常出现在Device侧。

训练、推理

定位流程

针对Device侧内存使用过多或OOM,问题分析流程如下:

  1. 通过性能调优工具采集性能数据,并导入MindStudio Insight
  2. 查看内存(Memory)界面中“内存分析”区域的内存曲线图、算子或组件内存申请/释放详情,进行初步定位,明确异常范围、Step或算子;
  3. 使用内存泄漏检测工具(msLeaks)采集对应异常范围的内存详情与内存拆解数据,导入MindStudio Insight
  4. 查看内存详情(Leaks)界面,结合“调用栈火焰图”“内存申请/释放折线图&内存块图”“内存详情表”进行内存占用拆解分析。