Repository navigation
feat(rccl): Add LL128 support for DDA RS - #12928
Conversation
|
No undocumented RCCL or NCCL environment-variable changes. |
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The LL128 tier is not selected under the default configuration, and IPC medium messages can be copied twice.
Review effort: Balanced
Findings: 1
Open (3)
What changed in this PR
Adds LL128 protocol support for DDA fabric reduce-scatter and optimizes IPC staging.
Changes:
- Implements LL128 reduce-scatter packing, synchronization, and reduction.
- Derives launch and scratch geometry dynamically.
- Adds eligibility tests and medium-message IPC staging.
| File | Description |
|---|---|
DdaFabricEligibilityTests.cpp |
Adds LL128 eligibility boundary tests. |
reduce_scatter_dda.h |
Adds in-kernel IPC staging. |
reduce_scatter_dda_fabric_ll128.h |
Implements the LL128 device kernel. |
dda_reduce_scatter_ipc.cu |
Selects IPC staging strategy. |
dda_reduce_scatter_fabric_ll128.cu |
Adds LL128 launch geometry and eligibility. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
@cppccppccppc @sunguobao PTAL |
There was a problem hiding this comment.
ARGUS
Bottom line: Worth settling before approval: ReduceScatterLL128_UnalignedBytes passes 4 bytes, which the old % 8 gate rejected too, so nothing in the suite pins the new 16-byte rule.
Comment @argus review to re-run, or @argus re-review after pushing.
There was a problem hiding this comment.
ARGUS
Bottom line: Worth settling before approval: the ReduceScatter LL128 cap going 2 MiB to 128 MiB makes the rewritten ddaReduceScatterFabricLL128 the default path over a range it has never served, with no opt-in.
Comment @argus review to re-run, or @argus re-review after pushing.
There was a problem hiding this comment.
ARGUS
Bottom line: Worth settling before approval: the gfx1250 default still routes reduce-scatter in (1 MiB, 64 MiB] onto the rewritten LL128 kernel, and the new MPI cases are registered only on gfx942 and gfx950 lanes where their gfx1250 gate always skips.
Comment @argus review to re-run, or @argus re-review after pushing.
97c0013 to
a3d07a4
Compare
|
The code coverage CI failures are not related to this PR. There are failures for RMA, CE, DDA Alltoall and Allgather tests. |
|
@nawrinsu, @srirajpaul - Please review. |
Moving the copy inside the kernel restores the DDA performance for the small messages (12us vs. 7us). The 12us latency was the effect of adding the done event tracking. |
|
@copilot resolve the merge conflicts in this pull request |
…-rs-ll128 # Conflicts: # projects/rccl/test/DdaReduceScatterMPITests.cpp Co-authored-by: nusislam <25847498+nusislam@users.noreply.github.com>
Merged current |
There was a problem hiding this comment.
ARGUS
This PR changes 1,011 lines across 22 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: Worth settling before approval: removing kDdaLL128RsMaxBytes leaves DdaReduceScatterMPITests.cpp:139 unable to compile, and that suite's odd-8B-word LL128 shapes now fail the new % 16 gate.
Comment @argus review to re-run, or @argus re-review after pushing.
There was a problem hiding this comment.
ARGUS
This PR changes 1,524 lines across 23 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: Worth settling before approval: the updated DdaReduceScatterMPITests.cpp landed at the monorepo root, so the built copy in projects/rccl/test still uses the removed kDdaLL128RsMaxBytes and rccl-UnitTestsMPI will not compile.
Comment @argus review to re-run, or @argus re-review after pushing.
0b6a7f1 to
33ab2e9
Compare
There was a problem hiding this comment.
ARGUS
This PR changes 1,090 lines across 23 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: Nothing new worth raising; still open from earlier: rccl_arch_thresholds.cc:47 and 2 more. Worth clearing before approval.
Comment @argus review to re-run, or @argus re-review after pushing.
#12928 moved the fabric LL128 reduce-scatter to the warp-per-slice layout (512 threads, 16-byte shards and buffers, the LL128 cap, a slot sized from the scratch bank) and dropped DDA_LL128_RS_THREADS; the IPC launcher now copies shards up to 1 MiB in the kernel and takes the stop event before the host staging copy. Co-Authored-By: Claude <noreply@anthropic.com>
TheRock Submodule Bump ActivityNewest first
|



Motivation
This PR adds LL128 protocol support for DDA RS in the fabric path.
Technical Details
This PR adds LL128 protocol support for DDA RS in the fabric path. It also moves the copies to temporary buffer inside the kernel for some message sizes in the medium range
[internal-env].Issue Tracking
AICOMRCCL-2471
Test Plan
rccl-test, unit tests
Test Result
Submission Checklist