本文へ移動
cccskills
無料GitHub で公開

performance-optimization

优化域入口(L2):拿到**已明确的瓶颈点 / 瓶颈标签**后,按标签把任务**分发**到四个优化模块 (DiT 计算 `dit-perf-opt` / DiT 通信 `dit-parallel-opt` / VAE `vae-opt` / host `host-opt`),并给出域内**最小前置集**与**域级验收口径**(性能入库口径引 `perf-gate`、精度判据引 `accuracy-gate`)。 **本技能不再承载选档与实施内容**(Step 2–4 闭环、特性档位选择、组合试验已全部归 `dit-perf-opt`)。 入口信号(任一即可触发):① 用户或编排层已给出**瓶颈点/瓶颈标签**("瓶颈已经明确,按这个点优化"); ② **框架侧特性没落地**(该开的开关/特性没开,需要先判走哪个模块)。 near-miss(看似相关但不属本技能): - **瓶颈未明**("这个模型怎么加速""怎么跑通""采个 profile",还要先定位)→ 先走 `model-auto-optimization`(唯一有分析权的一方),本入口**不接受未定位的任务**。 - 问"要不要开量化、开哪一档""量化/稀疏/Cache 怎么选怎么开" → `dit-perf-opt`(选档与实施在模块层)。 - 多卡并行形态 / 通信掩盖 / TP·offload → `dit-parallel-opt`;VAE·TAE 解码段 → `vae-opt`;交付搬运 / 装载预热等固定开销 → `host-opt`。 - 需要改本仓代码(pattern / 算子 / 测试 / 文档)→ `dev-workflow`。 由 model-auto-optimization 的阶段路由与用户直接声明瓶颈两条路径触发。

インストール方法を見る

含まれるファイル(3)

  • SKILL.md8.6 KB
  • evals/evals.json3.2 KB
  • references/dispatch-table.md4.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

优化域入口(分发与前置)

定位

本技能是优化域入口(L2):唯一职责是把已明确的瓶颈点分发给正确的模块,并把域内的 前置集与验收口径固定下来。层级依据:L3 模块不放"业务顺序 / 门禁节奏 / 走哪个模块的姿势 决策",这些正归 L2 入口;"选哪个特性档"是能力选择,归 L3 模块。

本技能不做的事:不定位瓶颈(归 model-auto-optimization)、不做占比与门限分析(归 model-auto-optimization 的阶段账)、不选特性档位 / 不开特性 / 不做组合试验(全部归各模块)、 不定义验收标准(归两个验收标准技能)。

0. 入口信号

进入本入口(任一):

#信号说明
①瓶颈点已明确用户带一句实测锚点声明,或编排层已交付瓶颈标签
②框架侧特性没落地该开/该验的特性开关未使能,需先判"走哪个模块把它落地"

不进入本入口(先做别的):

  • 瓶颈未明 → model-auto-optimization(编排层是唯一有分析权的一方)
  • 要改本仓代码 → dev-workflow
  • 只要单算子实现级实测对比 → benchmark-dev

1. 输入:瓶颈标签(只消费,不定义)

唯一输入是瓶颈标签。标签枚举(DiT-计算受限 / DiT-通信受限 / 非DiT-解码段 / 非DiT-host段 / 一致性不达标)与门限口径(含 10% 门限的分母 / 测点 / 步数档)单一真源为 model-auto-optimization/references/bottleneck-labels.md。

本技能只引用不复制:不在本文件另列标签表、不另写门限数字——两处定义必然漂移。 标签之外的细分类(MatMul / Attention / Norm / 生效判据…)由对应模块在域内自行映射。

2. 分发路由(入口核心动作)

按标签 → 模块 → 产物 → 验收判据查 references/dispatch-table.md。

瓶颈标签分发目标
DiT-计算受限dit-perf-opt(需要新能力时再走 pattern-dev / operator-dev)
DiT-通信受限dit-parallel-opt
非DiT-解码段vae-opt
非DiT-host段host-opt
一致性不达标accuracy-gate(判据)→ 排障

