-
Notifications
You must be signed in to change notification settings - Fork 4
knowledge: daily intake batch 15 #161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| --- | ||
| title: "Diffusion 平台 kernel 与设备合同" | ||
| created: 2026-07-20 | ||
| updated: 2026-09-07 | ||
| updated: 2026-09-15 | ||
| type: rule | ||
| tags: [vllm-omni, components, diffusion] | ||
| sources: ["PR #4341", "PR #5001", "PR #5087", "PR #5088", "PR #5136", "PR #5255", "PR #5344", "PR #5543", "PR #5720", "PR #5737", "PR #5764", "PR #5801", "PR #5802", "PR #5838", "PR #5839", "PR #5848", "PR #5872", "PR #5881", "PR #5896", "PR #5981", "PR #6094", "PR #6102", "PR #6279", "PR #6385", "PR #6445", "PR #6651", "PR #6722", "PR #5831", "PR #6989", vllm_omni/diffusion/attention/backends/flashinfer_attn.py, vllm_omni/diffusion/attention/backends/ring/ring_kernels.py, vllm_omni/diffusion/attention/parallel/ulysses.py, vllm_omni/diffusion/cache/cachedit/backend.py, vllm_omni/diffusion/data.py, vllm_omni/diffusion/distributed/hsdp.py, vllm_omni/diffusion/executor/multiproc_executor.py, vllm_omni/diffusion/layers/norm.py, vllm_omni/diffusion/layers/rope.py, vllm_omni/diffusion/lora/manager.py, vllm_omni/diffusion/model_loader/diffusers_loader.py, vllm_omni/diffusion/model_metadata.py, vllm_omni/diffusion/offloader/, vllm_omni/diffusion/registry.py, vllm_omni/diffusion/worker/diffusion_model_runner.py, vllm_omni/diffusion/worker/diffusion_worker.py, vllm_omni/engine/async_omni_engine.py, vllm_omni/entrypoints/openai/api_server.py, vllm_omni/quantization/component_config.py, vllm_omni/quantization/factory.py, tests/diffusion/attention/test_attention_sp.py, tests/diffusion/attention/test_ulysses_uaa.py, tests/diffusion/cache/test_cache_backends.py, tests/diffusion/layers/test_norm.py, tests/diffusion/layers/test_rope_broadcast.py, tests/diffusion/offloader/test_distributed_layerwise_backend.py, tests/diffusion/test_diffusion_config_propagation.py, tests/diffusion/test_multiproc_engine_concurrency.py, "PR #4755", "PR #5990", "vllm_omni/diffusion/layers/fused_qk_norm_rope.py", "vllm_omni/diffusion/cache/teacache/extractors.py", "vllm_omni/diffusion/models/minimax_h3/minimax_h3_transformer.py", "tests/diffusion/layers/test_fused_qk_norm_rope.py", "PR #6165", "PR #5677", "vllm_omni/diffusion/quantization/hsdp_fp8.py", "tests/diffusion/quantization/test_hsdp_fp8.py", "PR #4845", "PR #6173", "PR #6070", "vllm_omni/diffusion/models/ltx2/ltx2_components.py", "vllm_omni/diffusion/model_loader/hub_prefetch.py", "PR #5910", "PR #5676", "PR #6125", "PR #6320", "PR #5877", "vllm_omni/diffusion/vllm_config.py", "PR #6283", "vllm_omni/diffusion/layers/activation.py", "PR #6281", "vllm_omni/diffusion/attention/ops/minimax_h3_modulation.py", "PR #6130", "PR #6364", "PR #6073", "PR #4820", vllm_omni/diffusion/attention/backends/fastvideo_vsa.py, "PR #6150", "PR #6410", tests/diffusion/layers/test_activation.py, tests/diffusion/layers/test_fused_qk_norm_rope_npu.py] | ||
|
|
@@ -40,3 +40,10 @@ confidence: high | |
| - 禁止:只用 `x.is_cpu` 作为 Triton 门禁;让 NPU、XPU、MUSA 或其他非 CUDA tensor 进入 raw Triton launch;认为传入 row stride 就足以支持非连续列;对错误布局静默读写;或用 mock/wiring 结果宣称真实 kernel 数值 parity。 | ||
| - 验收:CPU/mock 覆盖 CUDA、NPU、XPU、MUSA、unsupported dtype/shape、空行和 contiguous/strided 输入,断言非 CUDA 路径不启动 Triton 且 NPU 保留 native RMSNorm;CUDA 目标硬件以 FP32 reference 核对值、dtype 和容差,并单独记录 kernel 数量/延迟。当前 PR 未新增该模块测试且 NPU CI 不覆盖 H3,在补齐前不得称为生产级跨平台支持。^[PR #6281] | ||
|
|
||
|
|
||
| ## DIFF-1ai — fused_qk_norm_rope 的 interleaved 模式与 token gate 必须分模式闭合 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
All seven rule pages gain rules, but this commit updates no nearest AGENTS.md reference: AGENTS.md:L23-L24 Useful? React with 👍 / 👎. |
||
|
|
||
| - 触发:修改共享 `fused_qk_norm_rope`、packed RoPE table、`interleaved` 分派、Boogu/MiniMax consumer,或 `VLLM_OMNI_FUSED_QK_NORM_ROPE_MIN_TOKENS`。 | ||
| - 强制:`interleaved=False` 保持 half-split `(d, d+rotary_dim/2)` 与既有 MiniMax-H3 fused geometry(`head_dim==128`、`rotary_dim==96`);`interleaved=True` 使用相邻对 `(2i, 2i+1)`,CUDA Triton 仅在 even `rotary_dim <= head_dim <= 256` 时融合,否则 eager。consumer 的 packed `[cos|sin]` table 必须匹配所选 pairing,不得把 half-split 与 adjacent-pair frequency 混用。融合路径的 token 门槛由 op 级 env 覆盖;短于门槛时整条 eager 链必须 bit-exact。新增 env 必须进入 public inventory 与 docs。 | ||
| - 禁止:把 interleaved 默认塞进 MiniMax half-split path;无门槛强制融合;只改一个 consumer 却不更新共享 op 合同或 inventory。 | ||
| - 验收:分别覆盖 half-split 与 interleaved 的 fused/eager 数值、geometry 拒绝、门槛上下切换,以及 env 缺省/覆盖;Boogu 集成断言 table 去重与 `[B*S, D]` 复用。^[PR #6982] | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| --- | ||
| title: "LingBot-Video 规则" | ||
| created: 2026-08-10 | ||
| updated: 2026-09-04 | ||
| updated: 2026-09-15 | ||
| type: rule | ||
| tags: [vllm-omni, models, diffusion] | ||
| sources: [vllm_omni/diffusion/models/lingbot_video/request_utils.py, vllm_omni/diffusion/models/lingbot_video/image_condition.py, vllm_omni/diffusion/models/lingbot_video/pipeline_lingbot_video.py, vllm_omni/entrypoints/openai/serving_video.py, vllm_omni/model_extras/lingbot_video.py, vllm_omni/model_extras/registry.py, examples/offline_inference/text_to_image/text_to_image.py, examples/offline_inference/image_to_video/image_to_video.py, tests/diffusion/models/lingbot_video/test_request_utils.py, tests/diffusion/models/lingbot_video/test_image_condition.py, tests/diffusion/models/lingbot_video/test_pipeline_lingbot_video.py, tests/entrypoints/openai_api/test_image_server.py, tests/entrypoints/openai_api/test_video_server.py, "PR #5311", "PR #5976", "PR #6049", "Issue #5883"] | ||
|
|
@@ -97,3 +97,10 @@ sources: [vllm_omni/diffusion/models/lingbot_video/request_utils.py, vllm_omni/d | |
| - 验收:同时覆盖 formatter 的 image/video key、T2I 单帧 shape、TI2V input cardinality、最终 | ||
| image size limit、frame-count precedence 和 n>1 的 400。PR 所报 H200 单次耗时、峰值显存与 | ||
| bitwise parity 缺少本知识树可复跑的命令/产物,不能作为性能或精度 gate。 | ||
|
|
||
| ## LBV-3a — AR 流式 VAE decode 状态必须按 session 持有并计入 admission | ||
|
|
||
| - 触发:修改 LingBot/Wan 系 AR-Diffusion `post_decode`、streaming VAE decode、`SupportsStreamingDecode`,或 `model_owned_state_bytes_per_session`。 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This trigger explicitly covers Wan-family pipelines and shared AGENTS.md reference: AGENTS.md:L12-L17 Useful? React with 👍 / 👎. |
||
| - 强制:每个 `session_id`(与 `request_id` 同键)持有独立 `StreamingDecodeState`;chunk 间复用同一 temporal cache;`reset_ar_diffusion_session`/`close_ar_diffusion_session` 一并释放。`model_owned_state_bytes_per_session` 必须计入 decoder 按分辨率声明的常驻字节,不能只算 image condition。会走 VAE tiled decode 的 shape 不得冒充可跨 chunk 线程 cache。 | ||
| - 禁止:把 temporal cache 留在共享 VAE 模块上跨 session 覆写;块级独立 decode 却声称 timeline 连续;漏报 decode state 导致 admission 低估显存。 | ||
| - 验收:覆盖跨 chunk 连续性、session 隔离、release、非流式/tiling fallback,以及 admission 字节随 H×W 缩放不随 session 长度增长。^[PR #6533] | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This rule cites PR #6978 only in the paragraph while leaving the page's frontmatter
sourcesunchanged; the same omission affects all other rules added by this batch. The knowledge schema requires PR-learning pages to carry both page-levelsources:provenance and paragraph-level references, so metadata consumers cannot discover the evidence behind these additions. Add each originating PR, and any relevant upstream source paths, to its affected page'ssourceslist.Useful? React with 👍 / 👎.