昇腾集群比对分析
SkillDatabases & dataAscend cluster comparison tool. Invoke when user asks to compare two cluster datasets (DB or TEXT), or to generate cluster_analysis_output from raw profiling data via msprof-analyze and then compare.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the 昇腾集群比对分析 skill
What this skill tells your AI
The instructions your AI receives, as published by kali20gakki/msagent in skills/profiler/ascend-cluster-compare/SKILL.md and read by ahel’s review.
本 skill 只做一件事:比对两个集群的 profiling 数据,定位性能差异并输出劣化归因 HTML 报告。从 cluster_analysis_output 目录(DB 或 TEXT 格式)提取数据;若用户没有现成的 cluster_analysis_output,先用 msprof-analyze cluster 生成,再执行比对。
触发场景
当用户出现以下意图时触发:
- "比对两个集群"、"对比正常和异常集群"、"cluster compare"
- 用户提供两个
cluster_analysis_output目录、cluster.db文件或cluster_step_trace_time.csv路径 - 用户提供原始 profiling 数据目录(如多张卡的
*_ascend_pt目录),要求生成比对结果
不适用:单集群整体分析、单卡分析、专家建议(advisor)、GPU/NPU 性能比对(compare 工具)。这些不属于本 skill 范围。
核心工作流(必须严格遵循)
阶段 0: 数据准备(仅当用户没有现成的 cluster_analysis_output 时)
步骤 0.1: 判断是否需要生成
检查用户提供的两个集群路径下是否已有可用数据:
- DB 模式:
cluster.db(旧格式,根目录)或cluster_analysis_output/cluster_analysis.db(新格式) - TEXT 模式:
cluster_step_trace_time.csv+communication_group.json(直接位于路径下或cluster_analysis_output/子目录内)
两类满足其一即可;若路径下只有原始 profiling 数据(如 *_ascend_pt 目录),则进入步骤 0.2 生成。
步骤 0.2: 检查并安装 msprof-analyze
- 检查是否已安装:执行
msprof-analyze --version(或msprof-analyze --help),能正常输出版本/帮助信息即已安装。 - 未安装则安装(要求 Python 3.7.5 及以上,建议 3.9+):
pip install msprof-analyze- 指定版本:
pip install msprof-analyze==<CANN版本号>(不明确时用最新版)
- 指定版本:
- 验证安装:再次执行
msprof-analyze --help,不报错且能显示帮助即安装成功;若提示命令不存在,确认当前终端使用的是安装了 msprof-analyze 的 Python 环境。
步骤 0.3: 执行 cluster 分析生成 cluster_analysis_output
msprof-analyze cluster -m all -d <profiling_path> -o <output_path>
| 参数 | 说明 |
|---|---|
-d / --profiling_path | 必选。集群性能数据根目录,需包含同一次采集的多张卡 profiling 子目录(如 dp0_pp0_tp0_..._rank0_..._ascend_pt/)。不要混入不同批次或缺失 rank,否则通信矩阵映射可能不准确 |
-m / --mode | 可选。communication_matrix(通信矩阵)/ communication_time(通信耗时)/ all(默认,两者都解析)。比对场景建议 all |
-o / --output_path | 可选。自定义输出路径;未指定时在 -d 目录下自动创建 cluster_analysis_output |
--force | 可选。跳过属主、权限、文件过大(csv>5GB / json>10GB / db>8GB)校验,强制执行 |
生成后的输出文件:
- TEXT 输入:
cluster_step_trace_time.csv(迭代耗时拆解)、cluster_communication.json(通信算子耗时)、cluster_communication_matrix.json(通信矩阵)、communication_group.json(通信域信息) - DB 输入:
cluster_analysis.db(包含 ClusterBaseInfo、ClusterStepTraceTime、CommunicationGroupMapping、ClusterCommunicationTime、ClusterCommunicationBandwidth、ClusterCommunicationMatrix 表)
对两个集群分别执行生成。注意事项:
- 采集时
profiler_level需为 Level1 及以上,否则无通信小算子数据,仅能汇总 step_trace_time(通信带宽/矩阵缺失) - 支持仅转存
analysis.db+profiler_info_*.json(保留目录结构)用于超大集群分析 - 生成后回到阶段 1,使用新产生的
cluster_analysis_output作为数据源
阶段 1: 数据识别与全景提取(对集群 A、B 分别执行)
步骤 1.1: 识别数据格式
- DB 模式:路径下存在
cluster.db(旧格式)或cluster_analysis_output/cluster_analysis.db(新格式) - TEXT 模式:路径下存在
cluster_step_trace_time.csv+communication_group.json - 混合模式:同时存在 DB 和 TEXT 文件(优先使用 DB)
步骤 1.2: 提取全景数据
DB 模式 SQL 查询(参考 references/db_schema.md 获取完整表结构):
-- 1. 集群基础信息
SELECT key, value FROM cluster_base_info;
-- 或新格式: SELECT * FROM CommunicationGroupMapping;
-- 2. Step 时间全景(核心表)
SELECT step_id, AVG(compute_time), AVG(pure_communication_time),
AVG(overlap_communication_time), AVG(communication_time),
AVG(free_time), AVG(stage_time), AVG(bubble_time), AVG(preparing)
FROM step_statistic_info GROUP BY step_id;
-- 新格式表名: ClusterStepTraceTime, 字段名略有不同
-- 3. 各 Rank 时间明细
SELECT rank_id, step_id, compute_time, communication_time, free_time, stage_time
FROM step_statistic_info ORDER BY step_id, rank_id;
-- 4. 通信时间汇总(如有数据)
SELECT hccl_op_name, AVG(elapsed_time), AVG(transit_time), AVG(wait_time),
AVG(synchronization_time), AVG(idle_time)
FROM ClusterCommunicationTime GROUP BY hccl_op_name;
-- 5. 通信带宽汇总(如有数据)
SELECT band_type, AVG(bandwidth), AVG(transit_size), AVG(transit_time)
FROM ClusterCommunicationBandwidth GROUP BY band_type;
-- 6. 通信矩阵(如有数据)
SELECT src_rank, dst_rank, transport_type, AVG(bandwidth), AVG(transit_size)
FROM ClusterCommunicationMatrix GROUP BY src_rank, dst_rank, transport_type;
-- 7. Rank/Host 总数
SELECT COUNT(DISTINCT rankId) FROM RankDeviceMap;
SELECT COUNT(DISTINCT hostUid) FROM HostInfo;
TEXT 模式文件解析(参考 references/text_schema.md):
- 读取
cluster_step_trace_time.csv:解析 Step/Type/Index/Computing/Communication/Free/Stage 等列 - 读取
communication_group.json:解析 collective/p2p 通信组信息,提取 rank 列表作为基础信息 - 读取
cluster_communication.json(如有):解析通信算子耗时统计,提取 Top10 算子的 elapsed/transit/wait/sync 时间 - 读取
cluster_communication_matrix.json(如有):解析 4 层嵌套 JSON 通信矩阵,提取 src_rank/dst_rank/transport_type/bandwidth/transit_size,按传输类型(LOCAL/HCCS/RDMA)聚合带宽 - 路径检测:支持
data_dir/cluster_step_trace_time.csv或data_dir/cluster_analysis_output/cluster_step_trace_time.csv两种结构 - 单位注意:TEXT 模式 JSON 中时间单位为 ms(毫秒),DB 模式为 μs(微秒),脚本需自动适配
步骤 1.3: 内嵌进阶分析(提取时同步执行,默认开启)
提取器 cluster_data_extractor.py 生成单集群 JSON 时会同步执行进阶分析,并把结果嵌入 JSON 的 advanced_analysis 字段——进阶分析在比对之前即已完成,比对报告自动携带渲染,无需额外操作。
默认执行的特性(scope=single,记录含 embedded: true):
- free_analysis:空闲时间成因聚合(Reason 分布、次数、总时长、占比)
- communication_bottleneck:通信瓶颈算子 Top N(慢/快 Rank 耗时差与推断原因)
行为说明:
- 提取器自动探测 msprof-analyze 可用性与数据前置条件;特性不可用时在
advanced_analysis.features[].status标注原因(failed / not_available),不阻塞提取主流程 - 工具输出缓存于
<data-dir>/advanced_work/,重复提取时默认复用(status=cached);用--force-advanced忽略缓存重跑 - 成功/缓存命中的 feature 会同步生成中文「分析与判断」,写入
features[].analysis字段(由scripts/advanced_insights.py规则化生成),随单集群 JSON 落盘;HTML/MD 比对报告渲染时直接复用,保证口径一致
内嵌进阶分析可选参数:
| 参数 | 说明 |
|---|---|
--no-advanced | 跳过内嵌进阶分析(仅提取基础数据) |
--msprof <path> | 指定 msprof-analyze 可执行文件名/路径 |
--advanced-work-dir <path> | 指定进阶分析工具输出目录(默认 <data-dir>/advanced_work/) |
--advanced-top-num <n> | communication_bottleneck 的 Top N 数量(默认 10) |
--force-advanced | 忽略缓存,强制重跑进阶分析 |
双集群时间拆解对比(cluster_time_compare_summary)不属于内嵌范围,如需该结果见阶段 2.5。
步骤 1.4: 生成 MD 总结文件
对每个集群,将提取的全部数据组织为结构化 Markdown,保存到该集群的原始数据文件夹下(如 {data_dir}/cluster_data_summary.md)。
双集群比对 MD 报告无需手工编写:阶段 2 使用
scripts/generate_cluster_md.py自动生成(章节与 HTML 比对报告对应,含进阶分析「分析与判断」与「综合判断」),全部内容中文输出。
MD 文件必须包含以下章节:
- 集群概览:Rank 数量、Step 数量、采集时间、并行策略(TP/PP/DP)、算法类型
- Step 时间统计:各 Step 的平均计算/通信/空闲/Stage 时间(μs 和 ms 双单位)
- Rank 级明细:每个 Rank 在各 Step 的时间分解表
- 负载分布分析:计算 vs 通信 vs 空闲的占比数据
- 通信分析(如有数据):通信算子耗时 Top10、带宽汇总、通信矩阵
- 异常 Rank 识别:偏离均值超过 10% 的 Rank(慢卡/快卡)
- 数据完整性说明:哪些表有数据、哪些表为空
单位换算规则:原始数据单位为微秒(μs),报告展示时需除以 1000 转换为毫秒(ms)。
阶段 2: 计算差异并渲染比对报告(HTML / MD 双格式)
HTML 使用模板:templates/cluster_compare_report.html;MD 使用脚本:scripts/generate_cluster_md.py(复用同一套指标计算,与 HTML 结论一致)
- 计算差异:
- 整体差值:ΔStage = Stage_B − Stage_A
- 一级归因(贡献度,带显著性门控):当 |ΔStage / Stage_A| < 1% 时 ΔStage 趋近 0,各分项变化互相抵消,贡献度比值会爆炸(如 368.5% / −123.4%)且不可解释,此时贡献度降级为 "—" 并在 KPI 卡说明原因;仅 |增幅| ≥ 1% 时计算:
- 计算贡献度 = (ΔCompute / ΔStage) × 100%
- 通信贡献度 = (ΔComm / ΔStage) × 100%
- 空闲贡献度 = (ΔFree / ΔStage) × 100%
- 贡献度可超 100% 或为负(分项变化方向相反、相互抵消所致),解读时以"占 Stage 变化比例、各分项可相互抵消"口径说明,不得简单当作"占比"
- 二级算子归因:通信时间差值 Top5 算子
- 带宽劣化:各 band_type 均值带宽下降百分比 + 有效吞吐(总传输量/总传输时间,SUM/SUM 或 avg_size/avg_time)对比
- 渲染比对报告,报告包含:
- 核心 KPI 卡片:Stage 耗时增幅、通信变化贡献度(带显著性门控与配色说明)、计算变化贡献度、带宽变化(均值口径 + 有效吞吐口径)、集群规模对比
- Step 核心耗时对比:并排柱状图(集群A vs 集群B),按 Step 分组
- 负载类型转换:双饼图对比(A 的计算/通信/空闲占比 vs B 的占比)
- 劣化归因瀑布图:计算/通信/空闲对总劣化的贡献度分解
- 通信算子差异 Top10:表格 + 柱状图,展示耗时差最大的算子
- 带宽对比柱状图:各 band_type 的 A vs B 带宽对比
- Rank 级差异热力图:每个 Rank 的 Stage 时间差值
- 劣化根因总结 & 行动建议:P0/P1/P2 优先级问题列表
- 进阶分析章节:
{{ADVANCED_ANALYSIS_HTML}}自动合并渲染两路结果——集群 A/B JSON 内嵌的advanced_analysis(阶段 1 提取时已同步执行,同名 feature 按集群归属 A/B 对照展示)与--advanced外部 JSON(含双集群时间拆解对比);两者皆无时显示引导卡;每个进阶 feature 卡片尾部渲染中文**「分析与判断」块,A/B 对照展示时追加「综合判断(基准 vs 对比)」**块(结论由scripts/advanced_insights.py规则化生成,优先复用单集群 JSON 内嵌analysis字段)
- 生成 MD 比对报告(与 HTML 同步,结论一致):
MD 报告含八章节:一、综合结论 / 二、核心指标对比 / 三、劣化根因 / 四、行动建议 / 五、Step 级耗时对比 / 六、Rank 级差异 / 七、通信算子差异 / 八、进阶分析(含「分析与判断」与「综合判断(基准 vs 对比)」),全部中文输出。python scripts/generate_cluster_md.py --data-a <a.json> --data-b <b.json> --output compare.md # 可选: 追加 --advanced 外部进阶分析 JSON; --top-ranks 控制 Rank 级差异表行数(默认 20,0=全部) python scripts/generate_cluster_md.py --data-a <a.json> --data-b <b.json> --output compare.md --advanced <advanced_analysis.json>
阶段 2.5: 进阶分析补充(msprof-analyze -m,可选)
free_analysis / communication_bottleneck 已在阶段 1 内嵌完成(提取单集群 JSON 时同步执行),比对报告会自动合并渲染,无需重复执行。本阶段仅作为可选补充手段,用于获取单集群内嵌不包含的双集群时间拆解对比:
- 运行
scripts/run_advanced_analysis.py --cluster-a <A数据目录> --cluster-b <B数据目录> --output <advanced_analysis.json> - 脚本自动探测工具可用性、双集群数据格式与前置表,按需补跑
cluster_time_summary,再执行进阶特性:- cluster_time_compare_summary(仅 DB,--bp 指基准):双集群 rank/step 级时间指标对比,输出总体指标均值差与 Top 差异 Rank
- free_analysis / communication_bottleneck:对集群 A、B 分别执行,结果标注
cluster: A/B,工具输出目录隔离在<work-dir>/cluster_A/、<work-dir>/cluster_B/;命中阶段 1 内嵌缓存时直接复用(status=cached),用--force忽略缓存重跑
- 输出 JSON 后重新生成报告:
scripts/generate_cluster_report.py ... --advanced <advanced_analysis.json>(HTML)或scripts/generate_cluster_md.py ... --advanced <advanced_analysis.json>(MD),报告将内嵌结果与外部结果自动合并渲染(time_cmp 取外部结果;单集群 feature 优先取内嵌,缺失时回退外部) - 特性不可用时(无 DB、缺表、工具缺失)脚本会标注 reason,报告对应卡片显示原因,不阻塞主报告
阶段 3: 输出与交付
- 单集群 MD 总结文件保存到各集群的原始数据文件夹(每个集群一份)
- HTML 比对报告保存到用户指定输出路径,未指定时保存到集群 A 的数据目录下(如
cluster_compare_report.html) - MD 比对报告与 HTML 同步生成(
scripts/generate_cluster_md.py),输出路径未指定时与 HTML 同目录(如cluster_compare_report.md) - 向用户展示报告摘要(关键发现 + 数据链接)
数据格式兼容
本 skill 必须同时兼容两种数据格式:
| 维度 | DB 模式(旧格式) | DB 模式(新格式) | TEXT 模式 |
|---|---|---|---|
| DB 文件名 | cluster.db(根目录) | cluster_analysis.db(cluster_analysis_output/ 下) | 无 DB 文件 |
| Step 时间表 | step_statistic_info | ClusterStepTraceTime | cluster_step_trace_time.csv |
| 通信时间表 | communication_time_info | ClusterCommunicationTime | cluster_communication.json |
| 通信带宽表 | communication_bandwidth_info | ClusterCommunicationBandwidth | cluster_communication_matrix.json(按传输类型聚合) |
| 通信矩阵表 | communication_matrix | ClusterCommunicationMatrix | cluster_communication_matrix.json(4 层嵌套 JSON) |
| 基础信息表 | cluster_base_info | CommunicationGroupMapping | communication_group.json |
| 字段名差异 | compute_time | computing | Computing |
| 字段名差异 | communication_time | communication | Communication |
| 字段名差异 | free_time | free | Free |
| 字段名差异 | stage_time | stage | Stage |
| 字段名差异 | rank_id | index(SQL 保留字,需双引号包裹) | Index |
| 时间单位 | μs | μs | μs(CSV)/ ms(JSON 通信数据) |
| 路径检测 | data_dir/cluster.db | data_dir/cluster_analysis_output/cluster_analysis.db | data_dir/cluster_step_trace_time.csv 或 data_dir/cluster_analysis_output/cluster_step_trace_time.csv |
字段映射策略:提取数据时先检查表存在性和列名,自动适配对应字段名。
脚本工具
数据提取脚本
scripts/cluster_data_extractor.py:自动识别数据格式,执行 SQL/CSV 提取,输出 JSON 格式的结构化数据。默认在提取时同步执行进阶分析(free_analysis / communication_bottleneck),结果嵌入 JSON 的 advanced_analysis 字段(比对前即已获得);特性不可用时标注原因,不阻塞提取。
python scripts/cluster_data_extractor.py --data-dir <path> --output <output.json>
内嵌进阶分析可选参数(单行追加执行):--no-advanced(跳过内嵌进阶分析)、--msprof <path>(指定工具路径)、--advanced-work-dir <path>(工具输出目录,默认 <data-dir>/advanced_work/)、--advanced-top-num <n>(Top N,默认 10)、--force-advanced(忽略缓存重跑)。
比对报告生成脚本
scripts/generate_cluster_report.py:基于两个集群的提取数据生成 HTML 比对报告(仅支持比对模式)。内置带宽劣化智能解读:均值带宽下降但有效吞吐一致时判定为"统计口径差异"(绿色提示),不作为链路劣化依据;仅有效吞吐下降 ≥5%(轻微)/ ≥15%(严重)才判定为真实劣化。贡献度 KPI 带显著性门控:|ΔStage/Stage_A| < 1% 时展示 "—" 并说明原因,避免 ΔStage 趋近 0 时贡献度爆炸(368.5% / −123.4%)。进阶分析自动合并渲染:默认读取 data-a/data-b JSON 内嵌的 advanced_analysis(阶段 1 提取时已同步执行),同名 feature 按集群归属在同一卡片内对照展示(集群A · 基准 / 集群B · 对比);--advanced 外部 JSON 作为补充来源合并(time_cmp 仅外部提供;单集群 feature 优先取内嵌,缺失时回退外部);两者皆无时显示引导卡。进阶分析自动附带中文分析与判断:每个进阶 feature 卡片尾部渲染「分析与判断」块,A/B 对照时追加「综合判断(基准 vs 对比)」块,结论由 scripts/advanced_insights.py 规则化生成(优先复用单集群 JSON 内嵌 analysis 字段),全部中文输出。
python scripts/generate_cluster_report.py --data-a <a.json> --data-b <b.json> --output compare.html
# 可选: 追加 --advanced 外部进阶分析 JSON(补双集群时间拆解对比; 单集群 feature 缺失时亦作回退)
python scripts/generate_cluster_report.py --data-a <a.json> --data-b <b.json> --output compare.html --advanced <advanced_analysis.json>
中文分析与判断生成器
scripts/advanced_insights.py:规则化中文「分析与判断」生成模块,被提取器(写入单集群 JSON 内嵌 analysis 字段)、HTML 报告与 MD 报告三方共享,保证同口径。能力:
- 对 free_analysis / communication_bottleneck / cluster_time_compare_summary 按规则生成中文结论:首要成因与占比阈值(≥50% 高度集中 / ≥30% 主要成因)、Rank 影响面(≤4 局部 / >4 全局)、瓶颈算子集中度、慢卡集合比对(同一卡=硬件嫌疑 / 不重叠=调度负载)等
zh_text()将工具原始英文原因/指标翻译为中文术语(短语级映射 → 全词映射 → 标识符保留原文)compare_insights()生成 A/B 对照的综合判断(双侧数据齐备才输出)- 单集群 feature 优先复用内嵌
analysis字段(最多 8 条),缺失时按 data 规则即时计算
MD 比对报告生成脚本
scripts/generate_cluster_md.py:基于两个集群的提取数据生成 Markdown 比对报告,与 HTML 报告共用同一套指标计算与判定逻辑(直接复用 generate_cluster_report.py 的函数),结论一致。输出八章节:一、综合结论 / 二、核心指标对比 / 三、劣化根因 / 四、行动建议 / 五、Step 级耗时对比 / 六、Rank 级差异 / 七、通信算子差异 / 八、进阶分析(含「分析与判断」与「综合判断(基准 vs 对比)」),全部中文输出。
python scripts/generate_cluster_md.py --data-a <a.json> --data-b <b.json> --output compare.md
# 可选: --advanced 外部进阶分析 JSON(补双集群时间拆解对比); --top-ranks 控制 Rank 级差异表行数(默认 20,0=全部)
python scripts/generate_cluster_md.py --data-a <a.json> --data-b <b.json> --output compare.md --advanced <advanced_analysis.json> --top-ranks 20
进阶分析编排脚本
scripts/run_advanced_analysis.py:可选补充脚本——探测 msprof-analyze 与双集群数据格式,编排进阶特性并解析结果为 JSON(供 generate_cluster_report.py --advanced 合并渲染)。单集群特性(free_analysis / communication_bottleneck)对集群 A、B 分别执行,结果标注 cluster: A/B,工具输出目录隔离在 <work-dir>/cluster_A/、<work-dir>/cluster_B/,命中提取器内嵌缓存时直接复用;双集群特性(cluster_time_compare_summary)仅此脚本提供。特性不可用时仅标注原因不阻塞。支持 --dry-run(只探测不执行)、--force(忽略缓存重跑)、--msprof(指定工具路径)、--top-num(Top N 数量)、--work-dir(工具输出目录,默认 <output 同目录>/advanced_work)。
python scripts/run_advanced_analysis.py --cluster-a <a数据目录> --cluster-b <b数据目录> --output <advanced_analysis.json>
指标校验脚本
scripts/verify_extracted_metrics.py:对提取 JSON 做快速交叉校验,替代内联 python -c。输出 Step/Rank 均值、Rank 离散度(慢卡线索)、各带宽类型均值带宽与有效吞吐、Total 汇总行残留检查,双文件模式下自动给出带宽口径判定提示。
python scripts/verify_extracted_metrics.py --data-a <a.json> [--data-b <b.json>]
当脚本不可用时,按照上述工作流手动执行 SQL 查询、计算差异、参考 HTML 模板构造报告。
HTML 报告设计要求
比对报告模板必须满足:
- 自包含:单个 HTML 文件,内联 CSS/JS,无外部依赖(ECharts 通过 CDN 引入)
- 数据驱动:模板中使用
{{占位符}}标记数据插入点,脚本替换后生成最终报告 - 交互式图表:使用 ECharts 渲染所有图表(柱状图/饼图/线图/瀑布图)
- 响应式:适配不同屏幕宽度
- 专业视觉:深色标题栏、卡片式布局、颜色梯度表格、状态标签(正常/警告/严重)
- 中文界面:所有标题、标签、描述使用中文
注意事项
- 原始数据单位为微秒(μs),展示时转换为毫秒(ms),保留 2 位小数
- Windows 下禁止内联
python -c:PowerShell 的引号规则与 bash 不同,嵌套引号极易冲突报错。任何临时校验/计算逻辑必须落盘为独立.py文件再执行;常规校验优先使用scripts/verify_extracted_metrics.py - 带宽解读纪律:均值带宽(AVG(bandwidth))对算子流量构成(包大小分布)敏感,跨集群比较时必须以有效吞吐(总传输量/总传输时间)为准;均值降而吞吐平 → 口径差异,均值与吞吐同降 → 真实劣化
- Total 汇总行:DB 模式通信时间/带宽表中可能存在 Total 汇总行(如
Total Op Info),提取与算子级对比前必须过滤(提取器已内置过滤,报告生成器含防御性二次过滤) - 贡献度解读纪律:贡献度 = ΔX/ΔStage 是"占 Stage 变化量的比例",可超 100% 或为负(各分项方向相反、相互抵消),不是"占总时间比";|ΔStage/Stage_A| < 1% 时贡献度无统计意义,报告已降级为 "—",向用户解读时不得将门控值当作真实占比
- 进阶分析流程:free_analysis / communication_bottleneck 在提取单集群 JSON 时内嵌执行(默认开启,缓存于
<data-dir>/advanced_work/,比对前即已获得结果);cluster_time_compare_summary 仅 DB 模式可用(需 ClusterTimeSummary 表,缺失时脚本自动补跑 cluster_time_summary),仅通过 run_advanced_analysis.py 提供;free_analysis / communication_bottleneck 走--export_type text输出 CSV;工具缺失或特性不可用时按 JSON 中的 status/reason 向用户说明,不要自行伪造分析结论 - 全量中文输出:比对报告(HTML/MD)与进阶分析的所有分析、成因、推断原因均以中文呈现;工具原始英文术语由
advanced_insights.py的zh_text()映射为中文(短语级 → 全词级 → 标识符保留原文),报告中不得保留未翻译的英文结论 - 分析与判断同口径:单集群 JSON 内嵌
features[].analysis、HTML 报告「分析与判断」块、MD 报告分析判断三者同源(advanced_insights.py),报告仅渲染不伪造;结论为规则化输出(占比阈值 / Rank 影响面 / 慢卡集合比对),向用户解读时引用原始依据数据 - 通信表可能为空(如 profiler_level 低于 Level1、单卡场景或未采集通信数据),报告中需标注"无通信数据"
- 并行策略信息从
cluster_base_info的algorithm/dp_size/pp_size/tp_size字段或profiler_metadata.json获取 - 慢卡识别阈值:Stage 时间偏离所有 Rank 均值超过 10% 即标记为异常
- 比对报告中,集群 A 为基准(正常),集群 B 为对比(异常),所有差值 = B − A
- Ascend 950PR&950DT系列 CCU 场景不支持采集通信矩阵和通信算子带宽数据,此类数据缺失属正常现象
Signals
- GitHub stars
- 31
- Forks
- 8
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
ascend-cluster-compare- Source
- github.com/kali20gakki/msagent