ワンクリックで
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。