Skip to content

Exact-image NCCL cuMem probe

Date: 2026-09-02

The probe used the candidate image by immutable digest, both local GPUs, --ipc host, Torch distributed with two local NCCL ranks, one CUDA tensor per rank, and a one-element all-reduce. It did not load model weights.

Variant Result Decisive evidence
Image defaults fail NCCL 2.30.7 reported ncclCuMemMapAndSetAccess followed by CUDA error 999 on both ranks.
NCCL_CUMEM_ENABLE=0 only pass NCCL selected SHM/direct; both ranks returned the reduced value 2.0 and exited zero.
cuMem off plus upstream expandable_segments:True fail Both ranks failed their first torch.ones allocation with CUDA error 999, before the collective.
cuMem off plus expandable_segments:False pass Both ranks allocated, NCCL selected SHM/direct, both returned 2.0, and the process exited zero.

The basic two-device CUDA allocation probe had already passed. Together these results isolate the first managed startup failure to NCCL's cuMem allocation path under this local WSL2 driver/runtime combination. The managed recipe therefore adds NCCL_CUMEM_ENABLE=0 and disables the expandable PyTorch CUDA allocator. It does not copy unproven P2P, host-cuMem, or InfiniBand controls from older recipes.