模型调优性能采集工具
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框架均适配  |