원클릭으로
profiling-analysis-computing
用于分析Ascend NPU系统中计算性能瓶颈的技能,专注于算子效率和计算优化
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
用于分析Ascend NPU系统中计算性能瓶颈的技能,专注于算子效率和计算优化
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
当用户需要部署 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.
分析MindStudio Insight采集的profiling数据识别快慢卡,以及分析系统trace文件识别Host侧进程性能问题。当用户需要分析NPU卡间性能差异或Host侧进程瓶颈时调用。
SOC 직업 분류 기준
| name | profiling-analysis-computing |
| description | 用于分析Ascend NPU系统中计算性能瓶颈的技能,专注于算子效率和计算优化 |
| keywords | ["profiling","计算瓶颈","算子分析","Ascend NPU"] |
该Skill用于分析Ascend NPU系统中的计算瓶颈问题,当主分析Skill检测到计算耗时占比超过85%时自动触发。包含完整的分析流程:
| 参数名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| input_path | string | 是 | Profiling文件路径,包含PROF_*目录的根路径,例如:./profiling/p-perf-huawei-05_110439_20250728062428118_ascend_pt。当skill由主分析Skill触发时,优先分析主Skill提供的profiling文件,以确保性能分析使用同源数据 |
| output_path | string | 否 | 输出结果目录,用于保存生成的算子列表。若不指定,将在输入路径下自动创建output文件夹 |
| top_n | int | 否 | 选取的高耗时算子数量,默认3个 |
| 参数名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| input_path | string | 是 | Profiling文件路径,包含PROF_*目录的根路径。当skill由主分析Skill触发时,优先分析主Skill提供的profiling文件,以确保性能分析使用同源数据 |
| output_path | string | 否 | 输出结果目录,用于保存分析报告。若不指定,将在输入路径下自动创建output文件夹 |
| top_n | int | 否 | 选取的高耗时算子数量,默认3个 |
| 参数名称 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| --input | string | 是 | Profiling文件路径或目录路径,支持递归查找kernel_details或op_analysis_details文件 |
| --output | string | 否 | 形状解析结果输出路径,支持.json、.csv、.xlsx等格式 |
| --op | string | 否 | 要解析的算子类型,默认matmul |
| --html-file | string | 否 | 可选的HTML文件路径,用于将解析后的形状替换到HTML报告中 |
| --pattern | string | 否 | 可选的额外文件名匹配模式,可重复指定 |
该Skill通常由主分析Skill /profiling-analysis 自动触发。当主Skill检测到计算耗时占比超过85%时,会自动调用该Skill的整合脚本 op_perf_analysis_combine.py,执行完整的分析流程:
无需手动执行后续步骤,系统会自动完成从筛选到分析的全流程。
第一步:筛选高耗时算子
# 基本用法
python scripts/op_high_time_selector.py --input-path "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output-path "./output"
# 指定分析前5个高耗时算子
python scripts/op_high_time_selector.py --input-path "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output-path "./output" --top-n 5
第二步:数据透视表分析与瓶颈定位
# 基本用法
python scripts/op_pivot_table_analyzer.py --input-path "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output-path "./output"
# 指定分析前5个高耗时算子
python scripts/op_pivot_table_analyzer.py --input-path "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output-path "./output" --top-n 5
# 基本用法
python scripts/op_perf_analysis_combine.py --input-path "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output-path "./output"
# 指定分析前5个高耗时算子
python scripts/op_perf_analysis_combine.py --input-path "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output-path "./output" --top-n 5
如果在分析结果(如 op_total_duration.csv 或 op_analysis_details.csv)中识别到了特定的算子(例如 MatMul、FIA 或 RmsNorm),请按照以下步骤进行深入的维度提取分析:
reference/ 目录下找到对应算子的参考文档(例如 MatMul Shape 提取)。extract_op_shapes.py 脚本并指定参数。基本用法:
python scripts/extract_op_shapes.py --input "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output "./output/matmul_shapes.csv" --op "matmul"
带HTML形状替换功能:
python scripts/extract_op_shapes.py --input "./p-perf-huawei-05_110439_20250728062428118_ascend_pt" --output "./output/matmul_shapes.csv" --op "matmul" --html-file "./output/op_analysis_combined.html"
详情请参考参考文档中的相应算子链接。
分析所需的op_statistic_.csv、op_summary_.csv、kernel_details.csv文件位于以下目录结构中:
└─*_ascend_pt
├─ASCEND_PROFILER_OUTPUT
├─FRAMEWORK
├─logs
└─PROF_*
├─device_*
│ └─data
├─host
│ └─data
├─mindstudio_profiler_log
└─mindstudio_profiler_output # op_statistic_*.csv、op_summary_*.csv、kernel_details.csv文件位于此目录
根据输入文件类型的不同,采用不同的筛选策略:
数据读取:搜索并读取所有op_summary_*.csv或kernel_details.csv文件。
平均耗时统计:对于每个筛选出的高耗时算子,统计它在各个"Input Shapes"下的平均耗时,并按平均耗时从高到低排列。
数据透视分析:基于排序后的结果,进一步统计每个"Input Shapes"下以下各列的平均值:aic_mac_ratio、aic_saclar_ratio、aic_mte1_ratio、aic_mte2_ratio、aic_fixpipe_ratio、aiv_vec_ratio、aiv_saclar_ratio、aiv_mte2_ratio、aiv_mte3_ratio。
结果输出:以表格形式输出各个"Op Types"和"Input Shapes"组合中,包含平均耗时在内的所有指定列的均值,并用红色标记每行中的最大值。
当高耗时算子中包含支持形状解析的算子类型(如MatMul、MatMulV2、MatMulV3等)时,自动执行以下步骤:
检测支持的算子类型:扫描高耗时算子列表,识别所有支持形状解析的算子类型。
调用形状解析脚本:使用extract_op_shapes.py脚本从op_analysis_details.csv或kernel_details.csv文件中提取算子的形状维度信息:
python scripts/extract_op_shapes.py --input <profiling数据目录> --output <输出目录>/<op_type>_shapes.csv --op <op_type>
形状解析规则:针对不同算子类型使用不同的形状解析规则。详细规则说明请参考对应的参考文档(见算子形状分析参考文档)
结果替换:将解析得到的形状维度信息替换op_analysis_combined.html文件中对应算子的"Input Shapes"列,使输出结果更易读和分析:
16384,1024;1024,1024M=16384, K=1024, N=1024(以MatMul为例)| 算子类型 | 参考文档 | 描述 |
|---|---|---|
| MatMul/MatMulV2/MatMulV3 | MatMul Shape 提取 | MatMul系列算子的M、N、K维度解析规则和示例 |
官方文档: