Punch-list item 14 in .agents/specs/roadmap-v1-completion.md §3, and the matching
Remaining to close the row cell in §2's RI table, direct a fresh implementer to:
Port device-resident sampled-token mapping to discrete CUDA (remove the measured
main-stream wait) and rerun the exact 4B series. Small.
All three clauses are stale. The record was authored from the 2026-07-25
CLAIM-LOCAL-BF16-H32-AOT checkpoint and never reconciled after the work landed.
1. The discrete-CUDA port landed 2026-07-27
deed7c2a1 — feat(engine): ENG-ASYNC-SCHED W4 discrete device-resident sampled
tokens (opt-in), and the attribution that motivated it is wrong. It adds
runner-owned device buffers for last_sampled / prefill_len /
query_start_loc / seq_lens / input_ids, and LaunchApplyLastSampledOps to
replay our condense's structural row edits on-device in stream order — i.e.
exactly the "request-compaction-safe device token map" the checkpoint asked for.
$ git log -S'AsyncDeviceInputs' --oneline
deed7c2a1 2026-07-27 feat(engine): ENG-ASYNC-SCHED W4 discrete device-resident sampled tokens (opt-in) ...
1718bf155 2026-08-05 perf(qwen3_5): device-resident sampled tokens + async batch-1 P0 fix, mirror default ON (#31)
2. It is the production default, not an opt-in
1718bf155 (2026-08-05, row/SERVE-ASYNC-LLM) flipped it ON. In the tree today,
GPUModelRunner::async_device_mirror() (src/vllm/v1/worker/gpu/runner.cpp:2430-2455)
engages on any real CUDA GPU, and names discrete first:
- DISCRETE (separate memory, !UnifiedMemory): the mirror is REQUIRED, because the host fallback would main-stream Synchronize to read the sampled ids.
VT_ASYNC_DEVICE_MIRROR=0 is the rollback; VT_ASYNC_RUNNER has defaulted ON
since the 2026-07-17 flip. The Synchronize that item 14 asks to remove survives
only on the non-CUDA host branch of sample_tokens_async
(runner.cpp:2687-2695), where it is correct and required.
3. The "measured main-stream wait" was refuted by the same commit
deed7c2a1's own message records the finding:
THE FINDING. [...] vllm-bench drives the SYNCHRONOUS LLMEngine::step() loop,
which calls sample_tokens(), not AsyncLLM's depth-2 step_with_batch_queue. So
on the benchmarked path there is no async sampler and no sample_tokens_async
synchronize to remove, and the 2026-07-25 attribution of 497
cudaStreamSynchronize calls (20.975 s, 42.20 ms/call) to that function is wrong
for this workload.
So the lever's motivating measurement does not exist on the benchmarked path.
4. The 4B series has been rerun six times since
docs/bench-evidence/ carries 20260727, 20260728, 20260729, 20260803,
20260805, 20260807. Roadmap row 2a already records the corrected
three-repetition cross-engine result (throughput 6831.71 vs 6643.40 tok/s,
1.0283x PASS) against the 2026-07-25 numbers the stale cell still quotes
(5769.99/5660.70/5849.80, 0.9864x).
The row itself is current; only these records drifted
Roadmap row 2a's next-actions and the row's live campaign spec
(specs/sm120-qwen35-pareto-2026-08-09.md, whose Ordered campaign never
mentions sampled tokens at all) both already describe the real remaining work:
same-tool interval profiling to split the residual TTFT into intake vs prefill,
then the largest attributable interval; TPOT/ITL and peak VRAM stay open.
Stale surfaces to reconcile:
.agents/specs/roadmap-v1-completion.md:39 (RI table) and :206 (punch-list item 14)
.agents/benchmark-record.md — Host-weight ownership key, next-actions cell
.agents/coordination.md — the 2026-07-25 CLAIM-LOCAL-BF16-H32-AOT bullet's
"Next owner must..." directive
This is a records-only fix: no src/, include/ or tests/ change, and no row
lifecycle change (ROAD-V1-C2-LOCAL-BF16 stays GATING).
Punch-list item 14 in
.agents/specs/roadmap-v1-completion.md§3, and the matchingRemaining to close the rowcell in §2's RI table, direct a fresh implementer to:All three clauses are stale. The record was authored from the 2026-07-25
CLAIM-LOCAL-BF16-H32-AOTcheckpoint and never reconciled after the work landed.1. The discrete-CUDA port landed 2026-07-27
deed7c2a1— feat(engine): ENG-ASYNC-SCHED W4 discrete device-resident sampledtokens (opt-in), and the attribution that motivated it is wrong. It adds
runner-owned device buffers for
last_sampled/prefill_len/query_start_loc/seq_lens/input_ids, andLaunchApplyLastSampledOpstoreplay our condense's structural row edits on-device in stream order — i.e.
exactly the "request-compaction-safe device token map" the checkpoint asked for.
2. It is the production default, not an opt-in
1718bf155(2026-08-05,row/SERVE-ASYNC-LLM) flipped it ON. In the tree today,GPUModelRunner::async_device_mirror()(src/vllm/v1/worker/gpu/runner.cpp:2430-2455)engages on any real CUDA GPU, and names discrete first:
VT_ASYNC_DEVICE_MIRROR=0is the rollback;VT_ASYNC_RUNNERhas defaulted ONsince the 2026-07-17 flip. The
Synchronizethat item 14 asks to remove survivesonly on the non-CUDA host branch of
sample_tokens_async(
runner.cpp:2687-2695), where it is correct and required.3. The "measured main-stream wait" was refuted by the same commit
deed7c2a1's own message records the finding:So the lever's motivating measurement does not exist on the benchmarked path.
4. The 4B series has been rerun six times since
docs/bench-evidence/carries20260727,20260728,20260729,20260803,20260805,20260807. Roadmap row 2a already records the correctedthree-repetition cross-engine result (throughput 6831.71 vs 6643.40 tok/s,
1.0283x PASS) against the 2026-07-25 numbers the stale cell still quotes
(5769.99/5660.70/5849.80, 0.9864x).
The row itself is current; only these records drifted
Roadmap row 2a's next-actions and the row's live campaign spec
(
specs/sm120-qwen35-pareto-2026-08-09.md, whose Ordered campaign nevermentions sampled tokens at all) both already describe the real remaining work:
same-tool interval profiling to split the residual TTFT into intake vs prefill,
then the largest attributable interval; TPOT/ITL and peak VRAM stay open.
Stale surfaces to reconcile:
.agents/specs/roadmap-v1-completion.md:39(RI table) and:206(punch-list item 14).agents/benchmark-record.md—Host-weight ownershipkey, next-actions cell.agents/coordination.md— the 2026-07-25CLAIM-LOCAL-BF16-H32-AOTbullet's"Next owner must..." directive
This is a records-only fix: no
src/,include/ortests/change, and no rowlifecycle change (
ROAD-V1-C2-LOCAL-BF16staysGATING).