Repository navigation
Conversation
isytwu
requested review from
Qiaolin-Yu,
Ying1123,
alphabetc1,
hanming-lu,
hnyls2002,
huangtingwei9988,
hzh0425,
ispobock,
merrymercy,
xiezhq-hermann and
yizhang2077
as code owners
October 18, 2026 16:39
2 of 6 tasks
isytwu
force-pushed
the
k3-umbp-linker-dcp
branch
from
October 18, 2026 16:53
1a71e48 to
b2d7b50
Compare
isytwu
marked this pull request as draft
October 19, 2026 01:14
isytwu
force-pushed
the
k3-umbp-linker-dcp
branch
from
October 19, 2026 06:16
490ffe6 to
432d62d
Compare
isytwu
force-pushed
the
k3-umbp-linker-dcp
branch
2 times, most recently
from
October 21, 2026 03:39
ee74d81 to
d08bc72
Compare
isytwu
force-pushed
the
k3-umbp-linker-dcp
branch
from
October 21, 2026 04:47
57da797 to
7600116
Compare
isytwu
marked this pull request as ready for review
October 21, 2026 04:49
isytwu
force-pushed
the
k3-umbp-linker-dcp
branch
from
October 21, 2026 08:09
7600116 to
93c8708
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
#38778 stores the MLA/DSA KV of rank-replicated pool groups once in the UMBP direct linker. The FULL + Mamba group that #44977 added for Kimi K3 cannot be rank-replicated, since its Mamba state is TP-sharded, so every attention TP rank still writes its own copy of the MLA KV (#44977's first known limitation): at TP8 the store holds eight copies of each page and starts evicting shared prefixes once it fills. On Kimi K3 at TP8 with DSpark (the InferenceMINI agentic TP8 c14 recipe) and 480 GiB of UMBP DRAM, the same as HiCache's host pools, this PR against its base on the same node raised the prefix hit rate from 90.7% to 94.2% and throughput by 14%, and cut the mean TTFT from 3.2 s to 1.9 s (P90 from 7.9 s to 3.1 s).
Modifications
DevicePoolEntrycan declare the shard it holds: ranks that declare the same shard hold identical objects. The FULL + Mamba group's MLA KV declares shard 0; the Mamba state and the DSpark draft stay per rank.Tests
test_linker_pool_assembler.py: the shards of the FULL + Mamba group.test_umbp_direct_linker_rank_keys.py: the linker's object keys put the MLA KV's shard in place of the TP rank and keep the Mamba and draft keys per rank.Accuracy Tests
Kimi-Linear-48B-A3B (MLA + KDA) at TP4 on MI355X with a local UMBP standalone server, so the four ranks restore one shared copy of the MLA KV. The KL test from dc291b5, modeled on
test_unified_cache_linker_kl_inkling.py, offloads turn 1, drops the device tree with/flush_cache, restores turn 2 from UMBP alone (assertscached_tokens_details.host == cached_tokens) and replays it against recomputed logprobs right after the restore boundary, since further out the MLA layers mask a wrong KDA state. It is not kept in CI: ROCm is not bit-exact, so its threshold (1e-2) only catches a grossly wrong restore. 4 samples:Kimi K3 at TP8 on 8x MI355X:
/flush_cache, against the device tree's run-to-run noise): passes.test_kimi_k3_eval_mi35x.py, run twice with/flush_cachein between so that the second pass resumes from UMBP: 0.956, then 0.954.Related: #38778, #44977, #44929, #41343. Supersedes #39511.
Checklist
CI States
Latest PR Test (Base): ❌ Run #39567129814
Latest PR Test (Extra): ❌ Run #39567129825
Latest PR Test (AMD ROCm 10): ❌ Run #39567129836