Mooncake/mooncake-transfer-engine/benchmarks/README.md

1.6 KiB

Memory fabric benchmarks

Drivers for the capability / routing layer. They are standalone scripts and binaries; none are required to build the Transfer Engine.

One-shot demo

hetero/run_demo.sh runs the whole story end to end — conformance over every backend, the probe table, the routing / fault-fallback demo, the CXL/NUMA tier benchmark, and the GPU NVLink benchmark — then renders figures:

./hetero/run_demo.sh [BUILD_DIR]     # BUILD_DIR defaults to ./build
# artifacts + PNGs land in ./fabric-results (override with MC_FABRIC_RESULTS)

hetero/plot.py renders the figures from the collected CSV/JSON and skips any figure whose source is missing (so a partial run still plots what it has).

hetero/gpu_bench.py

Measures device-to-device bandwidth (NVLink / PCIe peer access) versus a pinned-host staging round trip on two GPUs — the concrete payoff the PathSelector captures by preferring nvlink_intra over host_staging_tcp. Requires torch with CUDA and ≥2 GPUs; skips gracefully otherwise.

python3 hetero/gpu_bench.py                 # GPUs 4/5 by default
MC_CUDA_DEV=0 MC_CUDA_PEER=1 python3 hetero/gpu_bench.py
MC_GPU_BENCH_CSV=/tmp/gpu_bench.csv python3 hetero/gpu_bench.py

Capability and conformance (built with the unit tests)

./build/mooncake-transfer-engine/tests/fabric_cli probe          # capability table
./build/mooncake-transfer-engine/tests/fabric_cli select         # routing + fault demo
./build/mooncake-transfer-engine/tests/conformance_runner --json /tmp/conformance.json

Memory tier (Mooncake Store)

./build/mooncake-store/benchmarks/tier_bench --csv /tmp/tier_bench.csv