Mooncake/docs
王鹤男 3a1117bccc
[Build] fix(wheel): exclude libfabric/libefa from auditwheel bundle to avoid dual-libfabric EFA conflict (#2271)
* fix(wheel): exclude libfabric/libefa from auditwheel bundle

The wheel build runs `auditwheel repair`, which by default grafts every
non-excluded shared library the extension links against into the wheel's
`.libs/` directory and rewrites RPATH to prefer the bundled copy. The
exclude list already carves out the system RDMA/EFA stack (libibverbs,
libmlx5, libnuma, libcuda, ...) but missed libfabric and libefa.

As a result a pip-installed wheel ships its own
`mooncake_transfer_engine.libs/libfabric-<hash>.so.1` and `engine.so`
loads that instead of the system `/opt/amazon/efa/lib/libfabric.so.1`.
On AWS EFA hosts this puts two independent libfabric instances in one
process: Mooncake uses the bundled one, while aws-ofi-nccl (loaded by
NCCL) uses the system one. Each instance runs its own `ofi_hmem_init`
and opens EFA devices independently. When Mooncake initializes first it
claims the EFA device context; aws-ofi-nccl's later `fi_getinfo` then
returns "provider efa output empty list" and NCCL silently falls back to
the TCP provider (169.254.170.x), which hangs cross-node collectives
such as `all_gather_object`.

libfabric is the one library that MUST be shared with the system
aws-ofi-nccl plugin, so it has to come from the system just like
libibverbs/libmlx5 already do. Excluding it (and libefa) makes the wheel
load the same libfabric the rest of the EFA stack uses, eliminating the
dual-instance conflict.

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 19:32:57 +08:00
..
source [Build] fix(wheel): exclude libfabric/libefa from auditwheel bundle to avoid dual-libfabric EFA conflict (#2271) 2026-06-01 19:32:57 +08:00
Makefile [DOC] feat(docs): build documentation website for Mooncake using Sphinx (#354) 2025-05-12 23:33:18 +08:00
README.md [DOC] feat(docs): build documentation website for Mooncake using Sphinx (#354) 2025-05-12 23:33:18 +08:00
make.bat [DOC] feat(docs): build documentation website for Mooncake using Sphinx (#354) 2025-05-12 23:33:18 +08:00

README.md

Mooncake documents

Build the docs

  • Make sure in docs directory
cd docs
  • Install the dependencies:
pip install -r ../requirements_docs.txt
  • Clean the previous build (optional but recommended):
make clean
  • Generate the HTML documentation:
make html

Be sure to set locale right before building.

Open the docs with your browser

  • Serve the documentation locally:
python -m http.server -d build/html/

This will start a local server at http://localhost:8000. You can now open your browser and view the documentation.

If port 8000 is already in use, you can specify a different port, for example:

python -m http.server 3000 -d build/html/