Files
club-3090/docs
noonghunnaandClaude Opus 4.8 a9ffb532ef refactor(vllm): reconcile vLLM engines to v0.22.0 — two-engine split (#254)
Replace the purged `vllm-nightly-clean` pin (nightly-bf610c2f, now 404 on
Docker Hub — so the launcher injected a dead image for every slug on it)
with a v0.22.0 two-engine design:

- `vllm-stable`: OVERLAY-FREE v0.22.0 — the broad successor to
  vllm-nightly-clean. Serves Qwen3-Next (hybrid 27b + MoE 35B-A3B), generic
  `dense` transformers, and uncurated derived-emission bases. Migrates
  vllm/qwen-35b-a3b-dual, vllm/dual, vllm/minimal (live-validated on stock
  v0.22.0: TP=2 + MTP + tool-call clean; marlin-pad confirmed unnecessary).
  Added as the first loads:true arch pin on the qwen + dense rows.
- `vllm-gemma-stable`: KEPT as the OVERLAY-CARRYING v0.22.0 engine (#40391
  per-head INT8 KV + #42006 tool-parser) — the Gemma 4 path. Unchanged.
- `vllm-pip-baseline`: the renamed pip `dense` lower-bound (frees the
  `vllm-stable` name for the docker engine above).

Why two engines and not one: `vendored_overlays` is LOAD-BEARING, not
documentation. `derived_emittable` (CONTRACT-5) refuses any engine whose
`vendored_overlays != []` as a derived-emission base, and `diagnose-profile`
expects the Gemma overlay declared on its engine. A single engine cannot be
both overlay-free (for derived/Qwen bases) and overlay-carrying (for Gemma
provenance) — so the two stay split. Compose owns patch APPLICATION; engine
owns provenance/compatibility. (An attempt to fold both into one engine broke
4 tests via exactly these two consumers; the split is the validated shape.)

Also adds scripts/tests/test-compose-image-drift.sh: asserts every fixed
`${VLLM_IMAGE:-<tag>}` compose default equals its engine's `install.spec`
(catches bump-the-engine-forget-the-literal drift), and a docs/ADDING_MODELS.md
"Coherence rules" section codifying the compose/engine/patch separation.

42/42 gate green; resolver emits v0.22.0 for all migrated Qwen + Gemma slugs.
The remaining experimental/preview slugs still on vllm-nightly-clean migrate
in follow-up as each is validated, then that engine is deprecated.

Refs #254.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-05 11:27:17 +00:00
..

club-3090 docs index

Two tracks. Pick the one that matches what you're doing.

  • User track — "I have GPUs and a model; how do I serve it?"
  • Contributor / maintainer track — "I'm working on the v0.8.0 pull pipeline, patches, or the calibration loop."

Every link below resolves to a file in this repo.


User track

Start here if you want to run a model.

Doc What it is
GETTING_STARTED.md Start here — 5-minute clone-to-curl path. No decisions, no menus.
SINGLE_CARD.md 1× RTX 3090 — workload → curated config → quick start.
DUAL_CARD.md 2× RTX 3090 (PCIe / NVLink auto-detected) — workload → config → quick start.
MULTI_CARD.md 3+ GPUs — TP scaling math, derivation from dual.yml, valid TP values.
PULL.md Any HF safetensors repo — evaluate against the KV math, honest about confidence.
BRING_YOUR_OWN.md Serve + tune + validate your own model/compose (any engine, single or dual) without touching the catalog.
HARDWARE.md Card-class questions — 4090/5090, power caps, NVLink, laptop EC power.
GLOSSARY.md TPS / KV / MTP / TP and the rest of the vocabulary.
FAQ.md Common setup and operational questions.
COMPARISONS.md Self-host vs cloud APIs — cost crossover and when each wins.
EXAMPLES.md Worked end-to-end usage examples.

Contributor / maintainer track

The v0.8.0 pull pipeline (in pipeline order)

A model slug flows through these stages. Read them in order to understand the whole.

Stage Doc What it owns
[D] COMPOSE_GENERATOR.md The #141 compose generator — the substrate that owns the arch→patches matrix.
Gate PULL_GATE.md scripts/pull.sh — the locked 6-stratum abort taxonomy, [C0]/[C2a]/[B]/[C1] gates, §4.1 confidence×verdict table.
[E] PULL_EMIT_DERIVED.md Download → boot → smoke for a download-eligible derived model; writes the §6 capture artifacts.
[F] LOOP.md The calibration loop — reads the capture bundle, classifies, runs the inbound-trust pipeline, dedups failures into the tracker.

Patch & model contribution

Doc What it is
PATCH_POLICY.md When/how a patch ships, the local-overlay vs upstream rules.
PATCH_ATTRIBUTION.md The Phase-A patch-attribution matrix — arch → engine-pin → required patches.
ADDING_MODELS.md How a new model gets added to the curated catalog.
KV_MATH.md The KV-cache math the [B] fit verdict is computed from.

Stack reference & ops

Doc What it is
ARCHITECTURE.md Repo/stack architecture overview.
UPSTREAM.md Upstream PR / issue tracker for this stack.
NIGHTLY_BUMP_RUNBOOK.md Procedure for bumping the vLLM nightly pin.
CONTAINER_RUNTIMES.md Docker / container runtime notes.

Reference matrices & deep dives

These are cross-cutting references both tracks reach for.

Doc What it is
scripts/switch.sh --list (runtime command, not a doc) The authoritative compose × slug matrix. Registry-derived from scripts/lib/profiles/compose_registry.py, so it's always current — every launchable slug with its topology, model, engine, KV format, and max ctx. Run this rather than trusting any hand-maintained table; the static lists in the per-topology docs are illustrative, this is the source of truth.
engines/ Per-engine deep dives — vLLM, llama.cpp, SGLang.
INFERENCE_ENGINES.md Engine picker — which engine for which workload, and structural gaps.
CLIFFS.md The accumulated-context / prefill failure modes (Cliff 2, Cliff 2b) and how to detect them.
DTYPE_MATRIX.md Supported dtype × model × engine matrix.
KERNEL_MATRIX.md Quant-kernel availability and alignment constraints.
QUALITY_TEST.md The quality-test harness and what it measures.
RESULTS_CARD.md The standard 3-panel format (Serving · Quality · Takeaways) for sharing a config's measured results.
STRUCTURED_COT.md The bounded-thinking / structured-CoT compose path.
TQ3_MTP_GENESIS.md TQ3 KV × MTP × Genesis-patch results and config.