Skip to content

Punch-list item 14 (ROAD-V1-C2-LOCAL-BF16) directs work that landed 2026-07-27, on a premise the same commit refuted #527

Description

@localai-bot

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

deed7c2a1feat(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.mdHost-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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions