Conversation
Signed-off-by: derek <derek.yates@live.com>
Signed-off-by: derek <derek.yates@live.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Final r15 integration update This PR now includes the two page-geometry fixes discovered during the r15
The equivalent tested integration head is The allocator behavior is intentionally unchanged from upstream LMCache. The |
Integration evidence and merge scopeStatus: the #35 cache-transfer behavior is qualified in the R20 consolidated The focused implementation evidence passed compiled D2H/H2D transfer of The consolidated tree installed in #35 depends on its declared integration base. Port the functional commits in |
|
Landed on canonical dev in 5031e29 after the full LMCache suite (4,841 passed, 167 skipped, 1 xpassed), focused native CUDA transfer tests, canonical-vLLM integration coverage, and all pre-commit hooks passed. Closing the source PR because its base was the prerequisite integration branch rather than dev. |
Purpose
Prevent three independent sources of silent cache corruption in the asynchronous
LMCache MP path used by r12:
on that event and reading the associated GPU pages; and
the semantic KV payload; and
a vectorized CUDA copy path that requires two-byte alignment.
A long request can submit multiple incremental stores under one request ID.
The adapter's request-keyed event entry is then overwritten by the next store.
Without an independent reference owned by each remote-store future, an earlier
event may be destroyed before the sidecar completes its wait and device read,
allowing incomplete or reused page contents to be committed to persistent L2.
GLM-5.3 C4 also appends an FP8 index-cache tail to every MLA page. vLLM includes
that tail in
spec.page_size_bytes, but the padded-page adapter previouslyderived its transfer width only from
tensor.shape[1:]. A cache hit thereforerestored CKV without the C4 selector state. This was especially visible on
TP4/DCP4 without full-CKV gather: lookup and transfer counters reported a full
hit, but deterministic needle prompts returned garbled or degenerate answers.
Change
both distinct events remain attached to their own futures and both stores
are drained.
the semantic tensor shape.
preserving every declared opaque byte in the transfer view.
exact byte-copy CUDA fallback for odd row widths.
transfer view, plus a compiled D2H/H2D round-trip for padded 561-byte rows.
This does not change DCP geometry, cache keys, block IDs, object grouping, or the
cuMem lifecycle introduced by the base stack. Existing attention pages without
an opaque tail retain their prior shape and transfer width.
Stack and r12 integration
This is a stacked PR based directly on #34 head
801b6ce335a46628bd87b70b8c1c263f45a380f3, which is the LMCache source pinin
voipmonitor/vllm:jovian-judgement-community-20260901-r12.It must be composed on top of #33/#34; installing the separate
b5308054integration wheel wholesale would discard the r12-only work. Theequivalent correction is already present on
integration/glm53-upstream-consolidationatc4e6ec5e.Validation
Against the exact immutable r12 image
sha256:80dc3c3481255c123b3fe9ff164a879b7a141292389d29b0fd04a8472e6bf15dwith the proposed Python files overlaid:
including verification that dim-0 padding remains untouched.
2 passed: LMCache-driven preemption/store-event lifetime tests.74 passed: complete DCP geometry, rank ownership, namespace, and padded-pageintegration test file, including the new opaque-tail regression.
163 passed: focused recurrent and multiprocess transfer suites.git diff --checkpassed.Runtime reproductions that motivated the page-tail fix:
ranks but entered degenerate reasoning, while a never-cached salt answered
every deterministic needle correctly; and
APC was cleared, excluding filesystem, S3, restart, and hash nondeterminism.
Fresh-store exact-content acceptance passed on the r12 runtime for TP4/DCP4 and
TP4/DCP1 with FP8 MLA KV: APC-only reset/L1 restores and full process
restart/L2 restores returned the exact deterministic codeword, with LMCache
logs attributing the restored keys to the expected tier. Objects created by the
defective transfer width were not reused for those gates.