Skip to content

Add vLLM v0.25.0 W2 upgrade candidate - #10

Open
OmarB97 wants to merge 4 commits into
kacper-daftcode:mainfrom
OmarB97:agent/vllm-v025-w2-upstream
Open

Add vLLM v0.25.0 W2 upgrade candidate#10
OmarB97 wants to merge 4 commits into
kacper-daftcode:mainfrom
OmarB97:agent/vllm-v025-w2-upstream

Conversation

@OmarB97

@OmarB97 OmarB97 commented Jul 12, 2026

Copy link
Copy Markdown

Summary

Adds a side-by-side W2 overlay and serving recipe for official vLLM v0.25.0 while preserving v0.24 as the proven default and rollback. This is a clean branch from upstream main; it does not pull in the fork-only merges or rewrite the frozen v0.24 PR chain.

Relationship to existing upstream PRs

PRs #5 through #9 remain the reviewable v0.24 implementation, safety, evaluation, receipts, and documentation chain. This PR is an independent additive v0.25 candidate. It does not supersede or retarget #5, because doing so would invalidate the frozen v0.24 evidence ancestry.

What changed

  • Adds the generated 60-file overlay against exact official v0.25.0 tag commit 702f4814 (SHA-256 25ac6fea).
  • Adds a digest-pinned candidate Dockerfile.
  • Uses v0.25's vendored DeepGEMM pin and explicitly retains FlashInfer 0.6.14 pending full qualification of the release's 0.6.13 pin.
  • Adds versioned lost-line CI for both release overlays.
  • Adds explicit W2 tier-manager stop/join and deduplicated atexit cleanup after v0.25 stable-libtorch exposed an interpreter-teardown abort.
  • Removes the orphaned pre-unified moe_w2_nvme test; the unified moe_w2_store backend suite remains.

Verification

  • Fresh exact-v0.25 tag: git apply --check passed.
  • Final taro image: vllm-moet-sm120:v025-w2candidate-25ac6fea, local image ID sha256:1b3dc4a340a6.
  • Baked W2 suite: 22 passed, 1 skipped; DSpark CPU suite: 6 passed.
  • Native stable-libtorch extensions load on RTX 5090 SM120.
  • Bounded W2/W4 decode, split three-tier residency and clean shutdown, pinned/pack/tiered stores, NVFP4 packed-write, and FlashInfer JIT-cache checks pass.
  • Bench lint, render check, recipe smoke, and both patch manifests pass.

Risk and rollout

Draft until a disposable DS4 checkpoint canary proves the 128K retrieval, quality, memory/cgroup, and performance gates. Existing v0.24 images, packs, receipts, and router state remain the rollback.

Review note

The large file is the generated distribution patch. docs/v025-port.md contains the compatibility narrative, exact upstream-absorbed path inventory, teardown RCA, and bounded SM120 receipt; patch/FILES-v025.txt makes source-path additions and removals explicit.

@OmarB97

OmarB97 commented Jul 12, 2026

Copy link
Copy Markdown
Author

Post-merge v0.25 candidate canary is complete.

Exact candidate

  • image: vllm-moet-sm120:v025-w2candidate-25ac6fea
  • image ID: sha256:1b3dc4a340a6b3258c1724c95c1321266bf3b21e455967284fd3ed5e84515435
  • source patch: 25ac6fea69d71c1a641b0d6343c01011bca3b481436e29f9f02f8e4c3ce639a4
  • runtime: 131,072 max length, fp8 KV, base 8 GiB, FP4 delta 6 GiB, LRU, gate tau 0.75, speculative decoding disabled

Results

  • v0.25 correctly rejected the copied v0.24 sidecars because the v0.25 pack identity adds fp4_split:false; it rebuilt only a disposable store.
  • Model load: 22.87 GiB.
  • KV capacity: 4.8 GiB / 720,677 tokens / 5.50x concurrency at 131,072.
  • 120K retrieval: 3/3 accepted at depths 0.1, 0.5, 0.9; observed prompt tokens 120000/120001/120000; exact answers recovered.
  • Quality seed 42: 40/40 clean, 20/20 reasoning, 20/20 coding, 0 sinks.
  • Pool gates: all passed; FP4 occupancy 1.0, eviction delta 44,891, base unrestored experts 0.
  • Directly comparable 120K mean wall time: v0.25 252.50s vs v0.24 247.78s (+1.91%).
  • Candidate-only 128-token decode median: 9.2 tok/s. No comparison is made to unrelated shorter-context/MTP numbers because the v0.24 128K artifact explicitly made no throughput claim.
  • Cgroup: 96 GiB memory.high, 100 GiB memory.max, no OOM; container exited 0 with clean tier-manager teardown.
  • Immutable evaluation and production stores were unchanged; the disposable 210 GiB store was removed; the pre-canary router/model path was restored.

Receipt hashes

  • server provenance: 1d564da8bc8462c8381c70557709f9e498b915f6577d02f8c507e5dd673f2c6b
  • context JSONL: 41384f4628e776ca7b98078bb4e3af9d364bae163a4689e2283918c7ef68272e
  • quality manifest: bd66b30f1f23f1ec2889f21b2d3f1b8a234b8dd600da84580a75f211d49e0402
  • performance comparison: 7939607791f641853d3c0f16f7f4fb09be1fd02f3c068074cbffaf4ee9d30754

This clears the draft canary condition. The v0.24 PR chain (#5-#9) remains frozen and unchanged.

@OmarB97
OmarB97 marked this pull request as ready for review July 12, 2026 14:57
9prodhi added a commit to 9prodhi/vLLM-Moet that referenced this pull request Jul 13, 2026
…sized-resume truncate, chmod fsync, no monitor/fd leak

Re-review wave 2 (5 items on tools/plane_file.py, tools/build_plane_file.py,
tools/test_plane_file.py):

- [kacper-daftcode#7] CLI verify/build catch ALL exceptions at the boundary (KeyError/
  TypeError from malformed-but-checksum-valid metadata, OSError) and exit
  non-zero with a one-line clean error; tracebacks behind a new --debug flag.
- [kacper-daftcode#8] RSS budget is a HARD gate: _enforce_budget() aborts the build BEFORE
  finalization when the sampled monitor observes the budget exceeded; the .tmp
  is kept for resume and no finalized artifact is produced.
- [kacper-daftcode#10] finalize() fsyncs the file inode after os.chmod(0o444) so the mode
  change is durable, not just the rename.
- [new Important] resume normalizes an OVERSIZED .tmp: ftruncate back to the
  exact layout length (was: grow-only), never finalize a file verify rejects.
- [new Minor] mon.start() + PlaneFileWriter construction moved inside the
  try/finally, monitor thread named + stop() guarded, and the writer ctor
  closes its fd if post-open validation raises: a resume-validation failure
  leaks neither the monitor thread nor an fd.

TDD (failing test first) for kacper-daftcode#7, kacper-daftcode#8, and the oversized-resume item; regression
tests for the leak item. Full suite: 73 passed, 0 failed (golden on CUDA).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant