Repo-wide follow-up to the compose quant-layer move (9821c94). The
mechanical move + registry/launch/test rewire covered the launchable
surface; a full-tree sweep found compose-path refs the move invalidated
in docs, two functional scripts, and one half-migrated mapping.
Functional fixes:
- bench-row-formatter.sh infer_compose_path(): 6 dual entries
(int8-tq3, tq3-mtp-genesis, tq3-nomtp, tq3-mtp, int8, bf16) were left
at bare dual/<file>.yml while the rest were migrated -> would emit
dead compose paths into BENCHMARKS rows.
- residency-instrument/run-instrumented-soak.sh: case->COMPOSE_FILE
paths (long-text, long-text-no-mtp, tools-text, dual default) now
resolve under <quant>/.
Docs: README layout line + tree, engine/model READMEs, patch-README
quick-recipes, diagnostics, FAQ/CLIFFS/KV_MATH/DTYPE/MULTI/SINGLE/
STRUCTURED_COT/TQ3/UPSTREAM, issue template, sglang cross-refs
(-> vllm prod path). Per-model targets: qwen-vllm->autoround-int4,
llama-cpp->unsloth-q4km, gemma defaults (bf16-mtp/fp8-mtp),
carnice->own slug dir.
Intentionally left as historical/append-only records: CHANGELOG x2,
BENCHMARKS row-labels (live paths already correct in row bodies),
calibration source: provenance citations, switch.sh/parity history
comments. Separate follow-ups: gpu-mode.sh (#417 deprecated-repo
repoint), bench-row-formatter compose_display() docker-compose.yml
branch (PR-B). Flagged pre-existing-stale: dual/int8-tq3.yml in
pr40798/pr40914 READMEs (predate this refactor; ambiguous target).
Guard tests (registry-disk, mounts-resolve, switch-parity,
launch-compat) all PASS post-edit. Leak-clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The SGLang+EAGLE-3 path for Qwen3-Next is parked. Three independent
findings, each sufficient on its own:
1. EAGLE-3 is sub-MTP for Qwen3-Next, even on Blackwell where it works.
Ex0bit's own published numbers on the PRISM-PRO-DQ model card:
native MTP = 121 TPS (1.51x) vs EAGLE-3 chain = 111 TPS (1.39x).
The model family has a strong built-in MTP head; routing through
an external drafter is structurally slower.
2. CUTE_DSL capture-hang on Ampere. SGLang v0.5.12's get_version() does
pkgutil.walk_packages during cuda-graph capture, hits
`cutlass.cute.experimental` which raises NotImplementedError under
CUDA<13.1, and deadlocks against the locked capture stream. Three
patch iterations (pre-import, sys.modules stub at engine init,
per-process sys.modules stub at sglang/__init__.py) all failed —
the walk re-fires during capture regardless of cache state. Workaround
`--disable-cuda-graph` caps decode at ~15-18 TPS.
3. vLLM-MTP-dual already beats this path on the same rig. vllm/dual/turbo.yml
delivers ~85 TPS on dual-3090; this SGLang path tops at ~15-18 TPS
with the cuda-graph workaround.
Changes:
- docs/engines/SGLANG.md: status flipped from "experimental, validated to
boot" to "PARKED 2026-05-21" with the 3-finding rationale.
- models/qwen3.6-27b/sglang/README.md: parking banner, full "Why parked"
section, updated TL;DR statuses, expanded re-test triggers list.
- compose/dual/eagle3-experimental.yml: PARKED banner above the existing
profile header. Internal config unchanged.
- compose/single/eagle3-experimental.yml: PARKED banner. Single-card never
reached first forward pass (OffloaderV1 tied-weights bug); now both
blocked AND structurally inferior.
The compose tree + vendored patches stay for archival reference. Re-test
triggers if SGLang ships MTP for Qwen3-Next OR upstream lands a CUTE_DSL
Ampere fallback.
Production paths for Qwen3-Next remain vllm/dual/turbo.yml and
llamacpp/mtp.yml — both MTP-based, both validated.
Co-authored-by: noonghunna <10742901+noonghunna@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>