本文へ移動
cccskills
無料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`。

インストール方法を見る

含まれるファイル(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(原文)

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

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,不在此处另立一套阈值。

レビュー

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

同じリポジトリのスキル

概要と使いどころ

**精度验收标准**:凡是"改动不应改变结果"的场合(等价替换、算子/子模块融合、并行切分、 编译与图下发、拷贝消减),都按本标准判"合格 / 不合格"——等价分层(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 のスキルをすべて見る

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