Skip to content

feat(rccl): Add LL128 support for DDA RS - #12928

Merged
nusislam merged 15 commits into
developfrom
users/nusislam/dda-rs-ll128
Oct 19, 2026
Merged

nusislam merged 15 commits into
developfrom
users/nusislam/dda-rs-ll128

Conversation

@nusislam

@nusislam nusislam commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

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

@nusislam
nusislam requested review from a team and a balanced review from Copilot October 6, 2026 17:06
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

No undocumented RCCL or NCCL environment-variable changes.

@therock-pr-bot

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

Copy link
Copy Markdown

❌ PR Check — Action Required

Check Status Details
📝 PR Description ❌ Fail Error: PR description must reference a JIRA ID, ISSUE ID, or a GitHub closing keyword.
Expected: include a JIRA ID / ISSUE ID line (separator : or -, or omitted; value may be a JIRA key, a number with/without #, or a link), OR a closing keyword + issue reference. Accepted examples:
• JIRA ID : TESTAUTO-6039
• JIRA ID - #330
• JIRA ID #330
• JIRA ID (on separate line)
ROCM-25757
• ISSUE ID : TESTUTO-3334
• ISSUE ID #3334
• ISSUE ID - TESTAUTO-3433
• ISSUE ID (on separate line)
AIRUNTIME-2352
• ISSUE ID : https://github.com/<org_name>/<repo_name>/issues/1234
• Closes #10
• Fixes octo-org/octo-repo#100
• Resolves: #123
• #123
• https://github.com/<org_name>/<repo_name>/issues/123
Current: no valid JIRA/ISSUE/closing-keyword reference found
⛔ 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/algorithms/dda/all_gather/all_gather_dda_fabric_ll128.h, projects/rccl/src/algorithms/dda/all_reduce/all_reduce_dda_ll128.h, projects/rccl/src/algorithms/dda/all_reduce/all_reduce_dda_ll128_twoshot.h, projects/rccl/src/algorithms/dda/device/CollCommon.h, projects/rccl/src/algorithms/dda/device/CollCommon_ll128.h (+9 more); no test file found
🔎 pre-commit ⏳ Pending ⏳ Still running…
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

⚠️ 1 policy check(s) failed. Please address the issues above before this PR can be Reviewed.

🚫 Please fix the failed policies

  • ❌ PR Description

The Not ready to Review label was added to this PR. Once all policies pass, the label is removed automatically.

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

🙋 Wish to Override Policy?

@therock-pr-bot

therock-pr-bot Bot commented Oct 6, 2026

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Description

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

Copilot AI 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.

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 High severity · 1 Medium severity · 1 Low severity

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.

Comment thread projects/rccl/src/algorithms/dda/reduce_scatter/dda_reduce_scatter_ipc.cu Outdated
Comment thread projects/rccl/test/DdaFabricEligibilityTests.cpp
@amd-argus

amd-argus Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

@cppccppccppc @sunguobao PTAL

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

Comment thread projects/rccl/test/DdaFabricEligibilityTests.cpp Outdated
Comment thread projects/rccl/src/algorithms/dda/reduce_scatter/reduce_scatter_dda.h Outdated
Comment thread projects/rccl/src/algorithms/dda/reduce_scatter/reduce_scatter_dda_fabric_ll128.h Outdated
Comment thread projects/rccl/src/algorithms/dda/reduce_scatter/dda_reduce_scatter_ipc.cu Outdated
@nusislam nusislam changed the title Add LL128 support for DDA RS feat(rccl): Add LL128 support for DDA RS Oct 6, 2026

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

Comment thread projects/rccl/src/rccl_arch_thresholds.cc Outdated
Comment thread projects/rccl/src/rccl_arch_thresholds.cc Outdated
Comment thread projects/rccl/src/algorithms/dda/reduce_scatter/reduce_scatter_dda.h Outdated
Comment thread projects/rccl/test/DdaFabricEligibilityTests.cpp Outdated

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

Comment thread projects/rccl/tools/scripts/test_runner/configs/mi300x_mellanox_ib.json Outdated
Comment thread projects/rccl/src/algorithms/dda/reduce_scatter/reduce_scatter_dda.h Outdated
Comment thread projects/rccl/test/DdaFabricEligibilityTests.cpp
Comment thread projects/rccl/CHANGELOG.md
Comment thread projects/rccl/test/DdaIpcEligibilityTests.cpp
Comment thread projects/rccl/test/DdaIpcEligibilityTests.cpp Outdated
Comment thread projects/rccl/test/DdaReduceScatterMPITests.cpp Outdated
@nusislam
nusislam force-pushed the users/nusislam/dda-rs-ll128 branch from 97c0013 to a3d07a4 Compare October 8, 2026 14:08

@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: Nothing new worth raising; still open from earlier: rccl_arch_thresholds.cc:44 and 2 more. Worth clearing before approval.

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

@nusislam

Copy link
Copy Markdown
Contributor Author

The code coverage CI failures are not related to this PR. There are failures for RMA, CE, DDA Alltoall and Allgather tests.

@nusislam

Copy link
Copy Markdown
Contributor Author

@nawrinsu, @srirajpaul - Please review.

@nusislam

Copy link
Copy Markdown
Contributor Author

I saw you put the copy kernel for dda based on the message size. What is the performance impact of doing that?

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.

Comment thread projects/rccl/test/DdaReduceScatterMPITests.cpp Outdated
Comment thread projects/rccl/test/DdaReduceScatterMPITests.cpp Outdated
Comment thread projects/rccl/test/DdaReduceScatterMPITests.cpp Outdated
Comment thread projects/rccl/src/algorithms/dda/reduce_scatter/reduce_scatter_dda.h Outdated
Comment thread projects/rccl/test/DdaFabricEligibilityTests.cpp

@garzaran garzaran left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@nusislam, I am approving the PR, but Praneeth has several comments about the tests. Please address those before merging.

@nusislam

Copy link
Copy Markdown
Contributor Author

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

Copilot AI commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Merged current develop and resolved the MPI test conflict while preserving both test suites in 094d6c604.

@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

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.

@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

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.

Comment thread test/DdaReduceScatterMPITests.cpp Outdated
@nusislam
nusislam force-pushed the users/nusislam/dda-rs-ll128 branch from 0b6a7f1 to 33ab2e9 Compare October 18, 2026 23:27

@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

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.

@nusislam
nusislam merged commit 00e3e30 into develop Oct 19, 2026
76 of 83 checks passed
@nusislam
nusislam deleted the users/nusislam/dda-rs-ll128 branch October 19, 2026 13:50
aduforest added a commit that referenced this pull request Oct 19, 2026
#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>
@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

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.

6 participants