简介
概述
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或更高版本。 |