分发后由模块负责实施与自证生效;本入口不重复模块内的步骤,只在模块回流"需要新能力 / 需要改框架 / 瓶颈判定有误"时改道或退回编排层。

标签缺失或与实测不符(模块复工发现真正瓶颈在别处)→ 退回 model-auto-optimization 重新定位,不得在本入口内改判标签。

3. 最小前置集

三项全满足才可开工,缺任一 → 退回 model-auto-optimization 走 S0:

  1. 环境可用:import mindiesd 成功,或目标框架可 serve;
  2. 模型已跑通一轮:端到端可产出结果(不是"能 import"就算);
  3. 有 baseline 数字:同口径的端到端 / 阶段账基线(无基线则后续任何收益都不可归因)。

不含 S0 的安装与权重准备(那归 env-install);本入口不代做环境安装。

4. 锚点要求(防"优化错对象")

用户直接声明瓶颈时必须带一句实测锚点——阶段账某一行、或某 kernel 的占比读数。 理由:声明与实测常不符(常见误判:用户报"解码慢",按 step_trace_time 分解后瓶颈常在 DiT 段—— 占比须现场实测)。

  • 有锚点 → 按锚点映射标签(映射口径见 bottleneck-labels.md),进入 §2 分发;
  • 无锚点 → 退回 model-auto-optimization 做定位,不由本入口自己猜,也不凭"感觉慢"选档。

编排层交付的标签同样附锚点,便于复核与回溯。

5. 域级验收口径

分发出去的任务,回流时按本节口径收口(口径本身归各标准技能,本入口只固定"必须过哪几关"):

  • 性能:库内数字一律按 perf-gate 的同窗 A/B 口径取;跨窗口绝对值不可比; 只有验收结果才能写入总览表(报表契约见 model-auto-optimization/references/report-contract.md)。
  • 噪声门限:与基线差距 < 3% 视为噪声,不下结论(阈值在本技能单点维护,其它技能只引用)。
  • 精度:未使用有损特性时一致性验收强制调用 accuracy-gate(三级:逐位 → 跨配置数值门 + md5 → 质量门);有损项另过质量门 (../accuracy-gate/references/quality-gate.md + 仓库 evals/)。
  • 一致性不达标(标签 一致性不达标)→ 由 accuracy-gate 给判据,再转对应对象的 troubleshooting-{对象}.md 排障流程。

停止条件(域级口径,单点维护于本技能)

满足任一条件即停止优化循环:

  1. 目标达成: MindIE-SD compiled 在目标硬件上已满足性能预期
  2. 噪声范围: 与 baselines 差距 < 3%,继续优化无统计意义
  3. 外部瓶颈: 根因在 CANN / TorchNPU / HCCL 而非 MindIE-SD 代码
  4. 硬件瓶颈: 已改善但受限于 NPU 物理显存 / 带宽上限

6. 独立触发时的交付物

用户直接给瓶颈点、不经编排层时,本入口产出域级优化报告:瓶颈锚点 + 分发结论 + 各模块产物 指针 + 验收结论。若要进 model-auto-optimization 的总览表,按编排层契约(报表结构 / 白名单 / [profile].domain 记法)回填,收口方写清。

Reference Files

  • references/dispatch-table.md — 加载时机: 拿到瓶颈标签、决定分发目标与验收判据时 (标签 → 模块 → 产物 → 验收口径;路由含域外标准技能)
  • ../model-auto-optimization/references/bottleneck-labels.md(跨技能,单一真源)— 加载时机: 需要标签枚举原文或 10% 门限口径时(只引用,不复制)
  • ../accuracy-gate/references/quality-gate.md(跨技能,质量门本体归属精度验收标准)— 加载时机: 有损项 / 闭环端到端质量判定时(定量 + 视觉伪影 + off-identity;判定标准与工具在 仓库 evals/)
  • ../perf-gate/SKILL.md(跨技能)— 加载时机: 报数、入库与验收口径核对时
  • dit-perf-opt/SKILL.md(域内模块,非本 skill 文件)— 加载时机: 确认"DiT 计算侧选档/组合试验/ 5 步闭环"的具体内容时(入口不再复述)

维护与更新

  • 触发:优化模块增减 / 改名、瓶颈标签枚举或门限口径调整、验收标准接线变化时更新本 skill 与 references/dispatch-table.md;改名时本入口的模块名清单与 dispatch-table.md 必须同步。
  • 校验:新增标签须同时出现在 bottleneck-labels.md、本入口分发表与 dispatch-table.md,否则视为孤儿标签。
  • 与 dit-perf-opt 的 description 必须互斥:入口只讲分发/前置/锚点/验收,选档与实施描述只在模块侧出现。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

**精度验收标准**:凡是"改动不应改变结果"的场合(等价替换、算子/子模块融合、并行切分、 编译与图下发、拷贝消减),都按本标准判"合格 / 不合格"——等价分层(L1 逐位 / L2 数值门 / L3 有损门)+ 三级验收序(① 同配置重跑逐位 → ② 跨配置数值门 + 产物 md5 不变 → ③ 质量门)+ 判据不达标时的排障入口。当用户说"这个算子能不能换个写法/换个 kernel/等价实现/ 无损替换""替换后结果会不会变""怎么证明逐位一致""结果不对""花屏""尾部塌了" "CPU 跑对 NPU 跑不对",或发现某个 hotspot 占了大头(例如某类算子在阶段里占 90% 以上)想动手时, 都应触发;即使用户只说"这样改有没有把结果改坏""能不能判它是无损的"也应触发。 覆盖:等价分层与判据、满足本标准的实现约定(per-shape 对拍写进实现,把索引/相位/顺序类重写 错误在首次调用抓住)、per-shape 条件性等价(同一改动在不同形状下结论可能不同)、 判据不达标 → `references/silent-failure-localization.md` 排障入口、否决案例的形态学 (换写法未换 kernel / 差异极小仍非逐位 / 等价但 OOM)、以及收益口径的归属(性能数字一律交 `perf-gate`)。 **近义分流**:选量化档 / 特性选档(要不要开量化、开哪一档)→ `dit-perf-opt`; 并行选型(USP / CP / TP 怎么切)→ `dit-parallel-opt`;本技能只判"结果是否被改变", 不负责选档与选型。

日本語の概要は準備中です。原文の説明を表示しています。

Ascend/MindIE-SD152026年10月10日 更新

NPU 图批量下发能力(aclgraph / aclgraph_ex 家族)的开发与调优。覆盖 mindiesd 的 aclgraph_backend:NPUGraph 静态 capture、全局 graph pool、 lazy capture、专用 copy stream + event 管线、shape/dtype 校验、max_entries 驱逐。 当用户需要减少 host launch 开销、静态 shape 大 batch 场景加速、 或排查 NPUGraph replay 输入不匹配问题时使用此 skill。 即使用户只提"批量下发""graph capture""图捕获"而未说 aclgraph,也应触发; pattern/Inductor 融合(default 后端)见 pattern-dev,算子本体见 operator-dev, 本技能只覆盖图批量下发。由 dev-workflow 的编译开发阶段与 model-auto-optimization 的 图下发场景指引加载。

日本語の概要は準備中です。原文の説明を表示しています。

Ascend/MindIE-SD152026年10月10日 更新

MindIE-SD 核心算子(FA/BSA/GMM/MM)性能基准工具链。使用:模型优化(model-auto-optimization 的 S1/S4 选型)中用 mindie_bench 对单算子做实现级实测,按 dtype/量化档/稀疏度/形态对比 选出最优配置(产物:选型证据;稀疏度-性能曲线供 S4 稀疏度选型);开发:benchmarks/ 工具链扩展与新算子接入测试(供 operator-dev / pattern-dev 调用)。 当用户需要对比算子实现选型、新增或修改 benchmark 代码、排查 benchmark 数据异常、 给基准加算子/指标时使用;即使用户只说"benchmark 数据不对""给基准加个算子" "对比下这几个 FA 实现哪个快"也应触发;特性级方案选档请走 dit-perf-opt (本 skill 只做实现级实测)。 由 model-auto-optimization 的 S1/S4 选型场景与 operator-dev 的算子接入验证场景调用, 亦由 dev-workflow 在基准开发时指引加载。

