模型调优性能采集工具
MindStudio提供多种灵活的系统级性能数据采集方式,可根据实际需求选择合适的方案,以精准定位性能瓶颈并提升训练效率。
按照使能方式可以分为命令行采集(msprof)和AI框架Profiler接口采集(Ascend PyTorch Profiler,MindSpore Profiler)两大类。
msprof命令行工具主要采集CANN层与NPU层性能数据,是其它采集接口的底座。

msprof命令行工具无AI框架层数据。
AI框架Profiler接口封装了msprof命令行工具,进一步增加了对AI框架层性能数据的采集与解析,是最常用的采集方式。AI框架Profiler接口按照功能特性,可进一步分为常规采集(即静态采集)、动态采集、在线监测三种模式。
此外,部分训练或推理套件会对AI框架Profiler接口进行进一步封装,可直接通过套件内接口调用,例如MindSpeed-MM、MindFormers等。

采集方式 |
特点 |
推荐使用场景 |
文档参考链接 |
---|---|---|---|
msprof命令行采集 |
msprof命令行工具提供了AI任务运行性能数据、昇腾AI处理器系统数据等性能数据的采集和解析能力。 注:msprof命令行工具无AI框架层数据。 |
训练、推理场景下均可使用。 |
|
Ascend PyTorch Profiler接口采集 |
完全对标PyTorch-GPU场景下的使用方式,支持采集PyTorch框架和昇腾软硬件数据。 |
基于PyTorch的常规性能分析。 |
|
MindSpore Profiler接口采集 |
支持采集MindSpore框架和昇腾软硬件数据。 |
基于MindSpore的常规性能分析。 |
使用AI框架Profiler采集时,可以参考表2信息配置参数。
使用场景 |
配置参数 |
---|---|
常规性能分析场景 |
|
NPU/GPU对比场景 |
该配置用于对比NPU和GPU端到端耗时:
|
定位代码位置场景 |
如果需要定位异常算子代码位置,可在常规场景下开启with_stack或with_modules开关,用以开启调用栈(非必要不开启,性能会膨胀)。 |
分析算子NPU片上内存申请情况 |
profile_memory=True |
分析集群通信情况 |
profiler_level=Level1 |
按照功能特性区分,可以区分为常规采集、动态采集、轻量化性能数据在线监测三大类,如表3所示。
采集方式 |
特点 |
推荐使用场景 |
使用指导 |
---|---|---|---|
常规采集 |
预先设置采集周期或全量采集,落盘详细性能数据。 |
常规性能分析 |
|
dynamic_profile动态采集 |
在执行模型训练过程中可以随时开启采集进程、动态修改配置采集项,无需频繁改动脚本代码。 |
启停成本高的场景(如超大规模训练) |
|
msMonitor轻量化采集 |
通过采集关键性能指标(如资源利用率、通信带宽等)精准识别昇腾软件栈性能异常并快速定界,具备数据量少、解析快、开销小的特点,支持100%实时运行,显著提升大集群场景下的性能问题定位效率。 |
实时性能数据监测,torch_npu与MindSpore框架均适配 |