Investigate CUDA 13.2 NVSHMEM all-to-all hangs on B200
- Dominant language
- Python
- Stars
- 103k
- Forks
- 29.5k
- PR merge metrics
- PR metrics pending
Description
## Summary
> Seems that cuda 13 works but cuda 13.2 does not we should investigate if this is expected behavior
## AI-generated audit evidence
> The following analysis was generated from a review of scheduled `pytorch/pytorch` B200 CI records, representative logs, the current test source, and a local capability check. It is included as supporting evidence for the human concern above.
>
> ### Observed behavior
>
> In the audited `Limited CI for symmetric memory tests on B200` workflow, the two most recent CUDA 13.2 scheduled jobs failed. In representative job `95142182587`:
>
> 1. `distributed/test_symmetric_memory.py` passed in 3.58 minutes.
> 2. `NVSHMEMAll2AllTest::test_all_to_all_vdev_2d_align_1` timed out at 30 minutes three times.
> 3. `NVSHMEMAll2AllTest::test_all_to_all_vdev_2d_align_16` timed out at 30 minutes three times.
> 4. The overall 210-minute test-step timeout killed the job while the `align_8` case was starting.
>
> CUDA 13.0 completed the same workflow in approximately 31 minutes on the same PyTorch commit. This makes a CUDA 13.2/NVSHMEM-specific regression or compatibility difference more likely than a generally slow test.
>
> The affected tests are in `test/distributed/test_nvshmem.py` and exercise `torch.ops.symm_mem.all_to_all_vdev_2d` with `major_align` values 1, 8, and 16.
>
> ### Local reproduction constraints
>
> The available development host was checked before filing:
>
> ```text
> GPUs: 2 x NVIDIA GB200
> CUDA toolkit: 13.1
> PyTorch NVSHMEM: unavailable
> ```
>
> Therefore a normal local PTQ worktree cannot reproduce the failing configuration. A useful reproducer needs an eight-GPU B200 node, the CUDA 13.2 CI environment, and an NVSHMEM-enabled PyTorch build. A local workspace can prepare instrumentation or a focused test command, but execution must happen on matching hardware and software.
>
> ### Suggested investigation
>
> - Run the three alignment cases independently on the exact CUDA 13.0 and CUDA 13.2 CI images.
> - Capture NCCL and NVSHMEM initialization, transport, and progress diagnostics before the timeout.
> - Compare CUDA, driver, NVSHMEM, NCCL, and transport-plugin versions between the two images.
> - Determine whether the hang occurs during rendezvous, split exchange, the NVSHMEM all-to-all kernel, or synchronization afterward.
> - Do not address this by increasing the workflow timeout; each isolated alignment case should be bounded.
>
> ### Suggested completion criteria
>
> - Each alignment case completes repeatedly under CUDA 13.2 on eight B200 GPUs, or the incompatible case is narrowly disabled with a linked root-cause report and bounded reproducer.
> - CUDA 13.0 behavior remains unchanged.
> - A future hang produces diagnostics identifying its last successful phase rather than consuming the entire 210-minute test budget.
cc @awgu @wanchaol @fegin @fduwjj @wz337 @wconstab @d4l3k @pragupta @msaroufim @dcci @aditvenk @weifengpy @kapilsh
Contributor guide
Research direction
Start with test/distributed/test_nvshmem.py and run NVSHMEMAll2AllTest::test_all_to_all_vdev_2d_align_1, align_8, and align_16 independently in the CUDA 13.0 and 13.2 CI environments on eight B200 GPUs. Capture the requested NCCL/NVSHMEM diagnostics and compare component versions to identify the last successful phase. Done means the cases complete repeatedly under CUDA 13.2, or an incompatible case is narrowly bounded and documented with a root-cause report.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- distributed-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100