日本語の概要は準備中です。原文の説明を表示しています。

Ascend/MindIE-SD152026年10月10日 更新

MindIE-SD Python 代码格式与 lint 规则。当编写、格式化、lint 检查或审查 MindIE-SD 项目的 Python 代码时使用此 skill。 即使用户只提到"提个MR"或"代码好像有 lint 问题"而未明确说格式化,也应触发;Markdown 格式问题见 markdown-lint,提交/PR 规范见 mindie-sd-community-governance。 通常由 dev-workflow 在编码阶段指引加载。

日本語の概要は準備中です。原文の説明を表示しています。

Ascend/MindIE-SD152026年10月10日 更新

MindIE-SD 仓库开发总入口(侧轨)。当用户进行 MindIE-SD 的任何代码开发工作时使用此 skill—— 包括但不限于写 pattern、改测试、部署到昇腾、跑 benchmark、性能分析、多卡并行、复盘归档。 模型/三方框架自动优化类任务(非本仓代码改动)由 model-auto-optimization 入口承接, 本入口只在优化流程需要新增 pattern/算子/部署代码时承接其指向的开发子任务。 即使用户未明确提到"开发流程",只要涉及 MindIE-SD 代码改动都应触发。

日本語の概要は準備中です。原文の説明を表示しています。

Ascend/MindIE-SD152026年10月10日 更新

分布式并行策略选型与实测(USP / CP 通信掩盖 / CFG / TP/RSP/PP 概览;含拓扑相关选型 (按实测拓扑分域条件化:域内 bulk vs 跨域 head-parallel 翻转)与 AlltoAllV 缺陷绕过)。在 model-auto-optimization 中承担 S3:优先 USP、结合拓扑带宽差异选 CP,少量 step + 多 rank 验证特性开启与掩盖(产物:并行方案 + 多 rank 证据)。当用户需要多卡并行 策略选择、**序列并行形态抉择**(纯 Ulysses vs 复合 AllGather-KV×Ulysses:按 GQA / 跨域带宽 / 形态 plumbing 条件化定胜负)、**并行 × 稀疏叠加**(seam 契约:先汇聚后稀疏、 窗口偏移、块对齐、per-head 掩码;含「稀疏看似生效实则未生效」判定)、通信掩盖调优 (含**掩盖率上限**:1-1/n 何时成立、c/f 决定的真实上限、没生效的排查)、**并行方案 差异归因**(阶段 Δ 分解 / 集合通信按 communicator 归属 / 4→8 卡线性度),或排查多卡 跑不动 / 通信暴露大 / 换卡组 / 端口 bind / HCCL 带宽验证问题时使用;**并收编原并行作用域诊断**: 改了 SP/CP/Ulysses/AllGather-KV 后**不报错但结果没变/性能没变**、或小规模能跑大规模崩 (如 Ascend EE1003 coreDim 超限)时,用本技能证明"改动到底有没有生效"(判别量逐层收窄 + 两侧对照 + 日志≠生效,见 `references/scope-effectiveness-check.md`); 即使用户只说 "多卡跑不动""通信暴露大""为什么没达到 6/7 的掩盖率""CP 和 USP 该选哪个""CP 叠稀疏 怎么不生效"而未说并行,也应触发。特性档位/接口事实见 `docs/zh/features/parallelism.md` /`usp.md`(仓内真源),框架侧开启见 framework-integration; 本技能承载选型决策、monkey-patch 掩盖与多卡诊断实测。 由 dev-workflow 多卡场景触发,亦由 model-auto-optimization 的 S3 阶段触发。

日本語の概要は準備中です。原文の説明を表示しています。

Ascend/MindIE-SD152026年10月10日 更新

Ascend のスキルをすべて見る

このスキルの問題を報告する