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

host-opt

host / 辅助段优化模块(L3):把**非 DiT、非解码段**的固定开销落成可复验的优化—— ① 交付与搬运(mp4/图片编码、worker→API 通路、落盘、异步化); ② 装载与预热(权重加载、编译与图下发预热、镜像/容器预热)。

当用户说“mp4 编码/传输/落盘慢”“交付这段占了不少时间”“模型加载慢”“首启编译太久” “固定开销占比高”“每个请求都要重新编码/重新写盘”时使用。

**入口条件**:占比已达门限(瓶颈标签 `非DiT-host段`;标签枚举、门限与测点口径的单一真源在 model-auto-optimization/references/bottleneck-labels.md,本技能只消费不定义)。

near-miss(看似相关但不属本技能): - **并发 / 吞吐 / 批处理调度 / 队列深度与限流** → **不属本技能**(会改变所有性能口径与 SLO 语义, 未来独立立项;本技能只在**不改变请求并发模型**的前提下压固定开销); - VAE/TAE 解码段(计算或通信)→ `vae-opt`;DiT 计算 → `dit-perf-opt`; 多卡并行 / 通信掩盖 → `dit-parallel-opt`; - **装库 / 下载权重 / 构建镜像 / 创建容器** → `env-install`(本技能只优化装载与预热**过程本身**); - 编译与图下发的**机制本体**(pattern / Inductor / NPUGraph / 图 pool / 缓存条目)→ `pattern-dev` / `aclgraph-dev`(本技能不另做一套缓存); - 产物一致性与精度判据 → `accuracy-gate`;收益口径 → `perf-gate`; - 瓶颈未定位 / 没有占比锚点 → `model-auto-optimization`。

インストール方法を見る

含まれるファイル(3)

  • SKILL.md12.4 KB
  • evals/evals.json6.6 KB
  • references/host-overhead-account.md6.5 KB

SKILL.md(原文)

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

host / 辅助段:固定开销优化

定位

本技能是优化域的 host(辅助段)模块:输入是已定位且达门限的 host 固定开销(标签 非DiT-host段), 输出是可复验的固定开销下降。范围两块,二者的生命周期不同,必须分开记账、分开验收:

段含典型形态
交付与搬运(每请求)媒体编码(mp4 / 图片)、worker→API 通路(进程内拷贝 / 队列 / 共享内存 / HTTP 分片)、落盘与回读、异步化生成结果在返回给调用方之前被编码 / 搬运 / 写盘,串在关键路径上
装载与预热(每进程 / 首启)权重加载(读盘 → 宿主内存 → 设备)、编译与图下发预热、镜像与容器预热服务首启或首个请求时才付这些成本,之后每次请求都省不到

不含(near-miss):并发 / 吞吐 / 批处理调度 / 队列与限流(不属本技能); VAE / TAE 解码段(→ vae-opt);DiT 计算(→ dit-perf-opt); DiT 步内的 host / 下发(发起次数、host 阻塞型回读、下引发的设备空转 → dit-perf-opt; 本技能只管非 DiT 段的固定开销); 多卡并行与通信(→ dit-parallel-opt);装库 / 权重下载 / 镜像构建 / 容器创建(→ env-install)。

不做的事:不定位瓶颈(阶段账、占比与标签归编排层 model-auto-optimization)、 不定义门限(非DiT-host段 的占比判据、分母、测点、步数档要求单点在 model-auto-optimization/references/bottleneck-labels.md §2)、 不定义测量纪律(同窗 A/B 口径单点在 perf-gate)、 不实现编译 / 图下发 / 通信 / 算子能力(归能力供给层)。

入口判据:先出固定开销账,再动手

按标签 非DiT-host段 进入(达门限才做;未达门限的登记方式归编排层)。动手前必须先有固定开销账: 把 host 段拆成可测量的行(编解码 / 传输 / 落盘 / 加载 / 预热),每行给测点、口径、占比与证据。 字段定义、测点写法、固定 vs 每请求的区分与常见错账见 references/host-overhead-account.md。

三条纪律:

  1. 分母口径统一:占比一律按同一口径的 e2e(服务端口径;交付开销 = e2e − forward 并继续分解, 取法单点在 perf-gate/references/evidence-toolbox.md);
  2. profiler 看不见 host 段:profiler 只覆盖设备侧 kernel —— 编码 / 传输 / 落盘 / 加载 / 预热 必须靠进程内计时点或服务端计时 + 日志行来证;没有计时点就等于没有账,也就无法判断优化是否生效;
  3. 固定与每请求分开报:装载与预热是每进程一次的成本,交付是每请求的成本。 把首启成本摊进每请求 e2e 会得出错误的优化优先级(反之亦然)。

交付与搬运(每请求)

按“先分解 → 逐段判定 → 最后才改”的顺序,四段各有判据:

  1. 编码:编码是否在关键路径上(编码完成才返回)、编码参数(码率 / 预设 / 线程数 / 是否硬件编码器)、 是否对同一内容重复编码;判据是“该段耗时 ÷ 同口径 e2e”与它能否与下一段重叠;
  2. 通路:worker→API 有几跳(进程内张量传递 / 队列 / 共享内存 / HTTP 分片),每跳有没有整份拷贝或 序列化(大张量走 pickle / JSON 是常见隐形大头);判据是逐跳字节数 × 跳数;
  3. 落盘:是否每请求都写、写盘是否在关键路径、是否落两份(临时 + 最终)、并发写入是否互相拖慢; 判据是写入 / 读取字节数与等待时间;
  4. 异步化:把“不必等”的部分移出关键路径(编码 / 落盘 / 回调 / 日志),但必须在能证明 返回语义不变时才做——返回时机、错误传播、超时与重试语义都要交代清楚。

交付搬运改动的复核:交付产物应字节级一致(或按一致性判据说明为何允许变化,判据口径引 accuracy-gate),再按同窗 A/B 取收益。

装载与预热(首启 / 常驻)

  1. 权重加载:加载路径(网络盘 / 本地盘 / 内存缓存)、格式(逐张读 vs 单大文件)、 dtype 与设备放置(先宿主再上卡 vs 直接设备读)、是否被重复加载(多进程 / 多实例各加载一遍); 与 env-install 的分工:它负责把权重装到位(下载 / 挂载 / 路径核对), 本技能负责装载过程本身(少读、少拷、能并行就并行、可复用就复用);
  2. 编译与图下发预热:机制本体不在此重做 —— 图 pool、lazy capture、按 shape 缓存的图条目、 max_entries 驱逐规则见 aclgraph-dev;pattern 与 compile 后端路径见 pattern-dev。 本技能只做“把已存在的缓存预热到稳态”:用真实会出现的 shape / dtype 与请求形态各跑一次, 覆盖首请求路径,使稳态指标不把首请求的 capture / 编译成本算进去。 预热输入形状与生产不一致时,预热出的是另一批缓存条目(shape 一变就重新 capture / 重新编译)—— 这是预热最常见的静默失效,必须用命中判据(缓存条目数 / 图命中 / 日志行)验证,而不是看总耗时;
  3. 镜像与容器预热:只在部署形态本身需要时做(基础镜像层顺序、依赖预取、挂载与目录就位、 容器内首次读盘的冷缓存)。构建与安装动作本身归 env-install,本技能只负责压缩“起服务的等待时间”这一面。

预热类改动的验收约定:报数分稳态与首启两栏,并给出预热命中判据;只报一个总耗时的结果不可入库。

判定“优化是否生效”(host 段同样会静默)

host 优化的失效形态与设备侧不同,但同样静默,判定方式也不同:

  • 改了但没生效:开关读取点落在分支判定之后、启动脚本 unset 了变量、默认值覆盖了配置 —— 产物与耗时都不变,最容易被读成“优化没用”。判定方式是打印实读值(环境变量实际读到的值、 编码参数的实际生效值、预热命中的缓存条目数),不是看日志字符串;
  • 产物变了(不是无损):改编码 / 封装参数会改变交付产物字节。声称“只是搬运、结果没变”时, 必须给出产物字节一致(或质量门)的证据,判据口径引 accuracy-gate;
  • 测点漂移:把计时点移出或移入关键路径会改变结论 —— 改测点即视为改了口径,必须重测基线;
  • 分母变了:优化顺带改变了请求形态(分辨率 / 帧数 / 步数档),该轮账与上轮不可比。

复验与入库

  • 收益按 同窗 A/B(必要时 A/B/A 修正漂移)判定,口径与噪声地板单点在 perf-gate; 跨窗口绝对值不可比;
  • 固定开销账一起报:优化前后各出一份同口径的账(每行占比 + 证据),并说明变化落在哪一行;
  • 只有通过验收的结果才写入报表(报表列契约与门限口径归编排层)。

与相邻模块的边界

情形去向
并发 / 吞吐 / 批处理调度 / 队列与限流不属本技能(未来独立立项)
VAE / TAE 解码段(计算或通信)vae-opt
DiT 计算侧选档与实施dit-perf-opt
多卡并行形态 / 通信掩盖 / 通信账dit-parallel-opt
装库 / 权重下载 / 镜像构建 / 容器创建env-install
pattern / compile / 图 pool / 缓存机制本体pattern-dev / aclgraph-dev
产物一致性与精度判据accuracy-gate
收益口径与同窗 A/Bperf-gate
瓶颈未定位 / 占比与标签model-auto-optimization

Reference Files

  • references/host-overhead-account.md — 加载时机: 要出或复核固定开销账(编解码 / 传输 / 落盘 / 加载 / 预热各一行 + 占比)时(字段、测点写法、固定 vs 每请求的区分、常见错账)
  • ../model-auto-optimization/references/bottleneck-labels.md(跨技能,单一真源)— 加载时机: 判断是否 达门限、确认 非DiT-host段 标签口径与步数档要求时(不在本技能重定义)
  • ../perf-gate/SKILL.md 与其 perf-gate/references/evidence-toolbox.md(跨技能)— 加载时机: 报数 / 入库 / 取“交付开销 = e2e − forward”的服务端口径时
  • ../aclgraph-dev/SKILL.md(跨技能)— 加载时机: 做图下发预热、需要图 pool / lazy capture / 按 shape 缓存条目与驱逐规则时
  • ../pattern-dev/SKILL.md(跨技能)— 加载时机: 做编译预热、需要确认 pattern / Inductor 路径与缓存归属时
  • ../env-install/SKILL.md(跨技能)— 加载时机: 权重装载策略涉及下载 / 挂载 / 容器创建 / 镜像构建时 (分工:它装,本技能优化装载过程)
  • ../accuracy-gate/SKILL.md(跨技能)— 加载时机: 交付产物字节发生变化、需要一致性判据时

维护与更新

  • 触发:交付链路形态变化(新增通路 / 换编码器 / 换落盘策略)、部署形态变化(镜像 / 容器 / 权重布局)、 编译或图下发机制升级、非DiT-host段 标签或门限口径调整时,按 dev-workflow 的复盘流程更新本技能。
  • 如何判定记录仍存在(先复核、再套用):
    • 占比类:按当前口径重出一份固定开销账,核对“步数档 + 各段占比 + 门限”是否仍能复现; 换模型 / 步数档 / 硬件 / 部署形态必须重测;
    • 预热类:核对预热命中判据(缓存条目数 / 图命中 / 日志行)是否仍成立;若机制已改变 (例如缓存改为默认开启),对应条目应删除或改写为“无需显式预热”;
    • 通路 / 编码类:按当前代码路径重新数跳数与字节数,不沿用旧结论(多一跳 / 少一跳都改变算式)。
  • 失效信号:换部署形态后某段占比落进噪声地板;预热后首请求仍付全量成本(说明预热形状与实际不符); 优化前后账的分母发生变化(该轮不可比,须重做同窗基线)。
  • 删除纪律:编译 / 图下发 / 通信 / 算子等机理性内容只引用不搬入;确认已被机制默认覆盖或 已修复的条目直接删除,不留“以防万一”。

レビュー

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

同じリポジトリのスキル

概要と使いどころ

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

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月11日 更新

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月11日 更新

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月11日 更新

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

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

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

分布式并行策略选型与实测(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月11日 更新

Ascend のスキルをすべて見る

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