Skip to content

fix(devr): size GIN signal shadows for the rounded context count - #13228

Merged
dlamd1dai merged 5 commits into
developfrom
users/dondai/rccl-gin-signal-shadow-sizing
Oct 26, 2026
Merged

dlamd1dai merged 5 commits into
developfrom
users/dondai/rccl-gin-signal-shadow-sizing

Conversation

@dlamd1dai

Copy link
Copy Markdown
Contributor

Motivation

Found while reviewing #12751 (AICOMRCCL-2339). The device indexes ginSignalShadows as contextIndex * ginSignalCount for every contextIndex < devComm.ginContextCount. ncclGinDevCommSetup rounds ginContextCount up to the chosen backend's ginCommCount. In ncclDevrCommCreateInternal, though, the shadow region was sized for the requested reqs->ginContextCount.

When the connection count does not divide the requested count, the last contexts' shadows land past the region: in the Anvil signal span, or past the end of the resource window. For example, with NCCL_GIN_NCONNECTIONS=3 and 8 requested contexts, the devComm uses 9 contexts but shadows are allocated for 8.

The Anvil span next to it was rounded to the widest active backend, which is also not enough when backends differ: ROUNDUP(4, 4) = 4 < ROUNDUP(4, 3) = 6.

Technical Details

  • Added a file-static devrGinContextsTotal(ginState, nGinContexts). It returns the maximum of ROUNDUP(nGinContexts, backends[b].ginCommCount) over all active backends, so the size covers whichever backend ncclGinDevCommSetup picks, including a fallback. A ginCommCount of 0 is treated as 1.
  • The signal-shadow region and the Anvil signal span are both sized with it. When GIN is not enabled, the sizes are unchanged.

Test Plan

  • New DevrGinContextsTotal.* cases in test/host/dev-runtime-test.cc: no backends, a single backend that rounds up, mixed backends where the widest is not the worst case, and a zero-connection backend.
  • rccl-UnitTestsMicro on MI355 (gfx950, ROCm 7.0.2, ENABLE_ROCSHMEM_GIN=ON).

Test Result

  • rccl-UnitTestsMicro: 1667 of 1667 passed, including the 4 new cases.

@dlamd1dai
dlamd1dai requested review from a team October 10, 2026 03:45
@therock-pr-bot

therock-pr-bot Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

✅ All Policy Checks Passed

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ⚠️ Warning Error: Source/code files changed without an accompanying unit test.
Expected: add at least one test file named like test_<name>.py / test_<name>.cpp (or <name>_test.*).
Current: code file(s) changed: projects/rccl/src/dev_runtime.cc, projects/rccl/src/gin/gin_host.cc, projects/rccl/src/include/gin/gin_host.h, projects/rccl/test/host/dev-runtime-test.cc, projects/rccl/test/host/fakes/dev_runtime_micro_fakes.cc; no test file found
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

🎉 All policy checks passed!

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@amd-argus amd-argus Bot 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.

ARGUS

Bottom line: Looks approval ready. Both inline comments are optional: one test hardening and one pre-existing follow-up.

Comment @argus review to re-run, or @argus re-review after pushing.

Comment thread projects/rccl/test/host/dev-runtime-test.cc
Comment thread projects/rccl/src/dev_runtime.cc
@dlamd1dai

dlamd1dai commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor Author

Follow-ups from the Argus review:

  1. Test hardening: mirrored backend order is now asserted in MixedBackends_TakesLargestRoundedCount (7121abcd3a).
  2. Pre-existing ginCommCount == 0 retry divide-by-zero: left out of this PR; tracked as AICOMRCCL-2879.

@amd-argus amd-argus Bot 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.

ARGUS

Bottom line: Looks approval ready.

Comment @argus review to re-run, or @argus re-review after pushing.

Comment thread projects/rccl/test/host/dev-runtime-test.cc
@dlamd1dai
dlamd1dai force-pushed the users/dondai/rccl-gin-signal-shadow-sizing branch from 1e6bf5e to c5429b5 Compare October 12, 2026 06:41
@dlamd1dai

Copy link
Copy Markdown
Contributor Author

@argus re-review

@amd-argus amd-argus Bot 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.

ARGUS

Findings

1 finding(s) that could not be posted as inline comments
  • projects/rccl/test/host/dev-runtime-test.cc:5646 (Low) The expected 96 rests on an unstated header default for reqs.ginContextCount GinSignalRegions_UseLargestRoundedContextCount never sets reqs.ginContextCount, so the whole 96-byte expectation rests on the 4 that NCCL_DEV_COMM_REQUIREMENTS_INITIALIZER supplies in nccl_device/host.h:95. That 4 is also what makes the case discriminating, since ROUNDUP(4, 4) is 4 but ROUNDUP(4, 3) is 6. If the public header default is ever retuned this fails as a bare size mismatch with nothing pointing at the cause. Could we pin it in the body?

Bottom line: Looks approval ready.

Comment @argus review to re-run, or @argus re-review after pushing.

Comment thread projects/rccl/test/host/dev-runtime-test.cc
Comment thread projects/rccl/src/dev_runtime.cc
@dlamd1dai

Copy link
Copy Markdown
Contributor Author

Pushed 72cf69972d, which addresses the last re-review:

  • The non-inline finding about the reqs.ginContextCount default: GinSignalRegions_UseLargestRoundedContextCount now sets reqs.ginContextCount = 4 itself, with a note that ROUNDUP(4, 4) = 4 but ROUNDUP(4, 3) = 6. The test no longer depends on NCCL_DEV_COMM_REQUIREMENTS_INITIALIZER.
  • The stale DevrCommCreateInternalTest comments are refreshed.
  • The Anvil span question: this PR keeps the span unconditional (see the thread for why).

Tested on MI300 (gfx942, ROCm 7.2): rccl-UnitTestsMicro passed all 1722 tests, including the 9 DevrGinContextsTotal.* and DevrCommCreateInternalTest.* cases.

@argus re-review

@amd-argus amd-argus Bot 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.

ARGUS

Bottom line: LGTM.

Comment @argus review to re-run, or @argus re-review after pushing.

@dlamd1dai
dlamd1dai force-pushed the users/dondai/rccl-gin-signal-shadow-sizing branch from 72cf699 to f2c7413 Compare October 21, 2026 02:26
@dlamd1dai

Copy link
Copy Markdown
Contributor Author

Rebased onto develop (02d6cbc711). The only conflict was projects/rccl/CHANGELOG.md; both the develop entries and this fix are kept.

@ROCm/rccl-reviewers @ROCm/rccl-leads please review.

@argus re-review

@amd-argus amd-argus Bot 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.

ARGUS

Bottom line: LGTM.

Comment @argus review to re-run, or @argus re-review after pushing.

@aduforest aduforest left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This should land before #12751. With per-context Anvil slots, #12751 needs ROUNDUP(n, anvilCommCount) slots, and develop's widest-backend rounding is short on mixed backends

@aduforest aduforest left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

.

@abouteiller abouteiller 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.

2 minor code sustainability comments. Otherwise lgtm, don't need re-review after done.

Comment thread projects/rccl/src/dev_runtime.cc
@dlamd1dai
dlamd1dai force-pushed the users/dondai/rccl-gin-signal-shadow-sizing branch from f2c7413 to 44388c3 Compare October 23, 2026 19:00
@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-13228-oci-rccl-pr-build

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-backtrace_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-backtrace_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-backtrace_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-backtrace_rocm-10.1-ga rccl-pr-13228-backtrace 44388c3 44388c3 built 173s
pr-13228_rccl-backtrace_rocm-10.1-ga rccl_gtest-pr-13228 44388c3 44388c3 built
pr-13228_rccl-debug_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 built 114s
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 44388c3 44388c3 built 225s
pr-13228_rccl-perf_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-tests-develop-perf develop 41a081a built 24s
pr-13228_rccl-perf_rocm-10.2-latest gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 built 74s
pr-13228_rccl-perf_rocm-10.2-latest openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 44388c3 44388c3 built 128s
pr-13228_rccl-perf_rocm-10.2-latest rccl-tests-develop-perf develop 41a081a built 14s
pr-13228_rccl_rocm-7.0.2 gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl_rocm-7.0.2 rocm-7.0.2 7.0.2 7.0.2 cached
pr-13228_rccl_rocm-7.0.2 openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl_rocm-7.0.2 rccl-pr-13228 44388c3 44388c3 built 124s
pr-13228_rccl_rocm-7.0.2 rccl_gtest-pr-13228 44388c3 44388c3 built
rocm-10.1-ga_rccl-develop-perf gcc-13.2 13.2.0 13.2.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 built 68s
rocm-10.1-ga_rccl-develop-perf openmpi-5.0.8 5.0.8 5.0.8 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop 41a081a built 118s
rocm-10.1-ga_rccl-develop-perf rccl-tests-develop-perf develop 41a081a built 17s

Failures

No failing tests in this run.

183 tests skipped.

pr-rocm-systems-13228-oci-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-debug_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-tests-develop-perf develop 41a081a cached
pr-13228_rccl-perf_rocm-10.2-latest gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-13228_rccl-perf_rocm-10.2-latest openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-tests-develop-perf develop 41a081a cached
rocm-10.1-ga_rccl-develop-perf gcc-13.2 13.2.0 13.2.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 cached
rocm-10.1-ga_rccl-develop-perf openmpi-5.0.8 5.0.8 5.0.8 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop 41a081a cached
rocm-10.1-ga_rccl-develop-perf rccl-tests-develop-perf develop 41a081a cached

Failures

Stack Type Subtype Tag Test Topology Case Status Message
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-allgather-fp32 all_gather_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-alltoall-fp32 alltoall_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-bf16-sum all_reduce_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-bf16-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-reduce-scatter-fp32-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-allgather-fp32 all_gather_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-alltoall-fp32 alltoall_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-bf16-sum all_reduce_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-bf16-sum reduce_scatter_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-reduce-scatter-fp32-sum reduce_scatter_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
rocm-10.1-ga_rccl-develop-perf rccl_test regression-allgather-fp32 all_gather_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-alltoall-fp32 alltoall_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-bf16-sum all_reduce_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-bf16-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-reduce-scatter-fp32-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2

15 tests skipped.

@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-13228-ruby64-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-debug_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga rcclt-develop-perf develop 41a081a cached
pr-13228_rccl-perf_rocm-10.2-latest gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-13228_rccl-perf_rocm-10.2-latest openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.2-latest rcclt-develop-perf develop 41a081a cached
rocm-10.1-ga_rccl-develop-perf gcc-11.5 11.5.0 11.5.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 cached
rocm-10.1-ga_rccl-develop-perf openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop 41a081a cached
rocm-10.1-ga_rccl-develop-perf rcclt-develop-perf develop 41a081a cached

Failures

No failing tests in this run.

15 tests skipped.

@amd-argus amd-argus Bot 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.

ARGUS

Bottom line: LGTM.

Comment @argus review to re-run, or @argus re-review after pushing.

@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-13228-oci-rccl-pr-build

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-backtrace_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-backtrace_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-backtrace_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-backtrace_rocm-10.1-ga rccl-pr-13228-backtrace 44388c3 44388c3 built 119s
pr-13228_rccl-backtrace_rocm-10.1-ga rccl_gtest-pr-13228 44388c3 44388c3 built
pr-13228_rccl-debug_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 44388c3 44388c3 built 191s
pr-13228_rccl-perf_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 built 84s
pr-13228_rccl-perf_rocm-10.1-ga rccl-tests-develop-perf develop dc657f2 built 12s
pr-13228_rccl-perf_rocm-10.2-latest gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 built 67s
pr-13228_rccl-perf_rocm-10.2-latest openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 44388c3 44388c3 built 82s
pr-13228_rccl-perf_rocm-10.2-latest rccl-tests-develop-perf develop dc657f2 built 11s
pr-13228_rccl_rocm-7.0.2 gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl_rocm-7.0.2 rocm-7.0.2 7.0.2 7.0.2 cached
pr-13228_rccl_rocm-7.0.2 openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl_rocm-7.0.2 rccl-pr-13228 44388c3 44388c3 built 116s
pr-13228_rccl_rocm-7.0.2 rccl_gtest-pr-13228 44388c3 44388c3 built
rocm-10.1-ga_rccl-develop-perf gcc-13.2 13.2.0 13.2.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 built 64s
rocm-10.1-ga_rccl-develop-perf openmpi-5.0.8 5.0.8 5.0.8 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop dc657f2 built 85s
rocm-10.1-ga_rccl-develop-perf rccl-tests-develop-perf develop dc657f2 built 13s

Failures

No failing tests in this run.

183 tests skipped.

pr-rocm-systems-13228-oci-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-debug_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-tests-develop-perf develop dc657f2 cached
pr-13228_rccl-perf_rocm-10.2-latest gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-13228_rccl-perf_rocm-10.2-latest openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-tests-develop-perf develop dc657f2 cached
rocm-10.1-ga_rccl-develop-perf gcc-13.2 13.2.0 13.2.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 cached
rocm-10.1-ga_rccl-develop-perf openmpi-5.0.8 5.0.8 5.0.8 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop dc657f2 cached
rocm-10.1-ga_rccl-develop-perf rccl-tests-develop-perf develop dc657f2 cached

Failures

Stack Type Subtype Tag Test Topology Case Status Message
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-allgather-fp32 all_gather_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-alltoall-fp32 alltoall_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-bf16-sum all_reduce_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-bf16-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.1-ga rccl_test regression-reduce-scatter-fp32-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-allgather-fp32 all_gather_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-alltoall-fp32 alltoall_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-bf16-sum all_reduce_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-bf16-sum reduce_scatter_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
pr-13228_rccl-perf_rocm-10.2-latest rccl_test regression-reduce-scatter-fp32-sum reduce_scatter_perf 4n_8ppn_amd-rccl Error Crashed (exit code 139)
rocm-10.1-ga_rccl-develop-perf rccl_test regression-allgather-fp32 all_gather_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-alltoall-fp32 alltoall_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-bf16-sum all_reduce_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-bf16-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2
rocm-10.1-ga_rccl-develop-perf rccl_test regression-reduce-scatter-fp32-sum reduce_scatter_perf 4n_8ppn_amd-rccl Failed Exited with code 2

15 tests skipped.

@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-13228-ruby64-rccl-pr-build

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-backtrace_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-backtrace_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-backtrace_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-backtrace_rocm-10.1-ga rccl-pr-13228-backtrace 44388c3 44388c3 built 453s
pr-13228_rccl-backtrace_rocm-10.1-ga rccl_gtest-pr-13228 44388c3 44388c3 built
pr-13228_rccl-debug_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 44388c3 44388c3 built 399s
pr-13228_rccl-perf_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 built 200s
pr-13228_rccl-perf_rocm-10.1-ga rcclt-develop-perf develop dc657f2 built 66s
pr-13228_rccl-perf_rocm-10.2-latest gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 built 25s
pr-13228_rccl-perf_rocm-10.2-latest openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 44388c3 44388c3 built 235s
pr-13228_rccl-perf_rocm-10.2-latest rcclt-develop-perf develop dc657f2 built 72s
pr-13228_rccl_rocm-7.0.2.2 gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl_rocm-7.0.2.2 rocm-7.0.2.2 7.0.2.2 7.0.2.2 cached
pr-13228_rccl_rocm-7.0.2.2 openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl_rocm-7.0.2.2 rccl-pr-13228 44388c3 44388c3 built 467s
pr-13228_rccl_rocm-7.0.2.2 rccl_gtest-pr-13228 44388c3 44388c3 built
rocm-10.1-ga_rccl-develop-perf gcc-11.5 11.5.0 11.5.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 built 24s
rocm-10.1-ga_rccl-develop-perf openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop dc657f2 built 285s
rocm-10.1-ga_rccl-develop-perf rcclt-develop-perf develop dc657f2 built 66s

Failures

No failing tests in this run.

183 tests skipped.

pr-rocm-systems-13228-ruby64-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-debug_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.1-ga rcclt-develop-perf develop dc657f2 cached
pr-13228_rccl-perf_rocm-10.2-latest gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-13228_rccl-perf_rocm-10.2-latest openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 44388c3 44388c3 cached
pr-13228_rccl-perf_rocm-10.2-latest rcclt-develop-perf develop dc657f2 cached
rocm-10.1-ga_rccl-develop-perf gcc-11.5 11.5.0 11.5.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 cached
rocm-10.1-ga_rccl-develop-perf openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop dc657f2 cached
rocm-10.1-ga_rccl-develop-perf rcclt-develop-perf develop dc657f2 cached

Failures

Stack Type Subtype Tag Test Topology Case Status Message
pr-13228_rccl-perf_rocm-10.2-latest rccl_test device-api-symmetric reduce_perf 1n_8ppn_interactive Error Crashed (exit code 139)

15 tests skipped.

The device indexes ginSignalShadows by the devComm's ginContextCount,
which ncclGinDevCommSetup rounds up to the chosen backend's connection
count, but the shadow region was sized for the requested count. Size it,
and the Anvil signal span, for the largest rounded count over every
active backend.

Co-authored-by: Cursor <cursoragent@cursor.com>
dlamd1dai and others added 4 commits October 24, 2026 17:12
MixedBackends_TakesLargestRoundedCount still passed if the helper kept
only the last ROUNDUP, because the furthest-rounding backend was last.
Assert the mirrored order so the max accumulator is what the suite locks.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drive ncclDevrCommCreateInternal through the resource-window cuMemCreate call and assert that both signal regions use the largest backend-rounded context count. This pins the production integration at dev_runtime.cc:2092-2098, which helper-only tests did not cover.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…evr sizing

Add ncclGinContextCount() in gin_host.h and use it both where
ginDevCommSetupWithBackend sets devComm->ginContextCount and where
devrGinContextsTotal sizes the per-context resource regions, so the two
cannot diverge. Rename nGinContexts to nGinContextsRequested in
ncclDevrCommCreateInternal: it only seeds the round-up.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dlamd1dai
dlamd1dai force-pushed the users/dondai/rccl-gin-signal-shadow-sizing branch from 44388c3 to 913e54a Compare October 24, 2026 21:12
@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-13228-oci-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-debug_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 913e54a 913e54a cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 913e54a 913e54a cached
pr-13228_rccl-perf_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 913e54a 913e54a cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-tests-develop-perf develop 170b9ae cached
pr-13228_rccl-perf_rocm-10.2-latest gcc-13.2 13.2.0 13.2.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-13228_rccl-perf_rocm-10.2-latest openmpi-5.0.8 5.0.8 5.0.8 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 913e54a 913e54a cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-tests-develop-perf develop 170b9ae cached
rocm-10.1-ga_rccl-develop-perf gcc-13.2 13.2.0 13.2.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 cached
rocm-10.1-ga_rccl-develop-perf openmpi-5.0.8 5.0.8 5.0.8 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop 170b9ae cached
rocm-10.1-ga_rccl-develop-perf rccl-tests-develop-perf develop 170b9ae cached

Failures

No failing tests in this run.

15 tests skipped.

@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-13228-ruby64-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-13228_rccl-debug_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-debug_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-debug_rocm-10.1-ga rccl-pr-13228 913e54a 913e54a cached
pr-13228_rccl-debug_rocm-10.1-ga rccl_gtest-pr-13228-debug 913e54a 913e54a cached
pr-13228_rccl-perf_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-13228_rccl-perf_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.1-ga rccl-pr-13228 913e54a 913e54a cached
pr-13228_rccl-perf_rocm-10.1-ga rcclt-develop-perf develop 170b9ae cached
pr-13228_rccl-perf_rocm-10.2-latest gcc-11.5 11.5.0 11.5.0 cached
pr-13228_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-13228_rccl-perf_rocm-10.2-latest openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-13228_rccl-perf_rocm-10.2-latest rccl-pr-13228 913e54a 913e54a cached
pr-13228_rccl-perf_rocm-10.2-latest rcclt-develop-perf develop 170b9ae cached
rocm-10.1-ga_rccl-develop-perf gcc-11.5 11.5.0 11.5.0 cached
rocm-10.1-ga_rccl-develop-perf rocm-10.1-ga 10.1.0 10.1.0 cached
rocm-10.1-ga_rccl-develop-perf openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
rocm-10.1-ga_rccl-develop-perf rccl-develop develop 170b9ae cached
rocm-10.1-ga_rccl-develop-perf rcclt-develop-perf develop 170b9ae cached

Failures

No failing tests in this run.

15 tests skipped.

@dlamd1dai
dlamd1dai merged commit c318188 into develop Oct 26, 2026
112 of 118 checks passed
@dlamd1dai
dlamd1dai deleted the users/dondai/rccl-gin-signal-shadow-sizing branch October 26, 2026 04:12
@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

dlamd1dai added a commit that referenced this pull request Oct 27, 2026
## Motivation

Replaces #13231 with the same commits on an upstream branch, so the RCCL
coco PR gate runs without a fork override. The earlier review, including
the Argus threads and Aurelien's and Kapil's approvals, is on #13231.

Found while reviewing #13228. If `ncclGinConnectOnce` fails, the next
`ncclDevrCommCreateInternal` on the same communicator can divide by zero
in `ginDevCommSetupWithBackend`.

`ncclDevrCommCreateInternal` set `devr->ginEnabled = true` as soon as
GIN was requested, before trying to connect, and no failure path cleared
it. A connect that fails before `backends[].ginCommCount` is assigned
leaves that count at 0, as it was at plugin registration. On retry,
`ginEnabled` is already true, so connect is skipped. Setup then runs
`ROUNDUP(nContextsTotal, backend->ginCommCount)` with a count of 0.

Two argument checks after the latch (a world GIN barrier on a rail
connection, and a custom stride of 0) returned with GIN already latched.
That left the communicator in the same state.

## Technical Details

- `ncclDevrCommCreateInternal` now sets `devr->ginEnabled` only after
`ncclGinConnectOnce` succeeds. A failed connect, or an early argument
rejection, leaves GIN unlatched, so the next create connects again.
`ncclGinConnectOnce` already closes partial connections and leaves
`connected` false on failure, so calling it again is safe.
- The comment on the latch starts with `RCCL:` and notes that upstream
latches before connect, so a future NCCL sync keeps it after connect.
- `ginDevCommSetupWithBackend` is unchanged. After this change, a
`ginCommCount` of 0 means connect never completed, and clamping it there
would hide that.
- Test fakes: `dev_runtime_micro_fakes` gets a `g_devrGinConnectOnce`
hook, modeled on `g_devrRmaProxyConnectOnce`, so a test can make connect
fail.

Not changed: if connect succeeds and a later step fails (GIN
registration of existing memory, `ncclGinDevCommSetup`, or the window
GIN-handle update), GIN stays latched as before. #14231 handles that
case.

## Issue Tracking

JIRA ID: AICOMRCCL-2879

## Test Plan

- New `DevrCommCreateInternalTest.GinConnectFails_RetryConnectsAgain`:
connect fails twice. The test checks that `ginEnabled` stays false and
that the second create calls connect again.
- New
`DevrCommCreateInternalTest.WorldGinBarrierOnRail_RejectedWithoutLatchingGin`:
the early rejection does not call connect and does not latch GIN.
- Full host-test suite, built host-only with `run_host_tests.sh` in
`rocm/dev-ubuntu-22.04:7.2`, after rebasing onto `develop`.

## Test Result

- After the rebase: 7909 of 7909 host tests passed across 32 binaries,
including both new tests and `develop`'s
`GinSignalRegions_UseLargestRoundedContextCount`.
- With the `dev_runtime.cc` change reverted,
`GinConnectFails_RetryConnectsAgain` fails on the `ginEnabled` check.

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Aurelien Bouteiller <aurelien.bouteiller@amd.com>
Co-authored-by: amd-argus[bot] <321830313+amd-argus[bot]@users.noreply.github.com>
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.

3 participants