Skip to content
cccskills
FreePublished on GitHub

dit-perf-opt

DiT 计算模块(L3):把**已定位的 DiT 计算瓶颈**落成特性级选档与实施—— 量化档(W8A16 / W4A16 / W8A8 系列 / W4A4 / MXFP8 / FA 量化)、稀疏(rf_v2 / ada_bsa)、 缓存(DiTCache / AttentionCache / 时间步优化)、编译启用(MindieSDBackend / Pattern 融合 / ACLGraph) 的**开不开、开哪一档、怎么开、怎么复验**;依据是 `docs/zh/features/*`(特性真源)+ framework-integration/references/framework-support-matrix.md(支持状态)。

即使用户只说"这个模型怎么加速""量化/稀疏/Cache 怎么选怎么开""要不要开量化、开哪一档""这个档位开了有没有效果" 而未提 profiling,也应触发。

**入口条件**:瓶颈点已明确(用户带一句实测锚点,或编排层交付标签)时由域入口 `performance-optimization` 按标签分发到本技能;**瓶颈未明("怎么加速 / 跑通 / 采 profile")先走 `model-auto-optimization` 定位**,不在本技能内做占比分析。

near-miss:多卡并行形态 / 通信掩盖 / TP·offload 选型 → `dit-parallel-opt`;VAE 解码段与 host 固定开销 → 各自模块(VAE / host);单算子实现级实测选型(mindie_bench)→ `benchmark-dev`; 需要新增 pattern / 算子才能落地本档 → `pattern-dev` / `operator-dev`;框架侧开关与使能验证 → `framework-integration`;量化器位级契约与精度对齐(编码公式 / 舍入 / scale 粒度)→ `quantization-dev`;精度验收判据 → `accuracy-gate`;数字入库口径 → `perf-gate`。

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

See how to install

Files included (8)

  • SKILL.md12.0 KB
  • evals/evals.json3.6 KB
  • references/combination-search.md23.0 KB
  • references/host-dispatch-dimension.md7.1 KB
  • references/lora-adapter-cost.md10.9 KB
  • references/optimization-dimensions.md7.2 KB
  • references/quant-tier-device-mapping.md4.0 KB
  • references/resource-fallback-tiers.md4.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

DiT 计算侧选档与实施

定位

本技能是优化域的 DiT 计算模块:输入是已定位的 DiT 计算瓶颈(标签 DiT-计算受限), 输出是可复验的特性档位组合。范围含 DiT 主体(Transformer block 的 MatMul / Attention / Norm / 激活级)的计算侧手段,以及 DiT 步内的 host / 下发维度(发起次数、host 阻塞型回读、 下引发的设备空转);不含并行与通信(→ dit-parallel-opt)、不含 VAE 解码段(→ vae-opt)、 不含非 DiT 段的固定开销(→ host-opt)。

host / 下发维度的归属(勿与相邻技能互相推诿):DiT 步内的 host/下发属本技能。 融合 kernel 是减少下发次数的手段之一,但那条路属 fusion-scope-analyze(定范围与收益); 本技能负责其余全部非融合手段,见 references/host-dispatch-dimension.md。

不做的事:不重新定位瓶颈(占比分析、阶段账、标签判定归编排层 model-auto-optimization)、 不实现新算子/新 pattern(归 pattern-dev / operator-dev)、不定义验收标准 (性能口径归 perf-gate,精度判据归 accuracy-gate)。

优化闭环

建立基线 → 瓶颈分析 → 根因定位 → 保守修补 → 复验
   ↑                                              │
   └──────────────────────────────────────────────┘

Step 1: 建立基线

使用 profiling-collect 采集 + profiling-analyze 分析建立基线,记录模型 / 分辨率 / 帧数 / 精度 / NPU 数等配置。基线必须与待验档位同窗可比(跨窗口绝对值不可比,口径见 perf-gate)。

Step 2: 获取分析诊断

从 profiling-analyze 的 5 层分析报告中获取:

  • Layer 1: 瓶颈阶段(DiT vs VAE)
  • Layer 2: 算子分类占比(FA/MatMul/Vector/Comm)
  • Layer 3: Host Bound / 通信暴露 / 融合机会
  • Layer 5: 优化方向(P0-P2 优先级 + 引用 docs/zh/features/* 章节)

分析报告给出的是优化方向(如"量化方向"、"缓存方向"),具体档位在本 Step 选取。 若报告或标签指向的瓶颈不在 DiT 计算侧(通信 / VAE / host / 框架侧未使能),按下方 「与相邻模块的边界」转交,不在本技能内硬做。

Step 3: 选取具体方案(选档)

基于分析报告的优化方向,查 docs/zh/features/{quantization,sparse,compilation,cache,cpu_offload,parallelism}.md 对应节确定具体 API 和参数,支持状态查 framework-integration/references/framework-support-matrix.md:

正例: "分析报告显示 MatMul 占 DiT 58%,优化方向→量化。
       查 docs/zh/features/quantization.md §Linear量化,选取 W8A8_MXFP8"
反例: "感觉矩阵乘法比较慢,试试量化"

选择时需考虑:

  • 硬件约束(docs 对应节的硬件要求;档位 → 代际映射无单一真源,须现场取证)
  • 模型兼容性(framework-support-matrix.md 的支持状态)
  • 精度 vs 速度权衡
  • 有损 / 无损归属:无损档优先;有损档的判据与阈值引 accuracy-gate
  • 多方案时按优先级:MindIE-SD Pattern > 量化 > 稀疏 > 缓存 > 通用

单一真源纪律:特性 API / 算法名 / 硬件约束只从 docs/zh/features/* 读;支持状态只从 framework-support-matrix.md 读;不得引用任何仓内 docs 镜像副本(镜像会过期,且已删除)。

Step 4: 实施 + 验证

优化方案从 docs/zh/features/* 中选取,按档位落地的决策树见 references/optimization-dimensions.md。

✅ 允许❌ 禁止
启用已有的、经验证的 kernel削弱输出正确性(cosine similarity 下降)
修复遗漏的 fast path改变测试负载后宣称优化有效
减少不必要的同步/warmup仅为单框架/单硬件优化而破坏兼容性
添加有证据支撑的启发式配置从单一 trace 数据得出普适结论

使能成功由本技能负责("开了 ≠ 生效"):档位声明开启后须给出该特性确实参与的证据 (图命中 / kernel diff / 特性 active 计数 / 抽样步 kernel),不得只看墙钟; 与无损基线的产物逐字节相同 ⇒ 判未生效(登记为"能力未生效",不得记作"收益近似为零")。

多特性组合试验(叠加顺序 / seam 冲突 / 层回退 / 必测覆盖集)见 references/combination-search.md。

Step 5: 复验

  • 重新运行 profiling-collect + profiling-analyze 复验相同配置
  • 重新运行 profiling-analyze 确认 5 层分析指标变化
  • 差距 < 3% 视为噪声(噪声阈值与停止条件为域级口径,单点维护于域入口 performance-optimization §5,本技能只引用)
  • 有损档另过三级精度验收(逐位 → 跨配置数值门 + md5 → 质量门),判据归 accuracy-gate:../accuracy-gate/references/quality-gate.md + 仓库 evals/; 只过墙钟不过门禁不得宣称有损加速
  • 数字入库前按 perf-gate 的同窗 A/B 口径复核(只有验收结果可写入总览表)

优化维度

→ references/optimization-dimensions.md(决策树:编译路径 / Attention / MatMul / 显存 / 缓存) → references/host-dispatch-dimension.md(决策树:DiT 步内 host / 下发——三笔账、动态形状回读、非融合的下发削减手段) → docs/zh/features/*(特性 API/算法真源,按需直读) → framework-integration/references/framework-support-matrix.md(框架侧支持状态)

停止条件

停止条件(目标达成 / 噪声范围 / 外部瓶颈 / 硬件瓶颈)与 3% 噪声阈值是域级口径, 单点维护在域入口 performance-optimization §5,本技能不另立一套。

与相邻模块的边界

情形去向
瓶颈是多卡并行形态 / 通信掩盖 / TP·offloaddit-parallel-opt
瓶颈在 VAE / TAE 解码段(计算或通信)VAE 模块(vae-opt,计算 + 通信同技能)
瓶颈是交付/搬运/装载/预热等固定开销(非 DiT 段)host 模块(host-opt)
瓶颈是 DiT 步内的 host / 下发(发起次数多、host 阻塞型回读、下引发的设备空转)本技能(非融合手段,references/host-dispatch-dimension.md);若手段是融合 kernel,先经 fusion-scope-analyze 定范围与收益
需要新增 pattern / 融合 / 算子才能落地该档先经 fusion-scope-analyze 定融合范围与收益(机会点 + go/no-go),再由本技能按收益选点并派给 pattern-dev / operator-dev;未在交付表登记的机会点不得选点
框架侧开关未使能 / 生效验证framework-integration
量化器位级契约/精度对不上(编码公式、舍入、scale 粒度)quantization-dev
需要同一算子多实现实测对比(同 peak 口径)benchmark-dev(结论回填本技能 Step 4 作实施证据)
瓶颈尚未定位model-auto-optimization(唯一有分析权)

Reference Files

  • references/optimization-dimensions.md — 加载时机: 确定优化方向、按档位落地的决策逻辑时 (编译路径 / Attention / MatMul / 显存 / 缓存;阈值只引用 profiling-analyze 与验收标准)
  • references/host-dispatch-dimension.md — 加载时机: 瓶颈落在 DiT 步内的 host / 下发时 (发起次数多、host 阻塞型回读、下引发的设备空转;三笔账 → 动态形状回读的判别 → 非融合的下发削减手段 → 三元验收)。 融合 kernel 那条路不在此处(→ fusion-scope-analyze)
  • references/combination-search.md — 加载时机: 需同时开启 ≥2 个有损维度时 (seam 静态判定 + 必测覆盖集 + 单变量叠加 + frontier 保留 + 层回退)
  • references/quant-tier-device-mapping.md — 加载时机: 需要核对档位名 ≠ 实际算法(同一档名在不同设备代际映射到不同算法/精度档)、或用户问"这个档位在某设备代际上到底是什么实现"时(自 dummy-run 下沉的选档语义;代际与算法的对应没有单一真源文档(该文只给档位语义)⇒ 用 npu-smi 确认代际后现场取证确认)
  • references/lora-adapter-cost.md — 加载时机: 运行时施加秩-r 适配器(LoRA)链成为最大单项成本、要判它的成本结构(wall/device/算子数三量归因 → host 还是算子级)、要给融合 epilogue 定收益上限、或换权重精度档后要重估该链成本时(成本结构判据 + 三档 profile 取数 + |Δwall| ≥ 2×|Δdev| ⇒ 归 host/减算子数 + 去冗余四类;开启姿势不在此处,见 framework-integration/references/vllm-omni-train-aware-enablement.md;载重性与产物级判定见 ../accuracy-gate/references/content-health-gate.md)
  • references/resource-fallback-tiers.md — 加载时机: 显存不足(OOM)要选一组降档顺序时, 或某档使能后算子 crash / 劣化 / 静默无效、要判"退到哪一档"时 (显存档位表 + 回退顺序 + 回退判据;使能验证与回退姿势归 framework-integration, 部署可见性 / golden 校验归 operator-dev)
  • docs/zh/features/*(仓内真源,非本 skill 文件)— 加载时机: 确定具体 API/算法/硬件约束时 (量化→quantization.md、稀疏→sparse.md、编译→compilation.md、缓存→cache.md、 显存→cpu_offload.md;支持状态查 framework-integration/references/framework-support-matrix.md)
  • ../accuracy-gate/references/quality-gate.md(跨技能,质量门本体归属精度验收标准)— 加载时机: 有损档的端到端质量判定时(定量 + 视觉伪影 + off-identity;判定标准与工具在仓库 evals/)
  • ../perf-gate/SKILL.md(跨技能)— 加载时机: 报数 / 入库 / 验收时

维护与更新

当新的 DiT 计算优化维度经验证有效、硬件平台升级或发现新的优化模式时, 按 dev-workflow 的复盘流程更新本 skill;档位与阈值变化时同步 docs/zh/features/* 与本 skill Step 3/Step 5,不在此处另立一套阈值。

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