昇腾社区首页
中文
注册
MindStudio全新支持训练数据在线监测,大幅提升训练效率

MindStudio全新支持训练数据在线监测,大幅提升训练效率

性能调优MindStudio

发表于 2025/07/11

大规模分布式训练场景调优困境

在AI计算领域,随着模型规模不断扩大,如何突破训练性能瓶颈已成为开发者面临的关键挑战。特别是在大规模分布式训练场景下,传统性能监测方案存在明显不足:

其一,采用被动式监测策略,往往在性能抖动发生后才能触发数据采集,导致问题定位存在延迟;

其二,面对训练过程中产生的海量性能数据(通常达数百GB量级),传统方案的解析和转储效率低下,进一步延长了问题诊断周期。这些缺陷不仅影响排障效率,更会造成计算资源浪费。

面对这些性能调优困境,MindStudio全新推出了msMonitor轻量化在线监测工具,帮助开发者实现更高效的性能问题定位于优化。

msMonitor提供组合策略大幅提升训练效率

msMonitor 基于dynolog开源项目,是一款面向昇腾NPU的轻量化在线监测工具,致力于为开发者提供高效的性能洞察与问题诊断能力。其核心功能包括:

  • NPU Monitor:实时采集Kernel执行、API调用、HCCL通信等关键性能指标,以极低开销实现集群健康状态监测,帮助开发者快速发现慢节点、慢链路等典型问题。
  • NPU Trace-dump:支持动态触发多维度性能数据采集,可自定义采集内容(如算子耗时、内存占用等)与采样等级,并将详细数据落盘,为深度性能优化提供完整数据支撑。

通过 "常态监测+精准采集" 的组合策略,msMonitor 既能满足集群长稳训练时的实时监测需求,又能针对性能瓶颈进行定向分析,显著提升模型训练效率。

图1:msMonitor模块交互示意图

工具通过环境变量启用非侵入式torch_npu Profiler后端,配合Daemon守护进程实现动态监测;开发者使用简洁的CLI命令即可控制数据采集策略,而轻量级的MSPTI监测线程则负责细粒度的性能指标采集。

需要注意的是,MSPTI(MindStudio Profiling Tool Interface)是更加细粒度的API接口,适合对profiler较为熟悉的用户调用,实现自定义定制化性能指标采集。此处msMonitor封装了该接口,方便更多用户轻松使用。详见产品文档:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/82RC1alpha003/devaids/Profiling/atlasprofiling_16_1153.html

快速上手操作指南

下载与安装

点击链接( https://gitee.com/ascend/mstt/tree/master/msmonitor )即可根据指导下载并安装工具,包含以下核心组件:

  • dyno:命令行交互工具,用户通过命令行指定监测模式和参数。
  • dynolog:守护进程服务,接收dyno指令并发送Profiler配置,实时汇总性能监测数据。
  • msmonitor-plugin.whl:python插件包,提供IPCMonitor、MsptiMonitor等公共能力。

NPU Monitor(常态监测)

关键数据轻量化监测与上报,实时抓取训练性能数据,支持接入用户运维平台,在线监测训练中关键指标变化情况。

Step 1:拉起dynolog daemon进程。

dynolog --enable-ipc-monitor --certs-dir NO_CERTS --metric_log_dir /tmp/mertics

Step 2:在训练任务拉起窗口使能dynolog环境变量。

export MSMONITOR_USE_DAEMON=1

Step 3: 配置msMonitor日志路径(可选,默认路径为当前目录下的msmonitor_log)。

export MSMONITOR_LOG_PATH=/tmp/msmonitor_log 

Step 4: 设置LD_PRELOAD,拉起训练任务。

# 训练任务拉起前需要设置LD_PRELOAD
export LD_PRELOAD=<CANN toolkit安装路径>/ascend-toolkit/latest/lib64/libmspti.so
# 训练任务中需要使用pytorch的优化器/继承原生优化器
bash train.sh

Step 5:使用dyno CLI使能npu-monitor,并修改配置。

dyno --certs-dir /home/client_certs npu-monitor --npu-monitor-start
dyno --certs-dir NO_CERTS npu-monitor --mspti-activity-kind Kernel,Marker --report-interval-s 5

Step6:使用tensorboard查看metrics数据。

tensorboard --logdir=/tmp/metrics --host=0.0.0.0 --port=6006 # 使用浏览器访问问页面 

图4:tensorboard中呈现了kerenl在上报周期内的总耗时等信息

NPU Trace-dump(精准采集)

性能数据全量采集与落盘,在不中断训练业务情况下,自定义性能数据采集范围,并提供多维度数据可视化界面,从Timeline、内存、算子等角度分析当前训练情况。

Step 1:拉起dynolog daemon进程。

dynolog --enable-ipc-monitor --certs-dir NO_CERTS

Step 2:在训练任务拉起窗口使能dynolog环境变量。

export MSMONITOR_USE_DAEMON=1

Step 3:拉起torch_npu或mindspore框架的训练任务。

bash train.sh

Step 4:使用dyno CLI动态触发trace dump。

# 示例:从第10个step开始采集,采集2个step,采集框架、CANN和device数据,同时采集完后自动解析以及解析完成不做数据精简,落盘路径为/tmp/profile_data
dyno --certs-dir NO_CERTS nputrace --start-step 10 --iterations 2 --activities CPU,NPU --analyse --data-simplification false --log-file /tmp/profile_data

Step 5:查看落盘数据,在设置的`--log-file`下查看详细的性能数据。

图2:torch_npu框架的训练任务采集到的性能数据

Step 6: 重点关注ASCEND_PROFILER_OUTPUT目录下的性能数据,可以通过MindStudio Insight进行可视化呈现。

图3:timeline可视化呈现,可以直观看到算子下发、前反向关系等

结语

MindStudio全流程工具链持续演进,旨在为开发者提供更简洁易用的开发工具,此次全新推出msMonitor这款轻量化、高效的昇腾平台训练数据在线监测工具,为AI开发者提供了强大的性能优化支持。欢迎各位感兴趣的开发者下载试用,体验msMonitor带来的便捷与高效吧!

本页内容