بنقرة واحدة
profiling-analysis-computing
用于分析Ascend NPU系统中计算性能瓶颈的技能,专注于算子效率和计算优化
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
用于分析Ascend NPU系统中计算性能瓶颈的技能,专注于算子效率和计算优化
التثبيت باستخدام 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.
分析MindStudio Insight采集的profiling数据识别快慢卡,以及分析系统trace文件识别Host侧进程性能问题。当用户需要分析NPU卡间性能差异或Host侧进程瓶颈时调用。
| 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维度解析规则和示例 |
官方文档: