mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[PR #805] [MERGED] [Misc] Mooncake EP & Mooncake Backend #1834
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#1834
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/805
Author: @UNIDY2002
Created: 9/4/2025
Status: ✅ Merged
Merged: 9/26/2025
Merged by: @alogfans
Base:
main← Head:sunxun/mooncake-backend-dev📝 Commits (10+)
34d7debInitialize a mooncake backendfa80700Add pybinda401f32Fix incorrect backend registrationb1e5dfcFix wheel building of mooncake_epb535bbbAdd a fake allreduce implementation779b447Introduce transfer_engine to mooncake_backendfb8918eAdd a basic CPU proxy execution frameworkcf75d22Implement a seemingly working allgather1427db9Remove mooncake_ep's dependency on etcdfab5451Implement_allgather_base📊 Changes
46 files changed (+2532 additions, -992 deletions)
View changed files
📝
.github/workflows/ci.yml(+92 -0)📝
.github/workflows/release.yaml(+97 -1)📝
.typos.toml(+3 -4)📝
CMakeLists.txt(+7 -0)📝
doc/en/build.md(+5 -0)➕
doc/en/ep-backend.md(+70 -0)➕
mooncake-ep/CMakeLists.txt(+42 -0)➖
mooncake-ep/csrc/CMakeLists.txt(+0 -25)➖
mooncake-ep/csrc/mxa_ep.cpp(+0 -594)➕
mooncake-ep/example/CMakeLists.txt(+0 -0)➕
mooncake-ep/include/CMakeLists.txt(+0 -0)➕
mooncake-ep/include/mooncake_backend.h(+86 -0)📝
mooncake-ep/include/mooncake_ep_api.cuh(+4 -9)➕
mooncake-ep/include/mooncake_ep_buffer.h(+168 -0)📝
mooncake-ep/include/mooncake_ep_configs.cuh(+0 -0)📝
mooncake-ep/include/mooncake_ep_event.h(+11 -8)📝
mooncake-ep/include/mooncake_ep_exception.cuh(+0 -2)📝
mooncake-ep/include/mooncake_ep_launch.cuh(+1 -1)📝
mooncake-ep/include/mooncake_ep_utils.cuh(+3 -3)📝
mooncake-ep/include/mooncake_ibgda/compiler.h(+0 -0)...and 26 more files
📄 Description
In this PR, we propose Mooncake EP and the Mooncake Backend.
Mooncake EP is an adaptation of DeepEP that supports fault tolerance for large-scale MoE inference. It remains API-compatible with DeepEP, with an extra
broken_rankstensor to track failed ranks.Mooncake Backend is a PyTorch distributed backend, designed as a fault-tolerant replacement for NCCL and Gloo. it can continue to perform collective communication under rank failures and reports them to upper layers for graceful handling.
Read more at
doc/en/ep-backend.md.Tests
Since the C++ APIs are not intended for direct use, no C++ unit tests are provided. Instead, three Python unit tests are included under
mooncake-wheel/tests/:Performance
Tested on a 8 * H100 node.
Mooncake EP (pure RDMA)
Mooncake Backend
Here is the preliminary performance result of the Mooncake Backend. Further optimizations will be done in the future.
All data are in microseconds.
Mooncake v.s. Gloo
Allgather
Allreduce
Broadcast
Mooncake v.s. NCCL
Allgather
Allreduce
Broadcast
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.