Mooncake/scripts
王鹤男 af26a48c03
[CI] Add AWS EFA wheel build/release to official CI/CD (#2565)
* ci: add AWS EFA wheel build/release to official CI/CD

Adds EFA (libfabric) wheel variants to the wheel pipeline, mirroring the
existing non-cuda / cuda13 / npu variant pattern. The EFA transport memory
path is CUDA-aware (FI_HMEM_CUDA / GPUDirect under USE_CUDA=ON, FI_HMEM=system
otherwise), so two PyPI packages are produced:

  mooncake-transfer-engine-efa            USE_EFA=ON USE_CUDA=ON  (GPU)
  mooncake-transfer-engine-efa-non-cuda   USE_EFA=ON USE_CUDA=OFF (CPU/DRAM)

No EFA hardware is needed to build: USE_EFA only needs libfabric headers/lib
to compile and link, which the stock ubuntu runner gets from the distro
libfabric-dev package. auditwheel already excludes libfabric/libefa from the
wheel (build_wheel.sh) so they resolve to the user system AWS EFA install at
runtime, avoiding the dual-libfabric / device-claim conflict. The distro
libfabric (1.x) is ABI-forward-compatible with the AWS EFA libfabric (2.x)
loaded at runtime; the EFA transport uses only long-stable fi_* APIs.

Changes:
- scripts/build_wheel.sh: add EFA_BUILD / EFA_NON_CUDA_BUILD variants that
  rename the package to mooncake-transfer-engine-efa{,-non-cuda}.
- .github/workflows/ci_efa.yml: PR-time build validation (one python per
  variant), wired into ci.yml CI Gate. Verifies libfabric is NOT bundled.
- .github/workflows/release-efa.yaml: tag-triggered full python matrix
  (3.10-3.13) x {cuda, non-cuda}, publishes to GitHub Release + PyPI.

Verified end-to-end on a p5.48xlarge: both variants build, produce the
correct package names, and exclude libfabric from the wheel.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(efa): document PyPI install and EFA wheel CI/CD

Now that EFA wheels are published by the release pipeline, document the
recommended path (pip install mooncake-transfer-engine-efa / -efa-non-cuda)
before the build-from-source instructions, and note the EFA_BUILD /
EFA_NON_CUDA_BUILD variant env vars plus the ci_efa.yml / release-efa.yaml
workflows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ci(efa): split EFA release into per-package workflows; bump CUDA to 12.8.1

Address review feedback on PR #2565:

- Split release-efa.yaml (which built both cuda + non-cuda via a matrix.variant)
  into two standalone workflows, one per PyPI package, mirroring the existing
  release.yaml / release-non-cuda.yaml pattern:
    * release-efa.yaml          -> mooncake-transfer-engine-efa (USE_CUDA=ON)
    * release-efa-non-cuda.yaml -> mooncake-transfer-engine-efa-non-cuda (USE_CUDA=OFF)
  Each has its own build matrix, libfabric-exclusion check, artifact pattern, and
  publish-release/PyPI step, so a package publishes from a dedicated workflow
  (per-package trusted publisher / artifact pattern).

- Bump CUDA Toolkit 12.4.1 -> 12.8.1 in ci_efa.yml and release-efa.yaml to match
  the version used across the rest of the repo workflows (ShangmingCai review).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: whn09 <whn09@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 10:32:46 +08:00
..
ascend [CI] Add release-npu workflow for Ascend NPU release (#2178) 2026-05-22 15:31:07 +08:00
management [CLI] add script for metadata management (#1746) 2026-03-26 13:18:19 +08:00
tone_tests [Store] Add lock-free MmapArena allocator for buffer mmap path (#1820) 2026-05-03 14:18:18 +08:00
bench_engram_store_27b.py [engram] support engram (#1483) 2026-05-08 19:52:35 +08:00
build_wheel.sh [CI] Add AWS EFA wheel build/release to official CI/CD (#2565) 2026-06-26 10:32:46 +08:00
check_hicache_hugepage_requirements.py [Store] Add lock-free MmapArena allocator for buffer mmap path (#1820) 2026-05-03 14:18:18 +08:00
code_format.sh [CI] allow clang-format (generic binary) to be detected as version 20 (#2334) 2026-06-10 12:12:48 +08:00
generate_cluster_topology.py [TE] Add TENT codebase to main (Phase 1: structural import) (#1213) 2025-12-22 19:22:13 +08:00
run_tests.sh [Store] support graceful shutdown for mooncake_master on SIGINT/SIGTERM (#2359) 2026-06-10 10:35:39 +08:00
test_async_store.py [store] add async api (#1265) 2025-12-25 16:46:14 +08:00
test_copy_move_api.py [Store][Feature] copy and move client support (#1364) 2026-02-06 19:02:02 +08:00
test_drain_http_api.py feat(store): expose drain job control via master HTTP API (#1815) 2026-04-09 14:33:45 +08:00
test_engram_store.py [engram] support engram (#1483) 2026-05-08 19:52:35 +08:00
test_hicache_hugepage_requirements.py [Store] Add lock-free MmapArena allocator for buffer mmap path (#1820) 2026-05-03 14:18:18 +08:00
test_installation.sh [CI] pin torch version to 2.11.0 (#2105) 2026-05-15 17:36:46 +08:00
test_tensor_api.py [Store] Introduce cached batch query result (#1834) 2026-06-10 10:15:31 +08:00
test_upsert_api.py [Store] Unified parallel tensor IO (#1389) 2026-04-27 23:39:40 +08:00