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