Step间内存对比
如果训练推理参数一致,但是CANN和PyTorch或MindSpore框架的版本不匹配,训练推理任务的两个不同Step的内存使用可能存在差异,会造成内存使用过多,甚至OOM的问题。而msLeaks工具则提供了用户对比分析、定位问题的能力。
工具使用
使用本对比功能之前,需要先采集两个不同Step的数据。
- 使用环境变量关闭task_queue算子下发队列优化。
export TASK_QUEUE_ENABLE=0
- 在训练推理代码中添加mstx打点代码,可参考Step内内存分析。
- 执行以下命令,使用msLeaks工具采集指定Step的内存数据。需要采集两个不同Step的数据。建议每次只采集一个Step的数据,两个不同Step的数据采集完成后,用来进行Step间内存对比分析。
msleaks [options] app_name --steps=Required Step --level=kernel
- 执行以下命令,对比采集到的两个Step的内存使用差异。
msleaks --compare --input=path1,path2 --level=kernel
其中--compare和--input命令必须一起使用,单个使用无效,同时--input输入的两个文件路径需要逗号(全角半角逗号均可)隔开,--level也可选op。
- Step间对比生成的结果目录如下。
|- leaksDumpResults |- compare |- memory_compare_{timestamp}.csv
父主题: 内存分析