mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[PR #1234] [MERGED] [Feature] Support H20 intraNode nvlink by introducing fallback mechanism to leverage cudaIPC #2092
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#2092
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?
📋 Pull Request Information
Original PR: https://github.com/kvcache-ai/Mooncake/pull/1234
Author: @TTThanos
Created: 12/18/2025
Status: ✅ Merged
Merged: 12/20/2025
Merged by: @stmatengss
Base:
main← Head:NewFeature_H20_IntraNode📝 Commits (4)
3ab0df3Support Fallback strategy in AllocPinnedMemory in nvlink_transport which supports intraNode nvlink transmissionddb3a3fChange supportFabricMem logic to support fallback CudaMalloc when CuMemCreate file for Fabric handleefafeecRefine log print for cudaMallocfcafc52Define Macro to avoid build error in MUSA environment📊 Changes
3 files changed (+56 additions, -4 deletions)
View changed files
📝
mooncake-transfer-engine/include/gpu_vendor/musa.h(+2 -0)📝
mooncake-transfer-engine/include/transport/nvlink_transport/nvlink_transport.h(+1 -1)📝
mooncake-transfer-engine/src/transport/nvlink_transport/nvlink_transport.cpp(+53 -3)📄 Description
…ich supports intraNode nvlink transmission
delete redundant variable in nvlink_transport.h
Description
Type of Change
How Has This Been Tested?
The functionality is tested using transfer_engine_bench on 8 * H20.

![Uploading image.png…]()
NVLINK volume can be observered via nvidia-smi dmon.
To ensure intraNode nvlink feasible, you need to set USE_MNNVL=ON when make your project and set environment variable
MC_MC_USE_NVLINK_IPC=1 when running your test example. For H20 case, Mooncake will automatically fallback to classical memory allocation and gurantee vaild memory handle can be accessed by other GPU card through CudaIPC realated API.
Checklist
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.