Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
69be485
First attempt
Le1zyCatt Jun 24, 2026
3b738c4
Second attempt
Le1zyCatt Jun 24, 2026
84b9b00
Fixed some compile bugs.
Le1zyCatt Jun 24, 2026
20fbadb
Merge remote-tracking branch 'origin' into UB_TENT
Le1zyCatt Jun 25, 2026
6d1e0d0
Merged main and fixed destroy() func to locate more precisely.
Le1zyCatt Jun 25, 2026
6395d59
Fixed wrong usage of urma_uninit in deconstruct()
Le1zyCatt Jun 25, 2026
e65c6cd
Fix memalign logic, mainly in ub_tent_transport_test.cpp and urma_end…
Le1zyCatt Jun 25, 2026
a3b16ce
Bugfix: Reference count not released.
Le1zyCatt Jun 25, 2026
3a315fc
Fixed register bug.
Le1zyCatt Jun 26, 2026
d55c7a8
Fixed device selecting problem.
Le1zyCatt Jun 29, 2026
1bd9dec
Merge branch 'kvcache-ai:main' into UB_TENT
Le1zyCatt Jun 29, 2026
77bde65
Fixed failover to tcp.
Le1zyCatt Jul 1, 2026
973b64a
Change lazy create into preConnect.
Le1zyCatt Jul 1, 2026
7740c4b
Replaced preConnect with proper eid convey.
Le1zyCatt Jul 1, 2026
975c155
Merged upstream/main into UB_TENT.
Le1zyCatt Jul 1, 2026
41dfc65
Fixed cmake and added ControlService::onBootstrapUb()'s callback.
Le1zyCatt Jul 1, 2026
332cd10
Fixed cmake crash.
Le1zyCatt Jul 2, 2026
7604e53
Merge branch 'kvcache-ai:main' into UB_TENT
Le1zyCatt Jul 2, 2026
419c221
Updated ub_phase3_test_guide.md.
Le1zyCatt Jul 2, 2026
e51c5af
Revise UB Phase 3 Test Guide for clarity and updates
Le1zyCatt Jul 2, 2026
4b0e864
Update .gitignore
Le1zyCatt Jul 3, 2026
e7be729
Bump golang.org/x/net in /mooncake-common/k8s-lease (#2742)
dependabot[bot] Jul 4, 2026
1fe59e6
[TE] Add TPU (PJRT) staging support to TENT (#2733)
Liwink Jul 4, 2026
8567ab0
[Store] Make batch_query_keys read-only and return all replica types …
smartssw Jul 4, 2026
f704fb8
[Doc] Add agent guidance (#2712)
Aionw Jul 4, 2026
275e84c
[TransferEngine] Prefer private-range IPv4 GIDs over link-local IPv6 …
n-WN Jul 5, 2026
65edc67
[TE] Downgrade unrecognized mem addr log from ERROR to INFO (#2734)
ascend-direct-dev Jul 5, 2026
bb1b084
[Store] Enable hugepage mmap in allocate_buffer_numa_segments (#2417)
mikegguo Jul 5, 2026
f66d16d
[TENT] Fix data race on local SegmentDesc via copy-on-write snapshots…
n-WN Jul 5, 2026
bd8cc9f
[Store] rust: format mooncake store bindings (#2737)
Aionw Jul 5, 2026
4febcca
[TE] Fix MNNVL staging path reading capabilities from RDMA transport …
staryxchen Jul 6, 2026
712f472
[Store] add etcd tenant quota connector (#2687)
Lin-z-w Jul 6, 2026
023cb88
[Store] Fix ConfigDict global segment size validation (#2661)
bitborne Jul 6, 2026
3adc3aa
[Store] Refactor store buffer headers and slice splitting (#2732)
Aionw Jul 6, 2026
d4a1f39
[TENT] SelectionPolicy: per-policy SL/TC/qp_pool schema (RFC #2568 st…
catyans Jul 6, 2026
29b22aa
[Store] feat: allow configuring client tenant id (#2755)
Lin-z-w Jul 6, 2026
118382f
[TE] Fix cross-GPU NVLink/MNNVL event-stream device mismatch (#2722) …
xiangui33423 Jul 6, 2026
af29ca7
[TE] Route cross-host targets over rdma automatically in rdma+hip mul…
Lzy17 Jul 6, 2026
d4cfe3c
Bump golang.org/x/net (#2730)
dependabot[bot] Jul 6, 2026
f1f5e40
[CI/Build] Add dedicated tent-ci job with CUDA/CPU matrix (#2720)
staryxchen Jul 6, 2026
a407c52
[Doc] Update README with LightX2V deployment details (#2767)
stmatengss Jul 6, 2026
7c03cc9
[Store] Add BatchEvict candidate-selection benchmark (#2584)
jacklin78911-collab Jul 7, 2026
dd4f40d
docs: clarify local SSD offload configuration (#2728)
feichai0017 Jul 7, 2026
cf635de
[Wheel] Validate MooncakeConfig fields with fail-fast errors (#2456)
SuperMarioYL Jul 7, 2026
8ceac27
[Store] Externalize S3 client config via environment variables (#2649)
mzygQAQ Jul 7, 2026
a3585aa
[TENT] Per-pool QP allocation with per-pool SL/TC (RFC #2568 step 2) …
catyans Jul 7, 2026
62b13ea
Enhance UB Phase 3 Test Guide for etcd setup
Le1zyCatt Jul 7, 2026
fbf32ca
[TENT] Make RDMA NIC allow/deny list configurable via MC_FILTER_NIC(_…
catyans Jul 7, 2026
f9aef2e
[CI] Extract reusable wheel build/publish workflows (#2723)
mgoin Jul 7, 2026
2e21a45
[Store] Support local_buffer_size in mooncake_client (#2740) (#2739)
NUABO Jul 7, 2026
84b2d91
[TENT] Opt-in earliest-deadline-first dispatch in admission queue (RF…
catyans Jul 7, 2026
0d7f0a0
[Bench] Enable replay speedup and multi-threading in SSD Benchmarking…
alogfans Jul 8, 2026
09c32f9
[TENT] Deadline-infeasible drop + degradation hook (RFC #2519 step 3)…
catyans Jul 8, 2026
454c349
[Store] Fix S3 list objects pagination (#2778)
feichai0017 Jul 8, 2026
83ff47f
[Store] feat: add optional RFC #1527 KV events publisher on master (#…
stmatengss Jul 8, 2026
713edc5
[TENT] RailMonitor: prefer same-name device for cross-NUMA rail mappi…
catyans Jul 8, 2026
e07774f
[Build] Bump golang.org/x/net in /mooncake-p2p-store/src/p2pstore (#2…
dependabot[bot] Jul 8, 2026
f1c762a
[Store] fix: reject empty keys in HTTP metadata server (#2770)
VectorPeak Jul 8, 2026
df84a55
[wip] docs: add vLLM V1 MooncakeStore KV cache sharing benchmark (#2773)
LujhCoconut Jul 8, 2026
c989668
[Build] Bump golang.org/x/crypto (#2789)
dependabot[bot] Jul 8, 2026
866ed32
[Store] Fix --host parameter to support ip:port format for TransferEn…
NUABO Jul 9, 2026
da11646
[TENT] Opt-in per-entry priority promotion (#2528) (#2788)
catyans Jul 10, 2026
6273d18
[TENT] Expose Request.deadline_ns and policy_name to Python bindings …
catyans Jul 10, 2026
fc6cd16
Merged main into UB_TENT.
Le1zyCatt Jul 10, 2026
130b959
[Bugfix][TENT] Fix silent TPU data corruption for transfers larger th…
Liwink Jul 10, 2026
b7b63b3
Merge remote-tracking branch 'zchuango/UB_TENT' into UB_TENT
Le1zyCatt Jul 10, 2026
3d0748c
[Doc] Reorganize performance docs (#2824)
ykwd Jul 10, 2026
0b4a12c
[Bugfix] Skip os.chmod when binary is already readable and executable…
Csrayz Jul 10, 2026
548cf17
Merge remote-tracking branch 'upstream/main' into UB_TENT
Le1zyCatt Jul 10, 2026
d47bf55
Rename ub_tent_transport_guide.md
zchuango Jul 10, 2026
8dee809
[CI/Build] Fix compile warnings (#2825)
Aionw Jul 10, 2026
c2d7ecf
Took Gemini's review.
Le1zyCatt Jul 10, 2026
98ff4e4
[Store] Refactor: Extract snapshot orchestration into MasterSnapshotM…
xiangui33423 Jul 10, 2026
d409ed8
[TENT] Add IntentType enum to Request for Transfer Intent API (#2810)
catyans Jul 10, 2026
4188e3a
[TENT] admission queue: deadline proximity promotion for dispatch (#2…
catyans Jul 10, 2026
6894c2d
[TransferEngine] Add show-link diagnostic tool for NIC topology (#2820)
catyans Jul 11, 2026
29b4946
[TransferEngine] Add graceful shutdown for SIGTERM/SIGINT (#2812)
catyans Jul 12, 2026
721ec57
[TransferEngine] Validate batch memory registrations (#2854)
feichai0017 Jul 12, 2026
2dfa138
[TE] Make ThreadLocalStorage per-instance and reclaim per-thread hold…
n-WN Jul 12, 2026
5507b5c
[EP] Cap active RoCE QPs for IBGDA kernels (#2544)
UNIDY2002 Jul 13, 2026
4293dce
[EP] add DeepEP V2 elastic buffer (#2503)
UNIDY2002 Jul 13, 2026
7192ff4
[TE] Add host control fallback for IBGDA QP setup (#2867)
UNIDY2002 Jul 13, 2026
eb417ef
[CI] Migrate tone_tests to CUDA 13: pull cu130 wheel, adapt sglang/vl…
luketong777 Jul 13, 2026
de58b58
[TransferEngine] Acknowledged TCP framing: COMPLETED means applied at…
n-WN Jul 13, 2026
76ee599
[TransferEngine] Reserve in-flight memory registrations (#2870)
feichai0017 Jul 13, 2026
f8c9667
[TransferEngine] Optimize MACA P2P copy path (#2774)
Dayuxiaoshui Jul 13, 2026
4ff713c
[Store] Speed up HugeTLB population before RDMA registration (#2838)
zhangzuo21 Jul 13, 2026
822afa3
[TE] Fix RDMA transport rail-failure handling and CQ timeout diagnost…
alogfans Jul 13, 2026
0cc5012
[TENT] Add best-effort RDMA task cancellation (#2851)
catyans Jul 13, 2026
1fde7b6
[Bugfix] Gate RDMA sends until active side confirms QP readiness (#2625)
LCAIZJ Jul 13, 2026
159df02
[Store] feat: expose client metrics HTTP config to Python (#2822)
Lin-z-w Jul 13, 2026
a2966b6
[TENT] Add causal chain stage decomposition for transfer latency (#2821)
catyans Jul 13, 2026
9eeac58
[TE] Add metadata refresh polling for segment cache (#2795)
greatwhole Jul 13, 2026
1ac6f3a
[TENT] Bind transport policies to intent type (#2847)
catyans Jul 13, 2026
75906c7
[store] Opt-in topology-aware remote replica scoring in SelectBestRep…
catyans Jul 14, 2026
2de632a
[Store] Extract master snapshot codec from MasterService(3/5) (#2831)
xiangui33423 Jul 14, 2026
0be3166
[TENT] Opt-in deadline-aware NIC bandwidth arbitration
catyans Jul 14, 2026
000b848
[Transfer Engine] Refresh RDMA metadata on HCA and GID change events …
alogfans Jul 14, 2026
7568dac
docs: add Kubernetes Deployment Guide for Mooncake Store and Transfer…
tpiperatgod Jul 14, 2026
0601f2b
[Store] Fix SSD offload publish-before-commit race (#2799) (#2818)
LujhCoconut Jul 14, 2026
3fb0336
[STORE] Implement FIFO eviction for OffsetAllocatorStorageBackend (#2…
LujhCoconut Jul 14, 2026
5780fbb
[TENT] Reuse and release SHM relocation mappings across threads (#2891)
morluto Jul 14, 2026
fc0623b
[TE] Reject empty RDMA completion resources during context setup (#2892)
morluto Jul 14, 2026
dfefd58
[Store] Tune Master defaults based on RPC scaling results (#2871)
Aionw Jul 14, 2026
930cb62
[TENT] Wire live RDMA bandwidth into admission queue degradation poli…
catyans Jul 14, 2026
5ade6dd
[TE] Use std::atomic to support ARM64 relaxed ordering (#2897)
alogfans Jul 15, 2026
6e3a11b
[TE] Reject unsupported NVMe-oF task batches and correlate cuFile com…
morluto Jul 15, 2026
3bbd9b2
[Store] Make batch_evict_bench scale and eviction ratios configurable…
jacklin78911-collab Jul 15, 2026
3a38cb8
[TENT] Add receiver-credit ledger model and protocol invariants
catyans Jul 15, 2026
9c6fc51
[TENT] Add QoS metrics baseline to tebench (#2845)
catyans Jul 15, 2026
402673e
[TENT] Fix mismatched cuFileBatchIOGetStatus semantics in gds transpo…
tong1heng Jul 15, 2026
dfa8f28
[Store] fix GPU-addressed local copy crashes (#2926)
zxpdemonio Jul 15, 2026
f3f6f6c
[Doc] Update README news (#2940)
Copilot Jul 15, 2026
7755a14
[TransferEngine] Share one dma_buf fd across all NICs to avoid ×N BAR…
Dao007forever Jul 16, 2026
1694838
[Store] Extract snapshot restore path into layered architecture(4/5) …
xiangui33423 Jul 16, 2026
042bca9
Merge branch 'main' into UB_TENT
zchuango Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
184 changes: 184 additions & 0 deletions .github/workflows/_build-wheel.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
name: _build-wheel

# Shared build for one wheel variant (matrixed over Python version), used by the
# Release and Pre-Release workflows so both build identically.

on:
workflow_call:
inputs:
runner:
type: string
required: true
container:
# x86 builds run in manylinux2_28 so the wheel's libstdc++/glibc floor
# stays low enough to import on RHEL/Rocky/Alma 8+. '' = bare runner.
type: string
default: ''
python-versions:
type: string
default: '["3.10", "3.11", "3.12", "3.13"]'
cuda:
# none | container | sbsa-12.8 | sbsa-13.0
type: string
default: none
cmake-args:
# Space-separated -D flags. No semicolons; use ep-torch-versions for those.
type: string
required: true
cmake-generator:
type: string
default: ''
ep-torch-versions:
type: string
default: ''
build-with-ep:
type: string
default: '0'
variant-flag:
# build_wheel.sh variant set to 1, e.g. CU13_BUILD, NON_CUDA_BUILD
type: string
default: ''
torch-cuda-arch-list:
type: string
default: ''
build-nvlink-allocator:
type: boolean
default: false
artifact-prefix:
type: string
required: true

env:
SCCACHE_GHA_ENABLED: "true"

jobs:
build:
runs-on: ${{ inputs.runner }}
container: ${{ inputs.container }}
permissions:
contents: read
strategy:
matrix:
python-version: ${{ fromJSON(inputs.python-versions) }}
env:
BUILD_WITH_EP: ${{ inputs.build-with-ep }}
TORCH_CUDA_ARCH_LIST: ${{ inputs.torch-cuda-arch-list }}
CMAKE_ARGS: ${{ inputs.cmake-args }}
CMAKE_GEN: ${{ inputs.cmake-generator }}
EP_TORCH_VERSIONS_INPUT: ${{ inputs.ep-torch-versions }}
VARIANT_FLAG: ${{ inputs.variant-flag }}
steps:
- name: Checkout source
uses: actions/checkout@v4

- name: Mark workspace safe for git (container runs as root)
if: ${{ inputs.container != '' }}
run: git config --global --add safe.directory '*'

- name: Set version from tag
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_ENV"

- name: Select Python ${{ matrix.python-version }} from manylinux image
if: ${{ inputs.container != '' }}
run: |
PYV_NODOT=$(echo "${{ matrix.python-version }}" | tr -d '.')
PYBIN="/opt/python/cp${PYV_NODOT}-cp${PYV_NODOT}/bin"
echo "$PYBIN" >> "$GITHUB_PATH"
"$PYBIN/pip" install --quiet "cmake<4" setuptools wheel

- name: Set up Python ${{ matrix.python-version }}
if: ${{ inputs.container == '' }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Free up disk space
if: ${{ inputs.container == '' }}
run: |
sudo rm -rf /usr/share/dotnet /opt/ghc /opt/hostedtoolcache/CodeQL /usr/local/lib/android
df -h

- name: Install CUDA Toolkit (arm64 SBSA)
if: ${{ startsWith(inputs.cuda, 'sbsa-') }}
run: |
ver="${{ inputs.cuda }}"; ver="${ver#sbsa-}"
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/sbsa/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install -y "cuda-toolkit-${ver/./-}"
echo "/usr/local/cuda/bin" >> "$GITHUB_PATH"
/usr/local/cuda/bin/nvcc --version

- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.9

- name: Configure sccache
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_RESULTS_URL', process.env.ACTIONS_RESULTS_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

- name: Configure project
run: |
SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo"
if [ -n "$SUDO" ] && command -v apt-get >/dev/null 2>&1; then
$SUDO apt-get update -y || true
fi
$SUDO bash -x dependencies.sh -y
echo "/usr/local/go/bin" >> "$GITHUB_PATH"
gen=(); [ -n "$CMAKE_GEN" ] && gen=(-G "$CMAKE_GEN")
ep=(); [ -n "$EP_TORCH_VERSIONS_INPUT" ] && ep=(-DEP_TORCH_VERSIONS="$EP_TORCH_VERSIONS_INPUT")
mkdir -p build && cd build
# shellcheck disable=SC2086
cmake "${gen[@]}" .. $CMAKE_ARGS "${ep[@]}" -DPython3_EXECUTABLE="$(which python3)"

- name: Build project
run: |
for dir in /usr/local/cuda/lib64/stubs /usr/local/cuda/targets/*/lib/stubs; do
[ -d "$dir" ] && export LIBRARY_PATH="$dir:${LIBRARY_PATH:-}"
done
[ -d /usr/local/cuda ] && export CUDA_HOME=/usr/local/cuda
SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo -E"
cd build
cmake --build . -j"$(nproc)"
$SUDO cmake --install .

- name: Build nvlink_allocator.so
if: ${{ inputs.build-nvlink-allocator }}
run: |
export PATH=/usr/local/nvidia/bin:/usr/local/nvidia/lib64:$PATH
if [ -d /usr/local/cuda/lib64/stubs ]; then
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/stubs:${LD_LIBRARY_PATH:-}
export LIBRARY_PATH=/usr/local/cuda/lib64/stubs:${LIBRARY_PATH:-}
fi
mkdir -p build/mooncake-transfer-engine/nvlink-allocator
cd mooncake-transfer-engine/nvlink-allocator
bash build.sh ../../build/mooncake-transfer-engine/nvlink-allocator/

- name: Run sccache stat for check
if: ${{ env.SCCACHE_PATH != '' }}
run: ${SCCACHE_PATH} --show-stats

- name: Generate Python version tag
id: pytag
run: echo "tag=$(echo ${{ matrix.python-version }} | tr -d '.')" >> "$GITHUB_OUTPUT"

- name: Build Python wheel
run: |
[ -d /usr/local/cuda ] && export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:/usr/local/lib"
variant=()
[ -n "$VARIANT_FLAG" ] && variant=("$VARIANT_FLAG=1")
env "${variant[@]}" \
PYTHON_VERSION="${{ matrix.python-version }}" \
OUTPUT_DIR="dist-py${{ steps.pytag.outputs.tag }}" \
./scripts/build_wheel.sh
env:
VERSION: ${{ env.VERSION }}

- name: Upload Python wheel artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact-prefix }}-py${{ steps.pytag.outputs.tag }}
path: mooncake-wheel/dist-py${{ steps.pytag.outputs.tag }}/*.whl
49 changes: 49 additions & 0 deletions .github/workflows/_publish-wheel.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: _publish-wheel

# Shared publish tail: collect this run's wheels, attach to the GitHub Release,
# and upload to PyPI. Used by the Release workflows.

on:
workflow_call:
inputs:
artifact-pattern:
type: string
required: true
secrets:
pypi-token:
required: false

jobs:
publish:
runs-on: ubuntu-22.04
permissions:
contents: write
id-token: write
steps:
- name: Checkout source
uses: actions/checkout@v4

- name: Download all wheel artifacts
uses: actions/download-artifact@v4
with:
path: mooncake-wheel/dist-all
pattern: ${{ inputs.artifact-pattern }}

- name: Prepare wheels for release
run: |
mkdir -p mooncake-wheel/dist-release
find mooncake-wheel/dist-all -name "*.whl" -exec cp {} mooncake-wheel/dist-release/ \;
echo "Collected wheels for release:"
ls -la mooncake-wheel/dist-release/

- name: Upload wheels to GitHub Release
uses: softprops/action-gh-release@v1
with:
files: mooncake-wheel/dist-release/*.whl

- name: Publish package to PyPI
if: ${{ github.repository == 'kvcache-ai/Mooncake' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: mooncake-wheel/dist-release/
password: ${{ secrets.pypi-token }}
Loading
Loading