Skip to content
cccskills
FreePublished on GitHub

pattern-dev

PyTorch Inductor pattern matcher 机制开发:扩展本仓 compile 能力(default/Inductor 后端), 或扩展三方框架自带的类似能力——Pattern 创建/注册/调试、GraphPatternEntry 手动改图、 Copy 算子(InplaceCopy/ViewCopy)消减的机制与全生命周期,含 Phase 1–7 出口证据纪律。

当用户需要写/改/调试 pattern、处理融合不命中、做 Copy/InplaceCopy 消减或注册 replacement 时 使用;即使用户只说"pattern 不生效""copy 算子变多了""compile 没融合"而未说全称,也应触发 (触发词:pattern / pattern matcher / register_replacement / GraphPatternEntry / compile 融合 / Copy 消减)。

边界:批量下发(图 capture/replay)见 aclgraph-dev;算子本体开发见 operator-dev; 框架侧特性使能/补齐见 framework-integration。

由 dev-workflow 的 pattern/compile 开发场景路由触发,亦由 model-auto-optimization 的 S1 kernel 融合(接入/compile)替换场景指向(框架侧使能不支持、需新增/适配 pattern 时)。

The English summary is being prepared. Showing the original description.

See how to install

Files included (19)

  • SKILL.md20.5 KB
  • evals/evals.json5.6 KB
  • references/benefit-rootcause-guide.md17.5 KB
  • references/copy-elimination-guide.md3.8 KB
  • references/fusion-enablement-notes.md10.3 KB
  • references/fusion-graph-forms-and-semantics.md5.9 KB
  • references/graph-comparison-guide.md3.0 KB
  • references/graph-pattern-rewrite-guide.md12.8 KB
  • references/mismatch-catalog.md10.8 KB
  • references/pattern-dev-notes.md14.8 KB
  • references/pattern-templates.md10.4 KB
  • references/registration-checklist.md3.9 KB
  • references/test-templates.md3.8 KB
  • scripts/analyze_copy_kernels.py3.2 KB
  • scripts/check_fusion_hit.py2.8 KB
  • scripts/compare_profiles.py4.9 KB
  • scripts/isolate_pattern_prefix.py3.6 KB
  • scripts/numeric_check_eager_compile.py2.2 KB
  • scripts/probe_real_graph_pattern.py4.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Pattern 开发(Inductor pattern matcher 机制)

定位(收窄后):本技能只承载 PyTorch Inductor pattern matcher 机制的开发能力—— 即「本仓 compile 能力(扩展)」与「三方框架自带的类似能力(扩展)」两侧共用的一套机制: pattern 生命周期(Phase 1–7)、GraphPatternEntry 手动改图、Copy 算子消减、出口证据纪律。 它不是编译后端全景(四后端对比在本仓未实现)、不是批量下发、不是算子本体开发:

邻近能力去向
批量下发(图 capture / replay / graph pool)aclgraph-dev
算子本体(Triton / Ascend C / Catlass …)operator-dev
框架侧特性使能 / 缺口补齐framework-integration
计时口径(warmup / 同步 / 编译预热排除)benchmark-dev/references/benchmark-guide.md
收益测量与验收口径perf-gate(测量)

入口定位:本技能是「阶段 2 · 图级适配」的实现侧。框架侧使能回路的两阶段顺序纪律 (先 API / runtime 注入 → 验证接口与数值 → 再 compile 图级适配,以及何时停在 API 阶段) 见 framework-integration/SKILL.md 分支 A「两阶段顺序纪律」;相应的适配动作清单见 references/fusion-enablement-notes.md「compile 阶段的适配动作」。未过阶段 1 出口不做 compile 适配。

生命周期

Phase 1: 模型分析 → 提取每个原语的完整代码 + 判断参数来源
Phase 2: 创建 Pattern → 先检查现有 pattern → 决定路径:
  ├─ functional API / nn.Module 参数均走 register_replacement(weight 作 pattern 输入,
  │   freeze 前窗口命中;**禁止自定义 Graph Pass**,见下)
  └─ pattern 中间夹动态 shape 节点(view 随 S/batch 变)→ GraphPatternEntry(graph-pattern-rewrite-guide.md)
Phase 3: 三段注册
Phase 4: 单元验证 → ⚠️ 仅验证代码正确性,不等同于全模型命中
Phase 5: Debug Mismatch → graph dump → 逐节点对齐 → 修正/回退
Phase 6: 集成验证 → kernel diff 确认 → 全模型回归
Phase 7: Copy 消减 → 检测 ViewCopy 翻倍 → 后端选择

每阶段有明确的工具和产出物。Phase 5 可回路到 Phase 2(当 register_replacement 框架性失败时)。


行为约束(复盘硬纪律:本 skill 开发中多次反复修正提炼,先读后做)

以下纪律来自 MiniMax-H3 w8a8 FFN fusion(mm_swiglu_mxquant,2026-09,案例见 pattern-dev-notes.md §5.2)中多次反复修正的过程教训——每条都对应一次真实返工,违反即返工:

  1. 接入载体:eager 试验可以,compile 验证不得前端绕开。新开发的算子可先 eager 接入做效果试验;但验证 compile 时,必须让融合真实发生在 compile 图内 (kernel csv 出现融合 kernel、同 seed eager vs compile 位级对比通过)——禁止在前端 (推理/dummy 脚本、wrapper、环境开关)绕开或替换 compile 路径来"通过"验证。 eager 侧辅助代码只是试验手段,验证口径始终是 compile 图真实命中。
  2. 命名:内容驱动 + pattern 命名一致 + 全链路一次完成。融合算子按其融合内容 确定名字(如 mm_swiglu_mxquant = MM + swiglu + MX 量化,不是随意临时名); 对外标识首次落码前与用户确认命名,落码后全链路一次完成(torch op / python wrapper / config key / kernel 名 / 报告 / skills)并 grep 旧名清零、重新核验; pattern 侧命名(pattern 文件、工厂类、注册函数、config flag)必须与算子本身 名字相符,禁止 pattern 用与算子无关的别名。
  3. 开关:默认不额外添加。新融合默认开启、不设开关(配置面即维护成本, 已加开关再拆是返工);确需开关/默认关时先与用户确认再落码。 确需开关时只收敛到 CompilationConfig 一个 flag(默认 True 见证据),禁止在 dummy/infer 另设 env/arg 开关;细则/现状清单见 references/fusion-enablement-notes.md。
  4. 验证载体:基于 dummy run 直接验证,无需额外构图。dummy run 运行快, compile pattern 的命中与形态验证直接基于 dummy run 的真实 compile 图 (monkey-patch apply_pattern_match_passes 注入 probe,见 graph-pattern-rewrite-guide.md §5);不另建独立测试图——本地 symbolic_trace / 单独 make_fx 构图形态与真实图不同,其命中结论不得驱动方案选择。
  5. 数值核验先行。任何图改写/融合宣称完成前先跑同 seed eager vs compile 对比确证 等价,再采 kernel diff 报收益;核验数字入报告。位级(0.0)仅当改写前后数值路径完全 等价(h3 mm_swiglu 特例);含量化融合常为 fp8 量化级近似(字节一致 98%+、 rel≈1e-3),按量化级容差 + 模型级质量门验收并标注"非位级"——细则见 references/graph-pattern-rewrite-guide.md §6。判"差异算不算错误"之前先标定该模型的 数值敏感度地板(用已知无害改动量差异再判)——见 ../perf-gate/references/measurement-discipline.md §3。

验收与推进纪律(先验收后推进,出口证据化)

与 model-auto-optimization 的 run-state/自验证回执同构但更轻:能力层不引入运行状态文件, 证据行写入实施记录 / 案例文件(pattern-dev-notes.md 或复盘归档)即可。

  • 拒收语义:每 Phase 收尾把「证据行」落记录后再宣称该 Phase 完成;缺证据、或证据与 产物矛盾 → 不宣称完成、不进入收益宣称;不自行审查代码替代验证。
  • 证据行格式(机械可查,与编排层自验证回执一致):
- Phase {n} 证据: <支撑脚本 / 日志路径>
- 命中: <PatternMatchPass replace N / check_fusion_hit 输出 / kernel csv 融合 kernel 计数>
- 数值核验: <同 seed eager vs compile 结论;位级 或 fp8 量化级标注>
- 收益判定: <采纳 / 回退 + 依据>;开关状态: <默认 True / 单一 config flag>
  • Phase 3 出口:三段注册文件 + 注册生效证据(__all__ / registry / config flag 可 grep 到);注册不可达不得进入 Phase 4。
  • Phase 4 出口:测试通过 + 记录「单测通过 ≠ 全模型命中,命中留待 Phase 6 kernel diff」。
  • Phase 6 出口:三层顺序不可跳——命中(replace N / scripts/check_fusion_hit.py 计数)→ kernel diff(融合 kernel 出现 + 原始消失)→ 全模型回归;三层全过 + 数值核验后才允许宣称 「融合完成 / 收益成立」;命中但无计数/无墙钟收益 → 按证据回退或标注不宣称。
  • Phase 7 出口:Copy 消减前后 kernel csv 对比记录(scripts/analyze_copy_kernels.py 输出)。
  • 断点接力:路径切换(Phase 5→2、Phase 4 失败回退)、收益判定等关键节点,先落一条 「当前 Phase + 已确认决策 + 未决问题」状态行再继续;上下文压缩后从记录重建。

Phase 1: 分析模型结构

在 diffusers 源码中定位目标模型的 RMSNorm / RoPE / AdaLN 的实际实现代码, 提取完整代码片段作为 pattern 和测试 model 的依据。

产出物: 每个原语的完整代码片段。额外记录: 判断参数来源——nn.Module 参数(self.weight)为 get_attr, 函数输入为 placeholder。该判断影响 pattern 签名设计(weight 收进 pattern 输入参数),不影响 路径选择——路径只有 register_replacement 与 GraphPatternEntry 两条(自定义 Graph Pass 已禁止)。

候选判定行(优化点识别 gate,进入 Phase 2 前补齐): 对每个候选 pattern 记录三要素—— ① 是否复用现有 pattern(复用决策与理由);② 期望收益类型(kernel 数减少 / 搬运消除 / 后端 选择);③ Phase 2 路径预判(register_replacement / GraphPatternEntry)。 明确不做/暂缓的候选连同理由一并记录,不静默跳过优化点识别;Phase 6 用候选判定行核对 收益归属(预期与实际不符按证据回退)。


Phase 2: 创建 Pattern + 路径选择

原则: 始终创建新文件(非侵入式),不修改现有 pattern 文件。 先检查现有 pattern 是否匹配(复用决策),Phase 5 确认不匹配后才新建。

路径选择: 由 Phase 1 的「参数来源」决定:

目标算子参数来源 / Pattern 形态Pattern 路径执行位置
functional API (F.rms_norm 等)register_replacementregister_pattern_to_pass
nn.Module (self.weight 等)register_replacement(weight 作为 pattern/replacement 的输入参数,非 get_attr)register_pattern_to_pass
pattern 中间含动态 shape 节点(view 尺寸随 S/batch 变)、或需按运行时 meta 精细校验后手动改图GraphPatternEntry + 手动改写 handler(mkldnn_fusion.py 范式)register_xxx_graph_entries(pattern_pass)
  • register_replacement 路径: 创建 PatternBase 子类(工厂+闭包),注册到 pattern_registry。 代码模板和融合 op 速查见 references/pattern-templates.md。 weight 等 nn.Module 参数如何表达:把 weight 放进 inputs() 与 pattern()/replacement() 的 参数里(meta tensor 输入,freeze 前窗口命中,见 rms_norm_pattern.py),不是写自定义 Graph Pass。
  • GraphPatternEntry 路径: 当 trace 式 pattern 把动态常量固化而永不命中时选用 (典型:view([1,S,2F]) 的 S 随 batch 变且同图并存多个 S)。手写 CallFunction 树 (全 Arg 叶子、view 尺寸 Ignored、共享子节点复用同一实例 + _users=MULTIPLE)+ handler 从 match.output_node() 反向走 producer 链手动改图。完整规则/代码骨架/ 调试方法见 references/graph-pattern-rewrite-guide.md,真图命中案例见 pattern-dev-notes.md §5.2。

⛔ 禁止:自定义 FX Graph Pass(手写 graph traversal pass)。历史上曾有把 "get_attr 权重无法用 register_replacement → 手写 遍历 FX graph 节点改图"当作解法的做法,该做法是错的:在目标 torch 版本上复核 freeze 窗口形态 (以真图 dump 为准,勿沿用跨版本结论) —— 若 nn.Module 权重在 pattern 运行窗口仍是 placeholder,用 register_replacement 双参数 pattern(weight 作输入)即可命中,无需绕过 pattern matcher;确需手动改图的场景走 GraphPatternEntry(pattern matcher 原生 API, 规则见 references/graph-pattern-rewrite-guide.md)。 不得新建手写 FX graph traversal pass(含在 PatternMatchPass 里加 _rewrite_* 方法遍历 graph.nodes 的做法)。


Phase 3: 三段注册

总是 3 个文件(全部是代码追加):

  1. patterns/__init__.py — __all__ + from .xxx_pattern import XxxPatternGroup
  2. passes/__init__.py — pattern_registry 字典追加
  3. compiliation_config.py — FusionPatterns dataclass 追加 enable_xxx: bool = True

命名规范: config key 使用 enable_{model}_{op} 格式。检查清单见 references/registration-checklist.md。


Phase 4: 单元验证

Test Model 的 forward 与 Phase 1 提取的代码完全一致。 验证标准: cosine_similarity(compiled, original) > 2^-7。

⚠️ 单元测试通过 ≠ pattern 命中了模型。测试 model 与 pattern 共享相同代码 → 必然匹配。 全模型匹配需 Phase 6 的 kernel diff 最终确认。 若 pattern 漏了 nn.Module 权重(weight 未收进 pattern 输入参数,真实图为 get_attr 形态)—— 单元测试仍通过但全模型静默失败,见 mismatch 类型 7。

测试组织与模板见 references/test-templates.md。


Phase 5: Debug Mismatch

若 Phase 4 通过但全模型未命中:

  1. Dump 模型 traced FX graph → 保存为文本
  2. 定位目标算子子图 → 逐节点对齐 pattern → 定位第一个不匹配节点
  3. 对照 mismatch 类型修正

路径 A: 修正 register_replacement pattern(类型 1-6)

修正 pattern 代码使之与模型 graph 一致,重新部署。详见 references/mismatch-catalog.md 类型 1-6。

路径 B: 修正参数来源(类型 7 —— placeholder vs get_attr)

当 mismatch 原因为 placeholder vs get_attr(mismatch 类型 7),不要实现自定义 FX graph traversal pass(已禁止,见 Phase 2 ⛔)。正确修法:

  1. weight 作 pattern 输入参数:把 nn.Module 的 weight/bias 放进 inputs() 与 pattern()/replacement() 参数(meta tensor 输入),freeze 前窗口可命中—— 先在目标 torch 版本上复核 freeze 窗口形态(真图 dump 为准):权重在 pattern 运行窗口 是 placeholder 而非 get_attr 时即按此写(参考 patterns/rms_norm_pattern.py / patterns/minimax_h3_rmsnorm_pattern.py)。
  2. 若确需手动改图(如 pattern 中间夹动态 shape 节点)→ 走 GraphPatternEntry (见 references/graph-pattern-rewrite-guide.md),不手写 pass。

操作指南: references/graph-comparison-guide.md。


Phase 6: 集成验证

依次通过三层验证,顺序不可跳:

层级方法确认内容
1. Pattern 命中graph dump + 日志PatternMatchPass replace N 增加
2. Fusion kernelprofiling → kernel_details.csv融合 kernel 出现 + 原始 kernel 消失
3. 全模型回归dummy run --compile推理正常完成且无 crash

Kernel 级 diff 验证(比 pattern 日志更可靠;方法单点在本节——copy-elimination-guide.md §2、 benefit-rootcause-guide.md Step 1、pattern-dev-notes.md §5 只引用不复制):

  1. 分别采集 eager 和 compile 的全模型 profiling(--profile)
  2. 从 ASCEND_PROFILER_OUTPUT/kernel_details.csv 按 kernel 名称聚合耗时
  3. 对比 eager_only(被融合的原始算子)和 compile_only(新增的融合 kernel)
  4. 同名 kernel 耗时差排序 → 定位编译开销

一键执行(scripts/compare_profiles.py,含算子族聚合 + 逐 kernel delta):

python scripts/compare_profiles.py --eager eager/kernel_details.csv --compile compile/kernel_details.csv

Kernel 名称确认:

  • RMSNorm → rms_norm / RmsNorm
  • RoPE → npu_rotary_mul / RotaryMul
  • AdaLN → adaln / adln
  • GELU → FastGelu

Phase 7: Copy 算子消减(default/Inductor 路径)

Pattern 匹配成功后检查 Copy 算子膨胀。default 后端的 aot_autograd functionalization 将 view/reshape 转为 _to_copy → Inductor codegen → InplaceCopy NPU kernel。

检测: 在 kernel_details.csv 中搜索 InplaceCopy/ViewCopy/TensorMove/StridedSlice。 同时对比 eager vs compile 的同名 kernel 耗时差,定位膨胀源。

一键执行(scripts/analyze_copy_kernels.py,含 Copy 统计 + Top kernel + 前后算子归因):

python scripts/analyze_copy_kernels.py --csv compile/kernel_details.csv --label compile

消减方案:A/B/C 三案的适用条件与判据单点维护在 references/copy-elimination-guide.md §4 (A 修复 pattern 匹配 → B 混合模式 → C 静态 shape/大 batch 改走 aclgraph-dev 批量下发); 本节不复制方案内容,避免两处口径漂移。

