调优流程
目前典型的内存问题分类可参见表1。
问题类别 |
问题现象 |
场景 |
|---|---|---|
内存踩踏 |
出现精度异常或出现NaN,通常出现在Device上。 |
训练开发、推理开发、算子开发 |
内存使用过多 |
内存使用过多,通常与以下两种情况有关: |
训练开发、推理开发 |
定位流程
针对Device侧内存使用过多或OOM,问题分析流程如下:
- 通过Profiling采集性能数据,并导入MindStudio Insight;
- 查看内存(Memory)界面中“内存分析”区域的内存曲线图、算子或组件内存申请/释放详情,进行基础定界,明确异常范围、Step或算子;
- 使用msLeaks工具采集对应异常范围的内存详情与内存拆解数据,导入MindStudio Insight;
- 查看内存详情(Leaks)界面,结合“调用栈火焰图”、“内存申请/释放折线图&内存块图”、“内存详情表”进行内存占用拆解分析。