mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[GH-ISSUE #3031] [Feature Request]: Support remote CPU memory destinations over MNNVL/NVLink #779
Labels
No labels
ascend
auto-closed
bug
bug
CI/Build
Common
documentation
enhancement
feature request
good first issue
help wanted
high priority
MetaX
nightly-failure
pull-request
PyTorch Backend
question
RFC
Roadmap
stale
Store
Tests
Transfer Engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/Mooncake#779
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @thincal on GitHub (Jul 21, 2026).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/3031
Describe your feature request
Problem
When use Mooncake Transfer Engine for Prefill/Decode KV transfer on GB200/GB300 NVL systems. SGLang HiSparse's direct-to-host path registers a pinned CPU KV pool on the Decode side as the transfer destination.
This path works over RDMA, but fails when the target segment uses MNNVL/NVLink:
Observed with Mooncake 0.3.11. From the current transport behavior:
NvlinkTransport::registerLocalMemory()publishes remote-accessible metadata for CUDA allocations backed bycuMemCreate/ Fabric handles, but a pinned CPU buffer is not exported as a remote NVLink target.nvlink, transport selection stays on NVLink and does not fall back to RDMA for a host-memory destination.relocateSharedMemoryAddress()because the destination range is absent from the remote metadata.As a result, CPU-backed KV-cache paths such as HiSparse cannot use the inter-node NVLink fabric on GB systems. They must use RDMA or add GPU staging, so the GB NVLink interconnect cannot be fully utilized for this workload.
Requested capability
Please support remote CPU-memory destinations with MNNVL/NVLink. Possible designs include:
HOST_NUMA/ EGM memory backed by Fabric-exportable handles, so frameworks such as SGLang can use it as their CPU KV pool.Requested address ... not found!.Expected behavior
Related issue
#2914 proposes a Store-managed EGM pool. This request is specifically about Transfer Engine support for application-registered destination buffers, which is needed by SGLang HiSparse's direct-to-host KV-transfer path.
Before submitting a new issue...
@github-actions[bot] commented on GitHub (Jul 21, 2026):
Thanks for opening this issue, @thincal!
1206509A maintainer will triage this when possible. To help us respond faster, please include:
Useful links: Documentation · Contributing guide
@alogfans commented on GitHub (Jul 23, 2026):
This requires staging/proxy mechanism. You can try to use TENT, which supports host-to-host transfer via MNNVL/NVLink transparently.
@thincal commented on GitHub (Jul 25, 2026):
@alogfans thanks for your information, is there any official released whl package for TENT ?
@thincal commented on GitHub (Jul 26, 2026):
@alogfans But does it also support gpu-to-host transfer via. MNNVL ?