后端选项以 CompilationConfig 的现有字段为准(当前无 backend_mode 及对应常量: torchair_ge / npugraph_ex 不作为本仓可选后端),文档只描述 default 后端。

完整流程见 references/copy-elimination-guide.md。


Reference Files

文件加载时机
references/pattern-templates.mdPhase 2: 创建 pattern 代码模板 + 融合 op 速查
references/pattern-dev-notes.mdPhase 2/4: 注册机制易错细节(ABCMeta isinstance 陷阱、去重注册);Phase 5/集成: guard 破坏→重编译排查(含 trace 路径读写模块级 dict 案例)、自定义/plugin 算子接入 compile 图(fake/FRAGMENT/无状态)、compile 前后 kernel 级收益核验
references/graph-pattern-rewrite-guide.mdPhase 2/5: GraphPatternEntry 手动改写融合(mkldnn_fusion.py 范式)——动态 shape 节点(view 随 S 变)无法用 trace 式 pattern 匹配时的正解:全 Arg 叶子/Ignored view/共享节点 MULTIPLE/handler 手动改图 + 真实图注入 probe 与前缀隔离调试
references/fusion-graph-forms-and-semantics.mdPhase 2/5: 真实图形态与算子语义契约(融合节点在真图里的形状/属性约定、算子语义与 fake/无状态约束、按图形态选 pattern 还是 GraphPatternEntry)——自 dummy-run/references/minimax-h3-notes.md 下沉
references/registration-checklist.mdPhase 3: 注册核对清单
references/test-templates.mdPhase 4: 测试组织 + 双层测试模板
references/mismatch-catalog.mdPhase 5: 7 类 mismatch 目录
references/graph-comparison-guide.mdPhase 5: Graph dump + 节点对齐方法
references/copy-elimination-guide.mdPhase 7: Copy 消减全流程(default 路径)+ 方案 A/B/C 单点(Phase 7 只引用不复制)
benchmark-dev/references/benchmark-guide.mdPhase 6/7: 计时口径(warmup / 同步 / 编译预热排除 / 多场景对照)——已迁 benchmark-dev(属基准方法论,非 pattern 机制)
references/benefit-rootcause-guide.mdPhase 6: pattern 命中后验证收益(kernel diff → 逐 pass AB → R1-R5 根因目录)
references/fusion-enablement-notes.md融合使能/开关治理:R1-R7 开关细则(唯一 compilation-config 命名空间/默认值纪律/多载体共享 flag)+ FFN 融合现状清单 + 使能经验(真实图 seam→layer-route 载体、计数契约、fp8 级数值标注)+ 「compile 阶段的适配动作」(由 framework-integration SKILL 分支 A「两阶段顺序纪律」的阶段 2 指向:阶段 1 API 接入验证通过后按 1→7 顺序做图级适配)

Bundled Scripts

  • scripts/compare_profiles.py — Phase 6: eager vs compile kernel diff(算子族聚合 + 逐 kernel delta)——kernel 对比唯一入口(把算子类 count/耗时对比合并进同一套口径,避免两套口径并存)
  • scripts/analyze_copy_kernels.py — Phase 7: Copy 膨胀检测(统计 + Top kernel + 前后算子归因)
  • scripts/check_fusion_hit.py — Phase 6/graph-pattern: 融合命中判定(kernel csv 中融合 kernel 计数 vs 期望站点数,可选 eager csv 应 0)
  • scripts/probe_real_graph_pattern.py — graph-pattern 调试: 真实 compile 图注入 probe(在 apply_pattern_match_passes 前打测试 pattern 并计数)——模板,替换模型构建段使用
  • scripts/isolate_pattern_prefix.py — graph-pattern 调试: 前缀逐级隔离(渐进变长链定位首个不匹配节点)——模板
  • scripts/numeric_check_eager_compile.py — graph-pattern 验证: 同 seed eager vs compile 输出位级对比(图改写语义无损核验)——模板

维护与更新

当发现新的 mismatch 类型、Copy 膨胀场景或后端支持矩阵变化时更新本 skill。 各 reference 文件的更新触发条件见各自的"维护与更新"章节。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

**精度验收标准**:凡是"改动不应改变结果"的场合(等价替换、算子/子模块融合、并行切分、 编译与图下发、拷贝消减),都按本标准判"合格 / 不合格"——等价分层(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`;本技能只判"结果是否被改变", 不负责选档与选型。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

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 的 图下发场景指引加载。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

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 在基准开发时指引加载。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

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

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

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

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

分布式并行策略选型与实测(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 阶段触发。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

See all skills by Ascend

Report a problem with this skill