Skip to content

fix(rccl): CPX 64-rank comm-init crashes (bootstrap AllGather + WarpSpeed) (#8077) - #8194

Merged
marbre merged 1 commit into
release/therock-7.14from
users/marbre/7.14-cherry-pick-831fad2
Jul 7, 2026
Merged

marbre merged 1 commit into
release/therock-7.14from
users/marbre/7.14-cherry-pick-831fad2

Conversation

@marbre

@marbre marbre commented Jul 7, 2026

Copy link
Copy Markdown
Member

Cherry-picks commit 831fad2 into the 7.14 release branch.


Motivation

On gfx950 CPX+NPS2 (64 ranks), all_gather_perf aborts during comm init even after #7766.

Issues identified:

  • A bad-pointer Bad address in the topology bootstrap AllGather
NCCL WARN ncclOsSocketProgressOpt: Call to send to 10.235.24.26<60509> failed : Bad address
  • A segfault from WarpSpeed over-allocating channels.
NCCL INFO WarpSpeed enabled: warpSpeedChannelMultiplier 4, maxNchannels 1760, nc 1760

Technical Details

  • bootstrap.cc: ring slice offset slice * size overflowed 32-bit int with the ~102 MB per-rank topology buffer at 64 ranks
  • connect.cc: single-node WarpSpeed channel count was unclamped (nc=1760), overrunning comm->channels[MAXCHANNELS]

JIRA ID

JIRA ID : ROCM-27078

Test Plan

  • Run all_gather_perf on gfx950 CPX+NPS2 (64 GPUs)
  • Add host unit tests for the 64-bit offset and the channel clamp

Test Result

  • AllGather on CPX+NPS2 passes end-to-end with no bad address/segfault
  • New unit tests (BootstrapBidir.SliceOffsetIsComputedIn64Bit, Rcclwrap.WarpSpeedChannelClampCapsAtHalfMaxChannels) pass

Submission Checklist

…peed) (#8077)

Cherry-picks commit 831fad2 into the 7.14 release branch.

---

## Motivation

On gfx950 CPX+NPS2 (64 ranks), all_gather_perf aborts during comm init
even after #7766.

Issues identified:
 - A bad-pointer `Bad address` in the topology bootstrap AllGather 
```
NCCL WARN ncclOsSocketProgressOpt: Call to send to 10.235.24.26<60509> failed : Bad address
```
 - A segfault from WarpSpeed over-allocating channels.
```
NCCL INFO WarpSpeed enabled: warpSpeedChannelMultiplier 4, maxNchannels 1760, nc 1760
```
## Technical Details

- bootstrap.cc: ring slice offset slice * size overflowed 32-bit int
with the ~102 MB per-rank topology buffer at 64 ranks
- connect.cc: single-node WarpSpeed channel count was unclamped
(nc=1760), overrunning comm->channels[MAXCHANNELS]

## JIRA ID

JIRA ID : ROCM-27078

## Test Plan

- Run all_gather_perf on gfx950 CPX+NPS2 (64 GPUs)
- Add host unit tests for the 64-bit offset and the channel clamp

## Test Result

- AllGather on CPX+NPS2 passes end-to-end with no bad address/segfault
- New unit tests (`BootstrapBidir.SliceOffsetIsComputedIn64Bit`,
`Rcclwrap.WarpSpeedChannelClampCapsAtHalfMaxChannels`) pass

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
@marbre
marbre requested review from a team July 7, 2026 13:54
@marbre
marbre requested a review from a team as a code owner July 7, 2026 13:54

@araravik-psd araravik-psd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI builds and single node tests have passed and the Cherry-pick seems to have applied cleanly. Approving this PR

@marbre
marbre merged commit c11bf10 into release/therock-7.14 Jul 7, 2026
14 checks passed
@marbre
marbre deleted the users/marbre/7.14-cherry-pick-831fad2 branch July 7, 2026 20:54
marbre added a commit to ROCm/TheRock that referenced this pull request Jul 8, 2026
Bumps rocm-libraries and rocm-systems to include the following
cherry-picks:

* ROCm/rocm-libraries#9149, JIRA ID ROCM-27477
* ROCm/rocm-systems#8194,   JIRA ID ROCM-27078
* ROCm/rocm-systems#8212,   JIRA ID ROCM-27116
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants