sglang_diffusion_ako4all_kernel
Use when optimizing an existing SGLang diffusion kernel with AKO4ALL, including AKO4ALL repo hygiene, custom microbench setup, ncu-guided iteration, and end-to-end denoise validation. Also use when a sibling AKO4ALL repo must be cloned or refreshed before starting kernel tuning work.
- License 许可
- MIT
- 最近更新
- 2026-09-30
- Stars
- ★ 9
- Forks
- 0
01 前言 Front Matter
- name
- sglang_diffusion_ako4all_kernel
- description
- Use when optimizing an existing SGLang diffusion kernel with AKO4ALL, including AKO4ALL repo hygiene, custom microbench setup, ncu-guided iteration, and end-to-end denoise validation. Also use when a sibling AKO4ALL repo must be cloned or refreshed before starting kernel tuning work.
02 资源文件 5
- 参考文档_DIR_IDENTITY.md184 B
- 参考文档README.md497 B
- 参考文档references/ako_loop.md1.4 KB
- 参考文档schema.json495 B
- 脚本scripts/ensure_ako4all_clean.sh2.4 KB
03 SKILL.md 正文
SGLang Diffusion AKO4ALL Kernel
Use this skill to run the full AKO4ALL-based optimization loop for an existing SGLang diffusion kernel.
It is the default implementation path once the benchmark/profile skill has already shown that a hotspot is real and not covered by an existing fast path. This workflow bootstraps a custom AKO harness, benchmarks and profiles the kernel, iterates with ncu, ports the best version back to sglang, then validates with targeted tests and model-level denoise runs.
This skill assumes a sibling repo layout like:
<base-dir>/
├── sglang/
└── AKO4ALL/
If AKO4ALL/ is missing under the current base directory, clone it first.
Use This Skill When
- tuning an existing diffusion Triton, CUDA JIT, CuTeDSL, or runtime-integrated kernel in
sglang sglang-diffusion-benchmark-profilehas already ruled out an existing in-repo fast path or overlap family- creating a custom AKO4ALL harness for a real diffusion kernel instead of using the default benchmark tasks
- validating that a kernel-level win transfers to Qwen, FLUX, Wan, Hunyuan, MOVA, or other diffusion denoise latency
- preparing PR artifacts such as microbench tables,
ncubefore/after data, and proof image outputs
Do not start here when the bottleneck has not been proven yet. First use ../sglang-diffusion-benchmark-profile/SKILL.md to:
- measure the real denoise regression
- collect the perf dump baseline
- capture one representative
torch.profilertrace - rule out existing merged fast paths
If a future specialized optimization skill matches the kernel family better than AKO4ALL, hand off there instead. The diagnosis contract stays the same.
Mandatory AKO4ALL Preflight
Before any AKO work:
- Run
scripts/ensure_ako4all_clean.sh [base-dir]. - If
<base-dir>/AKO4ALLdoes not exist, the script clones it. - Do not continue unless
AKO4ALLis:- on the upstream default branch, usually
main - fully clean with no tracked or untracked local changes
- exactly synced to
upstream/<default-branch>
- on the upstream default branch, usually
- If the script reports local commits, divergence, or a dirty worktree, stop and clean or re-clone the repo before continuing.
The script creates an upstream remote automatically when missing.
By default it uses the existing origin URL, or AKO4ALL_URL if you need to override the clone source.
Workflow
1. Scope the Kernel
- Identify the exact kernel entry point and runtime call sites in
sglang. - Record the target shapes, dtypes, model families, and whether the kernel is on a hot path.
- Reuse existing unit tests and benchmark entry points when they already exist.
2. Bootstrap the AKO Harness
Inside the clean AKO4ALL repo:
- read
TASK.mdandHINTS.md - create a custom harness instead of relying on the stock benchmark tasks
- mirror the real SGLang kernel into:
input/reference.pyinput/<kernel>.pysolution/<kernel>.pybench/bench_<kernel>.py
- keep a short context note in
context/when the kernel has model-specific shape assumptions or perf conclusions
The custom benchmark should:
- cover representative diffusion shapes
- check correctness against the reference kernel
- report aggregate runtime plus per-shape results when useful
3. Establish the Baseline
- run the AKO custom microbench before changing the kernel
- capture one representative
ncubaseline on the hottest meaningful shape - note whether the bottleneck looks like registers, occupancy, instruction count, launch config, or memory latency
4. Iterate in AKO4ALL
- change one idea at a time
- rerun the microbench after every change
- update
ITERATIONS.mdwith hypothesis, result, and next step - prefer simple, explainable wins over clever rewrites that do not transfer
After 3 consecutive no-improvement or regression iterations:
- rerun
ncu - re-read
ITERATIONS.md - change direction instead of continuing blind sweeps
5. Port the Best Version Back to SGLang
- apply the best candidate to the real
sglangkernel file - run import or syntax checks and targeted tests first
- keep the AKO
solution/version aligned with the main-tree version you actually want to keep
6. Validate on Real Models
- use the benchmark/profile skill for denoise perf dumps and before/after comparison
- prefer exact local snapshot validation when testing local edits on a GPU box
- run targeted kernel tests first
- run model-level denoise benchmarks with perf dumps
- compare baseline vs optimized runs with
compare_perf.py - if the PR needs proof that generation still works, save one real model output image
7. Prepare PR Artifacts
At minimum, keep:
- one microbench table
- one denoise-stage table
- one end-to-end table
- one
ncubefore/after pair on the most representative kernel shape - one generated image when the kernel affects production inference
See references/ako-loop.md for the checklist and common stop rules.
Operating Rules
- Treat AKO4ALL repo hygiene as a gate, not a suggestion.
- Prefer exact local snapshot validation over hand-wavy “remote tree is close enough”.
- Keep model-level validation honest: if microbench improves but denoise does not, do not keep the AKO-only variant in the main code path.
- When writing conclusions, explain the win in terms of measurable causes such as lower registers per thread, higher occupancy, fewer executed instructions, or better scheduler eligibility.
04 同仓库更多 Skills
UI-UX Pro Max
Advanced UI/UX analysis and generation skills with data-driven patterns. Python scripts (core.py, search.py) for systematic UI pattern extraction, design system generation, and component search from curated data sources.
shadcn-ui
Expert guidance for integrating and building applications with shadcn/ui components, including component discovery, installation, customization, and best practices.
zustand_store_ts
Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.
zustand
Zustand state management guide. Use when working with store code (src/store/**), implementing actions, managing state, or creating slices. Triggers on Zustand store development, state management questions, or action implementation.
youtube_summarizer
Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and provides metadata, key insights, and downloadable transcripts.
youtube_clipper
YouTube 视频智能剪辑工具。下载视频和字幕,AI 分析生成精细章节(几分钟级别), 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频,并生成总结文案。 使用场景:当用户需要剪辑 YouTube 视频、生成短视频片段、制作双语字幕版本时。 关键词:视频剪辑、YouTube、字幕翻译、双语字幕、视频下载、clip video