Repository navigation
refactor(rccl/gin): fold Anvil Flush drain and BarrierFence test helpers - #13079
Conversation
0b0e1d4 to
e98a97b
Compare
311352e to
06c8188
Compare
02b9b6d to
ed86529
Compare
06c8188 to
6453c82
Compare
ed86529 to
510cccb
Compare
6453c82 to
7a80df2
Compare
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
de7caeb to
62a2a5e
Compare
aduforest
left a comment
There was a problem hiding this comment.
BarrierFence_* and GetFlush* tests haven't run on this head. Maybe we can get one 2-rank NCCL_GIN_TYPE=7 run of them before merge?
Follow-up to the Argus notes left open on #12750, no behaviour change. Rebased onto develop after #12748 landed GinSymmetricBuffers for the BarrierFence / strong-signal setup path. - quietOwnedSdmaDirtyBits iterates the set bits of dirty instead of re-deriving the peer stride and bit-width guard ownedSdmaDirtyMask already applied; the bit index is also the queue's handle index. - syncFenceVisibilityBarrier delegates to one coop-templated helper, so the default-fence and Get/Put fence choice live in one place. - barrierFencePattern centralises the 0x20 + rank + (i & 0x3f) fill and check used by the BarrierFence host setup and kernels. - run-gin-ci.sh merges the fixtures and mpi-fixtures arms and runs one mpirun invocation, with only the -x LD_LIBRARY_PATH argument varying. Co-authored-by: Cursor <cursoragent@cursor.com>
62a2a5e to
5fa4bb6
Compare
|
@argus re-review Rebased onto develop after #12748 landed |
pr-rocm-systems-13079-oci-rccl-pr-buildBuilds
FailuresNo failing tests in this run. 183 tests skipped. pr-rocm-systems-13079-oci-rccl-pr-smokeBuilds
Failures
15 tests skipped. |
pr-rocm-systems-13079-ruby64-rccl-pr-smokeBuilds
FailuresNo failing tests in this run. 15 tests skipped. |
pr-rocm-systems-13079-oci-rccl-pr-buildBuilds
FailuresNo failing tests in this run. 183 tests skipped. pr-rocm-systems-13079-oci-rccl-pr-smokeBuilds
Failures
15 tests skipped. |
pr-rocm-systems-13079-oci-rccl-pr-buildBuilds
FailuresNo failing tests in this run. 183 tests skipped. pr-rocm-systems-13079-oci-rccl-pr-smokeBuilds
Failures
15 tests skipped. |
pr-rocm-systems-13079-ruby64-rccl-pr-smokeBuilds
FailuresNo failing tests in this run. 15 tests skipped. |
pr-rocm-systems-13079-oci-rccl-pr-smokeBuilds
FailuresNo failing tests in this run. 15 tests skipped. |
pr-rocm-systems-13079-ruby64-rccl-pr-buildBuilds
FailuresNo failing tests in this run. 183 tests skipped. pr-rocm-systems-13079-ruby64-rccl-pr-smokeBuilds
Failures
15 tests skipped. |
pr-rocm-systems-13079-oci-rccl-pr-smokeBuilds
FailuresNo failing tests in this run. 15 tests skipped. |
pr-rocm-systems-13079-ruby64-rccl-pr-buildBuilds
FailuresNo failing tests in this run. 183 tests skipped. pr-rocm-systems-13079-ruby64-rccl-pr-smokeBuilds
Failures
15 tests skipped. |
pr-rocm-systems-13079-ruby64-rccl-pr-smokeBuilds
FailuresNo failing tests in this run. 15 tests skipped. |
TheRock Submodule Bump ActivityNewest first
|
Follow-up to #12750 (merged). Behaviour is unchanged.
Summary
This addresses the Argus notes on #12750 that I deferred to a follow-up, so #12750's diff could stay on its behaviour change. Rebased onto
developafter #12748 landedGinSymmetricBuffersfor the BarrierFence / strong-signal setup path, so the earlierBarrierFenceBuffersfold in this PR is no longer needed.quietOwnedSdmaDirtyBits): iterate the set bits ofdirtyinstead of walking peers and channels again.ownedSdmaDirtyMaskalready applied the peer stride and thekSdmaDirtyBitWidthguard, and a bit's index is also its queue's index inhandles[].syncFenceVisibilityBarrier: thencclCoopAnyandncclCoopCtaarms delegate to one coop-templated helper, so the default-fence and Get/Put fence choice live in one place.barrierFencePattern: one__host__ __device__helper for the0x20 + rank + (i & 0x3f)fill and checks used by the BarrierFence host setup and kernels.run-gin-ci.sh: thefixturesandmpi-fixturescase arms are merged, and the twompiruncalls share one invocation in which only the-x LD_LIBRARY_PATHargument differs.Test plan
rccl-UnitTestsFixtures --gtest_filter='GinAnvil*:*GinAnvilSdma*'on an MI355X (gfx950), Release build withENABLE_ROCSHMEM_GIN=ONandGIN_ANVIL_UNIT_TESTS=ON: 58/58 pass, covering every Flush test against the new drain loop (pre-rebase head).rccl-UnitTestsMPI --gtest_filter='GinMPIDeviceTests.BarrierFence_*'with 2 ranks andNCCL_GIN_TYPE=7, through the GIN leg of RCCL cluster CI on Tensorwave gfx950. CoversCoopAnyFlushMakesPutVisibleandIpcSignalIncMakesPutVisible.GinMPIDeviceTests.GetFlush*(Get visibility): not in the GIN CI matrix; still to run on a host where the MPI tests work.bash -n tools/ci/run-gin-ci.sh