원클릭으로
deterministic-calculation-analysis
执行msProbe数据比对并分析比对结果,定位确定性计算问题首个输入一致输出不一致的API。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
执行msProbe数据比对并分析比对结果,定位确定性计算问题首个输入一致输出不一致的API。
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 | deterministic-calculation-analysis |
| description | 执行msProbe数据比对并分析比对结果,定位确定性计算问题首个输入一致输出不一致的API。 |
| keywords | ["确定性计算","msprobe","md5比对","CRC-32","精度问题定位"] |
md5_dump_files_checker.py 校验数据完整性。用户提供路径,支持三种输入类型:
| 输入类型 | 参数个数 | 说明 |
|---|---|---|
| dump 路径 | 2 个 | target(调试侧)和 golden(标杆侧)两份 msProbe 工具 dump 数据目录。示例:dump_path/step0。 |
| db 路径 | 1 个 | mix 级别比对结果文件(.vis.db)或包含该文件的目录。示例:db_path 或 db_path/compare_*.vis.db。 |
| csv/xlsx 路径 | 1 个 | L1 级别比对结果文件(.csv/.xlsx)或包含该文件的目录。示例:csv_path 或 csv_path/compare_*.csv。 |
# dump 路径(2 个参数)
python3 "<skill_root>/scripts/md5_dump_files_checker.py" <target_path> <golden_path>
# db 或 csv/xlsx 路径(1 个参数)
python3 "<skill_root>/scripts/md5_dump_files_checker.py" <db_or_csv_path>
level="L1" 或 level="mix",继续下一步db 和 csv/xlsx 路径已包含比对结果,无需依赖 msProbe 工具。
pip3 show mindstudio-probe || pip3 install mindstudio-probe --pre
根据第 1 步输出的 level 选择对应分支。比对等待时间最长为 600 秒。
msprobe compare -tp <target_path> -gp <golden_path> -o <output_path>
msprobe graph_visualize -tp <target_path> -gp <golden_path> -o <output_path>
根据第 1 步输出的 level 和第 1 步输入的路径类型选择对应分支。所有分支都支持 --exclude-api 排除后重分析。
python3 "<skill_root>/scripts/find_first_diff_api_L1.py" <output_path>
分析特点:
--exclude-api "API名称" 排除误检后重新分析python3 "<skill_root>/scripts/find_first_diff_api_mix.py" <output_path>/compare_*.vis.db
分析特点:
--exclude-api "API名称" 排除误检后重新分析已有比对结果文件,直接进行分析。
python3 "<skill_root>/scripts/find_first_diff_api_mix.py" <db_path>
python3 "<skill_root>/scripts/find_first_diff_api_L1.py" <csv_xlsx_path>
展示比对分析的结果并进行解读。
展示首个输入一致输出不一致的 API,包括其 Module 层级链路(仅 mix)和 md5 比对详情:
+----------------------+------------------------------------------+
| Rank 0 |
+----------------------+------------------------------------------+
| 首个问题API | NPU.npu_rms_norm.0.backward |
+----------------------+------------------------------------------+
| API所在Module层级 | DefaultModel [Module] |
| | → input_layernorm.RMSNorm [Module] |
| | → NPU.npu_rms_norm.0.backward [API] |
+----------------------+------------------------------------------+
| API分析依据 | Input MD5 (全部一致) |
| | Output MD5 (不一致) |
| | output.1: NPU=xxx vs Bench=yyy |
+----------------------+------------------------------------------+
找到首个问题 API 即排查结束,后续只让用户选择是否排除该 API 重新分析。如果用户选择排除,则让用户输入要排除的 API 名称(支持前缀匹配,多个以空格分隔),内部重新执行分析流程。
+----------------------+------------------------------------------+
| 首个问题API | 无 |
+----------------------+------------------------------------------+
| API分析依据 | 最后一个正常API: xxx |
| | 第一个输入不匹配API: yyy |
| | 两者之间的API可能被msprobe漏采 |
+----------------------+------------------------------------------+
解读: 未找到输入完全一致但输出不一致的 API,说明根因 API 可能被 msProbe 漏采。两个边界 API 之间的区域即为可疑范围,可调整 msProbe 采集配置后重新 dump 分析。
| 字段 | 说明 |
|---|---|
node_name | API/Module 名称 |
node_order | 执行顺序,越小越先执行 |
node_type | 0=Module, 1=API |
data_source | NPU=调试侧, Bench=标杆侧 |
precision_index | 0=pass, 1=error |
up_node / sub_nodes | 父子层级关系 |
input_data / output_data | 输入/输出数据,JSON 格式,包含 md5 值 |
is_distributed | 是否为通信算子 |
| 字段 | 说明 |
|---|---|
NPU Name | 调试侧 API 名称 |
Bench Name | 标杆侧 API 名称 |
NPU MD5 | 调试侧 tensor CRC-32 值 |
BENCH MD5 | 标杆侧 tensor CRC-32 值 |
Result | 比对结果(pass/fail) |
NPU Tensor Shape | 调试侧张量形状 |
Bench Tensor Shape | 标杆侧张量形状 |
dump_path
└── step0
├── rank0
│ ├── construct.json
│ ├── dump.json
│ └── stack.json
├── rank1
│ ├── construct.json
│ ├── dump.json
│ └── stack.json
...
└── rank7
├── construct.json
├── dump.json
└── stack.json
└── step1
│ ├── ...
└── step2
...
dump_path
└── step0
└── proc{pid}
├── construct.json
├── dump.json
└── stack.json
└── step1
│ ├── ...
└── step2
...
msprobe graph_visualize,用户可以传入路径dump_path、dump_path/step{n}、dump_path/step{n}/rank{n}或者dump_path/step{n}/proc{pid}。msprobe compare,用户可以传入路径dump_path/step{n}、dump_path/step{n}/rank{n}或者dump_path/step{n}/proc{pid},不支持比对dump_path。如果用户传入dump_path,默认比对dump_path/step0。