一键导入
ascend-msprof-analyze-cli
MindStudio Profiler Analyze(msprof-analyze)是面向 AI 训练与推理场景的性能分析工具,基于采集得到的 profiling 数据进行统计、比对和诊断,帮助定位计算、通信、调度及集群场景下的性能瓶颈。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
MindStudio Profiler Analyze(msprof-analyze)是面向 AI 训练与推理场景的性能分析工具,基于采集得到的 profiling 数据进行统计、比对和诊断,帮助定位计算、通信、调度及集群场景下的性能瓶颈。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
当用户需要部署 msmodeling optix 服务化自动寻优工具时使用。负责安装与验证。
当首次使用 msmodeling optix 的用户需要根据硬件、模型、负载和优化目标推荐 MindIE/vLLM 寻优参数、搜索范围、benchmark 侧字段或 config.toml 片段时使用。
指导并自动化完成昇腾 NPU 上 MindSpeed-LLM 训练的 Profiling 数据采集。支持配置并运行带 Profiling 的模型训练,包括 CPU 采集、内存采集、不同采集级别(level0/level1/level2)和自定义 step 范围。生成的 Profiling 数据可用 MindStudio Insight 进行性能分析。当用户需要在模型训练中采集 Profiling 数据、进行训练性能分析、或执行 性能数据采集/Profiling采集 时触发。触发关键词:profiling、性能分析、性能数据采集、Profiling采集、训练框架profiling、MindSpeed-LLM profiling。
指导并自动化完成昇腾 NPU 上 MindSpeed-MM 模型训练的 Profiling 数据采集。通过识别训练脚本,自动找到配置文件并启用内置 Profiler,支持静态采集(指定起止 step)和动态采集(运行时动态开关),支持 Megatron 引擎(tools.json)和独立 FSDP2 引擎(YAML)两种配置方式。生成的 Profiling 数据可用 MindStudio Insight 进行性能分析。当用户需要在多模态模型训练中采集 Profiling 数据、进行训练性能分析、或执行 性能数据采集/Profiling采集 时触发。触发关键词:profiling、性能分析、性能数据采集、Profiling采集、多模态训练profiling、MindSpeed-MM profiling。
Skill for analyzing communication performance bottlenecks and detecting slow/fast rank issues in Ascend NPU systems. Use this skill whenever you need to analyze communication efficiency, data transfer bottlenecks, or identify slow/fast rank problems using profiling data.
用于分析Ascend NPU系统中计算性能瓶颈的技能,专注于算子效率和计算优化
| name | ascend-msprof-analyze-cli |
| description | MindStudio Profiler Analyze(msprof-analyze)是面向 AI 训练与推理场景的性能分析工具,基于采集得到的 profiling 数据进行统计、比对和诊断,帮助定位计算、通信、调度及集群场景下的性能瓶颈。 |
目前提供两个功能,根据用户需求自动选择对应工具:
| 能力 | 工具命令 | 侧重点 |
|---|---|---|
| 集群分析 (cluster analyse) | msprof-analyze -m <mode> | 涵盖集群多维信息汇总、拆解对比、通信瓶颈定位和下发问题分析等专题。 |
| 专家建议 (advisor) | msprof-analyze advisor <subcommand> | 基于性能数据自动识别计算、调度、通信等潜在问题,并输出优化建议。 |
⚠️ 重要:在开始分析前,必须先根据以下规则确定使用哪个功能。
| 条件 | 优先使用的分析能力 | 原因 |
|---|---|---|
| 卡数 ≥ 64 或数据量很大(db大于1G) | 集群分析 | 集群分析专门优化了大数据量场景,能快速汇总数据 |
| 数据格式为 db | 集群分析 | 集群分析仅支持 db 格式 |
| 数据格式为 text (json/csv) | 专家建议 | 专家建议支持 text 和 db 格式 |
| 需要分析慢卡/慢链路原因 | 集群分析后,再用专家建议 | 先定位慢卡,再用专家建议深入诊断 |
| 需要算子优化建议 | 专家建议 | 专家建议输出详细的调优建议 |
| 单卡数据一般以'ascend_pt'或者'ascend_ms'结尾 | 专家建议 | 直接使用专家建议进行诊断 |
用户提出分析需求
│
▼
┌─────────────────────────────┐
│ 数据量评估:卡数、数据规模 │
└─────────────────────────────┘
│
▼
┌─────────────────────────────┐
│ 数据格式判断:db 还是 text? │
└─────────────────────────────┘
│
├──────────────────────────────┐
▼ ▼
【db格式且为多卡数据】 【text格式或者单卡数据】
│ │
▼ ▼
优先集群分析 只能专家建议
│ (跳过第3步)
▼
┌─────────────────────────────┐
│ 集群分析是否找到慢卡? │
└─────────────────────────────┘
│
├─────────────┬─────────────┐
▼ ▼ ▼
是慢卡 不是慢卡 无瓶颈
│ │ │
▼ │ ▼
对该慢卡用 分析其他问题 结论输出
专家建议深入
| 用户需求场景 | 推荐能力 | 理由 |
|---|---|---|
| "分析这个 16 卡集群的慢卡问题" | 集群分析 → 专家建议 | 先定位慢卡,再深入诊断 |
| "这个单卡的数据有算子执行慢" | 专家建议 | 单卡场景专家建议更全面 |
| "帮我看看这个 profiling 数据" | 先判断数据格式 | 格式决定能力选择 |
| "通信带宽低是什么原因" | 集群分析 | 通信矩阵分析是集群分析强项 |
| "这个算子为什么慢" | 专家建议 | 算子问题诊断是专家建议强项 |
| "数据格式是 csv 的" | 专家建议 | 集群分析仅支持 db |
在 Ascend 多卡/集群场景下,利用 msprof-analyze 的 -m 参数指定分析能力,对集群训练数据进行综合分析。用户只需说明要分析什么,系统自动选择对应的 -m 参数执行分析。
| 分析能力 | 介绍 |
|---|---|
| cluster_time_summary | 提供集群训练过程中迭代耗时的拆解,帮助用户找到性能瓶颈。 |
| compute_op_sum | device侧运行的计算类算子汇总。 |
| freq_analysis | 识别aicore是否存在空闲(频率为800MHz)、异常(频率不为1800MHz或800MHz)的情况并给出分析结果。 |
| ep_load_balance | moe负载信息汇总分析。 |
| communication_time_sum | 集群场景通信时间和带宽汇总分析。 |
| hccl_sum | 通信类算子信息汇总。 |
| slow_rank | 根据当前的快慢卡统计算法,展示各个rank得出的快慢卡影响次数,识别慢卡出现的原因。 |
| cann_api_sum | CANN层API的汇总。 |
| free_analysis | 提供对Device侧大块空闲时间的自动分析能力,能够识别空闲时间产生的原因,帮助用户定位性能问题。 |
| all | 同时解析通信矩阵communication_matrix和通信耗时数据communication_time。 |
# 【集群综合分析】
msprof-analyze -m <mode> -d <cluster_data_path> [-o <output_path>] [--force] --agent
命令示例:
msprof-analyze -m cluster_time_summary -d ./cluster_data -o ./output --agent
msprof-analyze -m free_analysis -d ./cluster_data -o ./output --agent
msprof-analyze -d ./cluster_data -o ./output --agent # 默认为all
⚠️ 集群分析 (Cluster) 专用诊断规则 禁止仅凭单项指标字面意思下结论,必须严格遵守以下华为官方诊断逻辑:
Free Time 极长(占比 > 10% 或远超均值),且 Compute 和 Communication 时间异常偏短。free_analysis 分析空闲时间原因,使用 freq_analysis 检查频率是否异常低。Free Time 普遍较短且均匀,但某卡 Compute Time 显著大于均值。Bandwidth(GB/s) 显著低于同类型链路的均值。communication_matrix_sum 查看各链路带宽。freq_analysis 检测频率异常。communication_bottleneck 分析是 Host 侧下发慢还是 Device 侧计算慢导致通信等待。msprof-analyze 命令进行集群分析。⚠️ 集群分析 (Cluster) 专用流程
确认分析模式:
-m 参数值(参见第2节映射表)。all 模式。执行分析命令:
msprof-analyze -m <mode> -d <cluster_data> [-o <output_path>] [--force] --agent-o参数,除非用户明确指定输出路径。读取输出结果:
数据解读与瓶颈定位:
输出报告:按以下结构输出最终回复:
export_type=["db"]。基于 Ascend PyTorch Profiler 或 MindSpore Profiler 采集的性能数据,使用 msprof-analyze advisor 功能进行自动分析,并输出性能调优建议。
使用 msprof-analyze advisor <subcommand> 命令格式,支持三种分析模式,默认使用all:
| 子命令 | 说明 | 包含功能 |
|---|---|---|
all | 总体性能瓶颈 | 全部功能(计算 + 通信 + 调度) |
computation | 计算瓶颈 | computation + Kernel compare |
schedule | 调度瓶颈 | schedule + API compare |
| 维度 | 功能 | 说明 |
|---|---|---|
| overall | Overall Summary | 计算、通信、空闲等维度拆解 |
| overall | Environment Variable Issues | 环境变量设置推荐 |
| overall | slow rank | 慢卡识别 |
| overall | slow link | 慢链路识别 |
| computation | AICPU Issues | AI CPU 调优 |
| computation | Operator Dynamic Shape Issues | 识别动态Shape算子 |
| computation | AI Core Performance Analysis | MatMul、FlashAttentionScore 等算子分析 |
| computation | Block Dim Issues | Block Dim 算子调优 |
| computation | Operator No Bound Issues | 算子瓶颈分析 |
| computation | Fusion Issues | 融合算子图调优 |
| computation | AI Core Frequency Issues | AI Core 算子降频分析 |
| communication | Packet Analysis | 通信小包检测 |
| communication | Bandwidth Contention Analysis | 通信计算带宽抢占检测 |
| communication | Communication Retransmission Analysis | 通信重传检测 |
| communication | Byte Alignment Analysis | 通信算子字节对齐检测 |
| schedule | Affinity API Issues | 亲和API替换调优 |
| schedule | Operator Dispatch Issues | 识别算子下发问题(路径3/路径5) |
| schedule | SyncBatchNorm Issues | BatchNorm同步检测 |
| schedule | Synchronize Stream Issues | 流同步检测 |
| schedule | GC Analysis | 垃圾回收事件检测 |
| schedule | Fusible Operator Analysis | 检测 Host/MTE 瓶颈算子序列 |
| dataloader | Slow Dataloader Issues | 异常 dataloader 检测 |
| memory | Memory Operator Issues | 识别异常的内存申请释放操作 |
| comparison | Kernel compare | 标杆性能数据 Kernel 对比 |
| comparison | API compare | 标杆性能数据 API 对比 |
# 【总体性能瓶颈】
msprof-analyze advisor <subcommand> -d <profiling_path> [-o <output_path>] [-bp <benchmark_path>] [--force] --agent
命令示例:
# 单卡场景)
msprof-analyze advisor all -d ./profiling_data -o ./output --force --agent
# 集群场景
msprof-analyze advisor all -d ./cluster_profiling -o ./output --force --agent
| 场景 | 路径要求 |
|---|---|
| 单卡 | 指定到 *_ascend_pt 或 *_ascend_ms 目录 |
| 多卡/集群 | 指定到 *_ascend_pt 或 *_ascend_ms 的父目录 |