简介

概述

MindStudio MemScope(内存分析工具,msMemScope)是基于昇腾硬件开发,用于模型训练与推理过程中的内存问题定位的工具。该工具提供内存泄漏检测、内存对比、内存块监测、内存拆解和低效内存识别等功能,帮助用户完成问题定位与处理。

功能特性

msMemScope工具提供内存采集、内存分析两大功能。

功能 详细说明
内存采集 msMemScope工具提供内存事件的采集能力,允许自定义设置采集内存范围和采集项,为后续分析提供原始数据。
Python接口方式采集:支持通过Python接口采集信息,提供自定义设置采集内存范围和采集项,采集内存事件和Python Trace事件能力,实现精准采集、高效分析。
命令行方式采集:支持通过命令行方式采集信息,提供在非Python场景下采集内存事件与内存分析能力。
内存分析 msMemScope工具基于采集的内存数据,提供泄漏、对比、监测、拆解、低效识别五项分析能力,帮助开发者快速诊断和优化内存问题。
内存泄漏分析:针对内存长时间未释放和内存泄漏等问题,需要进行内存分析时,msMemScope工具提供内存泄漏分析和kernel Launch粒度的内存变化分析功能,进行告警定位与分析。
内存对比分析:当两个Step内存使用存在差异时,可能会导致内存使用过多,甚至出现OOM(Out of Memory,内存溢出)的问题,则需要使用msMemScope工具的内存对比分析功能来定位并分析问题。
内存块监测:在大模型场景中,当遇到内存踩踏定位困难时,msMemScope工具支持通过Python接口和命令行两种方式,在算子执行前后对指定的内存块进行监测。根据内存块数据的变化,快速确定算子间内存踩踏的范围或具体位置。
内存拆解:msMemScope工具提供内存拆解功能,支持对CANN层和Ascend Extension for PyTorch框架的内存使用情况进行拆解,输出模型权重、激活值、梯度,以及优化器等组件的内存占用情况。
低效内存识别:在训练推理模型过程中,可能会存在部分内存块申请后未立即使用,或使用完毕后未及时释放的低效情况。msMemScope工具可帮助识别这种低效内存的使用现象,从而优化训练推理模型。

兼容性信息

msMemScope工具当前支持CANN、Ascend Extension for PyTorch、MindSpore以及Aten算子的内存采集,具体版本支持情况如下表所示。

产品 说明
CANN CANN 8.2.RC1及之后版本的ATB算子(Ascend Transformers Boost)。
Ascend Extension for PyTorch Ascend Extension for PyTorch 7.0.0及之后版本。
MindSpore MindSpore 2.7.0及之后版本。
Aten算子 当采集Aten算子下发与访问事件时,需使用PyTorch 2.3.1或更高版本。