Commit Graph

113 Commits

Author SHA1 Message Date
Geonwoo Choi 28464f3aee
[Store] Expose batch_replica_clear in Python binding (#1848)
* feat: expose batch_replica_clear in Python binding

Add batch_replica_clear(keys, segment_name) to PyClient/RealClient/DummyClient.
Allows explicit deletion of replicas for lease-expired keys.
Also adds Client::getClientId() public getter.

---------

Signed-off-by: hnts03-moreh <geonwoo.choi@moreh.io>
2026-04-17 17:36:32 +08:00
Zejian Wang c0d07af568
[TransferEngine][ROCm] Add ROCm HIP support to the Mooncake Python package (#1742)
* Add ROCm HIP support to the Mooncake Python package

Expose HIP as the Python-facing AMD GPU transport, wire HIP transport into the
build and runtime selection paths, and fix sticky peer-access errors so
repeated connector initialization works reliably. Update wheel packaging and
container validation to cover ROCm HIP usage in vllm-omni.

Signed-off-by: Zejian Wang <zejianwang@sjtu.edu.cn>

* [Bugfix] Decouple HIP transport from NVLink branch

HIP IPC is intra-node only and should coexist with RDMA, not replace it.

Signed-off-by: Zejian Wang <zejianwang.sjtu.edu.cn>
Signed-off-by: Zejian Wang <zejianwang@sjtu.edu.cn>

* Abandon manual transport

Signed-off-by: Zejian Wang <zejianwang.sjtu.edu.cn>
Signed-off-by: Zejian Wang <zejianwang@sjtu.edu.cn>

* style: apply clang-format to changed files

Signed-off-by: Zejian Wang <zejianwang@sjtu.edu.cn>
Made-with: Cursor
Signed-off-by: Zejian Wang <zejianwang@sjtu.edu.cn>

---------

Signed-off-by: Zejian Wang <zejianwang@sjtu.edu.cn>
Signed-off-by: Zejian Wang <zejianwang.sjtu.edu.cn>
Co-authored-by: Zejian Wang <zejianwang@sjtu.edu.cn>
2026-04-13 11:13:10 +08:00
Han Zhenyu 韩振宇 d3ace8fb20
[Store] Fix `with_hard_pin` failure in python API (#1873)
---------

Signed-off-by: 0oshowero0 <o0shower0o@outlook.com>
2026-04-12 23:22:23 +08:00
Cruz Zhao c3d428b902
[store] Add get_into_ranges to support Grouped Scatter RDMA Reads (#1717)
* [Store] add get_into_range and src_offset plumbing

Add single-key range read support to Mooncake Store:
- get_into_range: read [src_offset, src_offset+size) from an object
  into (buffer + dst_offset)
- submitRangeRead in TransferSubmitter with src_offset support
- Get() overload and TransferReadRange in Client
- DummyClient RPC path via get_into_range_dummy_helper
- PyClient virtual interface for get_into_range

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 18:31:09 +08:00
ZiWei Yuan 17d118ad03
[PG][TE][TENT] Add dedicated peer liveness probe for recovery and enable elastic GPU test (#1808)
* Add dedicated peer liveness probe for PG recovery

* [PG]: add elastic test for GPU mode

* [feat]: code format

* [TEST] rm time delay for mock fault rank

* [TENT]: rm resubmit in get transfer status
2026-04-08 09:56:58 +08:00
Shangming Cai ba862909f5
Bump version to 0.3.10.post1 in pyproject.toml (#1788) 2026-04-01 11:49:13 +08:00
Xun Sun 77ae1034a6
[PG] Enable asynchronous recovered-rank initialization with deferred join (#1744)
During Elastic EP rank recovery, the recovered rank must re-run expensive initialization (especially CUDA graph capture).
  Previously, this required the recovered and healthy ranks to enter the same communication phase, which paused healthy-rank inference and increased recovery disruption.

  This change enables **asynchronous recovered-rank initialization** in Mooncake PG: recovered ranks can initialize in isolation first, then join the live process group after local recovery work is finished.
2026-03-29 13:26:21 +08:00
Liu Yuji af733e1209
[PG] Add GPU barrier support for mooncake-pg (#1751)
Co-authored-by: liam <yzwliam@126.com>
2026-03-27 12:51:01 +08:00
Zhanhao Cao cc2ecf6b1a
[PG] Fix group size expansion (#1706)
* [PG] Fix group size expansion

* fix metadata update.

* remove usage of activeRanks.

* fix comments

* add comments
2026-03-23 20:56:16 +08:00
Shangming Cai 7136c45787
Bump version to 0.3.10 in pyproject.toml (#1693) 2026-03-18 19:18:29 +08:00
ympcMark 59ae11fa0e
[EP] In-place Member Update (#1630) 2026-03-09 11:32:06 +08:00
Teng Ma b381320156
[Store] add safe tensor API (#1199)
---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Xuchun Shang <xuchun.shang@gmail.com>
2026-02-26 10:11:10 +08:00
qiuweit7 30e48cfd93
[Store] feat: CXL storage full features. (#1531)
* [Store] feat: CXL storage full features.

* fix(ci): resolve cxl test failure and code format

* fix(ci): add CXL protocol support and fix code format issues

* [Store] feat: CXL storage full features, reset and rm extern/pybind

* [TE] Support TCP fallback in EFA build and improve EFA documentation (#1523)

When building with USE_EFA=ON, auto_discover is disabled to prevent
RDMA transport installation (QP creation fails on EFA devices). This
means TCP transport is also not installed automatically. Add explicit
TCP transport installation for non-EFA protocols in the EFA build path.

Documentation changes:
- build.md: Add USE_EFA option and clarify USE_CUDA default/purpose
- supported-protocols.md: Add EFA as a supported protocol
- efa_transport.md: Add USE_CUDA=ON to build command, document GPU
  memory requirement

Co-authored-by: whn09 <whn09@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Teng Ma <teng-ma@linux.alibaba.com>

* [Store] Optimize BucketStorageBackend for reduced lock contention and add delete safety (#1456)

* fix(ci): resolve cxl test failure and code format

* [Store] Add Local Cache Mechanism for Mooncake Store Client (#1226)

* feat(Store): add local hot cache for client

* feat(Store): add client local hot cache log to show performance

* fix: local hot cache initialize bug

* fix(Store): Mooncake put slice is max 16MB, so make local hot cache block 16MB

* feat(Store): move local hot cache initialization to Client::Create

* feat(Store):  local hot cache remove unused small block implementation

* feat(Store): add client local hot cache unit test

* fix(Store): modify client local hot cache suit with v0.3.7

* feat(Store): change local hot cache unit tes

* fix: initialize local hot cache with negative value

* feat: use in process master and metadata fro local hot cache unit test.

* feat: update local hot cache to one replica one slice version

* fix: local hot cache unit test use in process master service

* fix: code style fix

* fix: fix dirty read when client wants to read a previously hitted hot block but the hot block is modified by incoming put actions

* fix: local hot cache unit test use in process master service

* fix: code format fix

* fix: fix comment problems for

* feat: add local hot asynchronous queue size limit

* fix: local hot cache task involves the block so that there is no memcpy operation when inserting local hot cache

* fix: code check fix

* fix: update block in_use prop to reference count

---------

Co-authored-by: shichangzhang064 <zhangshichang@h-partners.com>

* fix(ci): add CXL protocol support and fix code format issues

* fix: address comments from code review

* fix(ci): resolve cxl test failure

* fix(ci): resolve ci error

---------

Co-authored-by: 王鹤男 <wanghenan09@gmail.com>
Co-authored-by: whn09 <whn09@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Teng Ma <teng-ma@linux.alibaba.com>
Co-authored-by: Mahesh Bapatu <153306023+maheshrbapatu@users.noreply.github.com>
Co-authored-by: Shichang Zhang <77728761+Shichang-Zhang@users.noreply.github.com>
Co-authored-by: shichangzhang064 <zhangshichang@h-partners.com>
2026-02-24 19:59:45 +08:00
Shangming Cai 62d28faddb
Bump version to 0.3.9 in pyproject.toml (#1498) 2026-02-05 16:10:54 +08:00
Shangming Cai 5c5f18c817
Revert "[Build] feat: use setuptools_scm for more elegant version and support…" (#1497)
This reverts commit 020a906295.
2026-02-05 16:07:16 +08:00
Weixiao Huang 020a906295
[Build] feat: use setuptools_scm for more elegant version and support MOONCAKE_LOCAL_VERSION env (#1479)
* feat: use setuptools_scm for more elegant version and support MOONCAKE_LOCAL_VERSION env

* feat: more compatible

* feat: add fetch-tags for build ci

* feat: manually add Fetch git tags actions

* feat: use fetch-depth: 0 and filter: tree:0

---------

Co-authored-by: huangweixiao <huangweixiao@moonshot.cn>
2026-02-04 00:33:03 +08:00
胡皓然 4f76f12b3c
[PG] Impelemented support for additional collective primitives: **`gather`**, **`scatter`**, and **`reduce`** in the Mooncake backend (#1469) 2026-02-01 17:46:02 +08:00
dtc 45bfd19e11
[Bugfix] sync vllm mooncake connector from main repo (#1466) 2026-01-30 23:35:43 +08:00
Cruz Zhao 17efcb1719
[ep] Avoid mooncake ep test crash when ibgda_init fails (#1410) 2026-01-30 15:31:16 +08:00
uncharted-G 56241b8482
[TE] Support transfer in cuda stream via cudaLaunchHostFunc (#1448)
* feat(transfer-engine): support transfer on cuda

* rename async func

* only batch_transfer_on_cuda

* modify transfer_engine_py.cpp

* remove async pylib

* rename batch_transfer_write_on_cuda

* add log

* fix

* fix

* comment

* fix

* add ut

* fix

* update docs

* fix format

* fix comment

* add goto exit

* check length

---------

Co-authored-by: guohaiqing <guohaiqing02@moonshot.cn>
2026-01-28 17:15:20 +08:00
胡皓然 0b8e1d63c3
[PG] Support full reduction ops (Product/Min/Max) and fix reduce kernel indexing bug (#1440) 2026-01-27 10:35:41 +08:00
Copilot 63778abf88
[Doc] Document all supported communication protocols (#1435)
* Initial plan

* Add comprehensive protocol documentation

Co-authored-by: stmatengss <11641725+stmatengss@users.noreply.github.com>

* Fix table formatting to use markdown instead of RST

Co-authored-by: stmatengss <11641725+stmatengss@users.noreply.github.com>

* Address code review feedback: fix RDMA example and update RDMA test command

Co-authored-by: stmatengss <11641725+stmatengss@users.noreply.github.com>

* Address PR review feedback: update MNNVL terminology and add fallback behavior notes

Co-authored-by: stmatengss <11641725+stmatengss@users.noreply.github.com>

* Update docs/source/getting_started/supported-protocols.md

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stmatengss <11641725+stmatengss@users.noreply.github.com>
Co-authored-by: Teng Ma <teng-ma@linux.alibaba.com>
2026-01-27 01:01:54 +08:00
Yingchun Lai 47501380fe
[Store] feat: wait Master ready when starting Store server (#1438)
* feat: wait master ready

* Update mooncake-wheel/mooncake/mooncake_store_service.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* msg

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-26 17:37:46 +08:00
Bruce-x-1997 7c6508a1b2
[performance] decrease regmr overhead in ep_buffer/gda path (#1414)
* [performance] decrease memset overhead when reg buf

* add regmr overhead test

* fix code format

---------

Co-authored-by: bruce.xu <bruce.xu@gmicloud.ai>
2026-01-22 01:18:30 +08:00
Ruoyu Qin b064a662e4
[Wheel] Remove the default buffer pre-allocation in initialize() (#1415)
* remove pre-allocate

* fix
2026-01-21 23:14:41 +08:00
Cruz Zhao 65019f94ab
[Build] Retrieve the actual glibc version during the build process (#1402)
* [Store] Retrieve the actual glibc version during the build process

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

* [build] avoid use hardcode libc.so.6 and avoid use python in shell script

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>

---------

Signed-off-by: Cruz Zhao <CruzZhao@linux.alibaba.com>
2026-01-20 23:19:29 +08:00
ympcMark 971c99ddca
Split Mooncake PG out of Mooncake EP (#1387) 2026-01-16 13:39:37 +08:00
Shangming Cai 5738f80752
Bump version to 0.3.8.post1 in pyproject.toml (#1348) 2026-01-09 13:31:20 +08:00
Xun Sun 060f2bda53
[EP] Use NVLink in EP if possible (#1308)
* Use NVLink in EP

* Update mooncake-wheel/mooncake/mooncake_ep_buffer.py

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update mooncake-ep/src/mooncake_ep_buffer.cpp

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix

* Fix

* Fix

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-31 12:32:10 +08:00
Shangming Cai 0807ca99bb
Bump version to 0.3.8 in pyproject.toml (#1285) 2025-12-26 15:44:16 +08:00
Xun Sun 32e60d6a33
[EP] Implement send/recv (#1236) 2025-12-22 17:30:32 +08:00
Xun Sun 832ae19492
[EP] Implement elastic scaling up (#1173) 2025-12-22 14:10:40 +08:00
Xun Sun 44dde2dfa2
[EP] Fix the tensorSize of the barrier op (#1222)
* Fix the tensorSize of the barrier op

* Fix
2025-12-17 15:50:12 +08:00
Xun Sun 73fe0b954f
[CI] Add a CI test for Mooncake EP Backend (CPU only) (#1099)
* Add a CI test for Mooncake EP Backend (CPU only)

* Cleanup disk space

* Update mooncake_backend.cpp

* Do not call cuda APIs for the mooncake-cpu backend

* Change transport protocol from RDMA to TCP

* Fix

* Fix memory leak in MooncakeBackend destructor (#1164)

* Initial plan

* Add destructor to fix memory leak in MooncakeBackend

Co-authored-by: UNIDY2002 <41641284+UNIDY2002@users.noreply.github.com>

* Final update: Memory leak fix completed

Co-authored-by: UNIDY2002 <41641284+UNIDY2002@users.noreply.github.com>

* Delete _codeql_detected_source_root

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: UNIDY2002 <41641284+UNIDY2002@users.noreply.github.com>
Co-authored-by: Xun Sun <UNIDY2002@outlook.com>

* Update mooncake-ep/src/mooncake_worker.cu

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Use `kWildcardLocation` when registering GPU memory

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-05 12:49:26 +08:00
EkiRui 556fe771d1
feat(Store): Support Connecting Multiple Dummy Clients to One Real Client (#1122) 2025-11-28 17:59:09 +08:00
Xun Sun 63f395e165
[EP] Support multiple torch versions (#1098)
* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug

* Debug
2025-11-28 14:25:45 +08:00
EkiRui 7517db4585
[Store] feat: Add standalone deployment implementation for Client (#1084)
* [Store]: Add independent deployment implementation for Client

Signed-off-by: Xingrui Yi <yixingrui@linux.alibaba.com>

* [Doc]: mooncake-store: add introduce for client standalone mode

Signed-off-by: Xingrui Yi <yixingrui@linux.alibaba.com>

* [CI]: Add dummy client test

Signed-off-by: Xingrui Yi <yixingrui@linux.alibaba.com>

* [Store]: Change dummy client setup into a new func

Signed-off-by: Xingrui Yi <yixingrui@linux.alibaba.com>

* [Store]: Add more log for dummy client

Signed-off-by: Xingrui Yi <yixingrui@linux.alibaba.com>

---------

Signed-off-by: Xingrui Yi <yixingrui@linux.alibaba.com>
2025-11-25 23:57:30 +08:00
Ziming Huang aca40c76a3
[BugFix] Adapt mooncake_connector_v1 to latest vllm (#1080) 2025-11-25 11:49:51 +08:00
popsiclexu 7519ac900b
[TE/Topology] Support device filtering when dumping topology (#1087)
* [TE/Topology] Update getLocalTopology to accept device name parameter for filtering

Signed-off-by: popsiclexu <zhenxuexu@gmail.com>
Signed-off-by: zhenxue.xu <zhenxue.xu@mthreads.com>

* fix format

---------

Signed-off-by: popsiclexu <zhenxuexu@gmail.com>
Signed-off-by: zhenxue.xu <zhenxue.xu@mthreads.com>
2025-11-24 23:09:21 +08:00
Xun Sun 77c16fea73
[EP] Fallback impl of Mooncake EP when IBGDA is unavailable (#1002)
* Implement a fallback impl of EP's dispatch & combine when IBGDA is not available

* Fix format

* Fix

* Fix

* Add fault-tolerance support for the fallback path

* Fix

* Fix

* Exit from `__init__` early, if using fallback impl of EP

* Fix

* Fix
2025-11-21 16:28:33 +08:00
ykwd 13dfc41cc2
[Doc] Update SGLang Hicache Docs (#1023) 2025-11-10 17:55:03 +08:00
Shangming Cai b6a841dc78
Bump version to 0.3.7.post2 in pyproject.toml (#1015) 2025-11-04 12:38:36 +08:00
Xun Sun 1a4c01512d
[Misc] Lazy import `ep` in `mooncake_ep_buffer.py` (#1014)
* Lazy import `ep` in `mooncake_ep_buffer.py`

* Fix
2025-11-04 11:49:15 +08:00
Shangming Cai 1072309c7c
Bump version to 0.3.7.post1 in pyproject.toml (#984) 2025-11-03 11:40:41 +08:00
Shangming Cai e484ff0c96
Bump version to 0.3.7 in pyproject.toml (#959)
* Bump version to 0.3.7 in pyproject.toml

* Update build guide with CUDA installation note

Added note about CUDA requirement for mooncake-transfer-engine.

* Update build.md
2025-10-24 15:10:08 +08:00
Syspretor dde5c1d894
[Store] feat: support load config from env for mooncake store_service (#951)
Co-authored-by: 玖宇 <guotongyu.gty@alibaba-inc.com>
2025-10-23 14:47:40 +08:00
ympcMark 3cdb272c8c
[Misc] For EP, use chunked transfer to handle larger tensors 2025-10-11 19:13:37 +08:00
Xun Sun 4040e1b2ea
[Misc] For EP, pass device_name instead of nic_id when creating `ep.Buffer` (#910)
* Pass device_name instead of nic_id when creating `ep.Buffer`

* Fix according to review
2025-10-08 14:19:02 +08:00
doujiang24 2d80ed15b7
[TransferEngine] initiator_test script: make it works with P2PHANDSHAKE. (#907) 2025-10-05 11:41:13 +08:00
dtc 66fd297401
[Misc] improvements for mooncake_connector_v1 (#906)
Group contiguous block ids.
Add expired time for P node.
Copy proxy server from vllm repo.

Signed-off-by: Tianchen Ding <dtcccc@linux.alibaba.com>
2025-10-04 10:23:20 +08:00