Skip to content

fix(rccl): update DDA AG threshold - #12678

Merged
nawrinsu merged 5 commits into
developfrom
users/nawrinsu/dda-ag-ll-threshold
Oct 26, 2026
Merged

nawrinsu merged 5 commits into
developfrom
users/nawrinsu/dda-ag-ll-threshold

Conversation

@nawrinsu

@nawrinsu nawrinsu commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

The current max threshold for DDA AG LL protocol on gfx1250 is set to 128KiB. Update this threshold to 64KiB as LL128 outperforms LL at 128KiB.
The current max threshold for DDA AG on gfx950 is set to 128MiB. Update this threshold to 64MiB as Ring outperforms DDA at 128MiB.

Technical Details

Issue Tracking

JIRA ID: AICOMRCCL-2645

Test Plan

Test Result

AG latency(us) on single gfx950 node:

Size DDA enabled DDA disabled
1024 6.12 10.74
2048 6.12 10.83
4096 6.19 10.52
8192 6.19 10.55
16384 6.41 11.11
32768 6.78 12.62
65536 7.76 13.25
131072 8.01 13.42
262144 8.14 14.96
524288 8.34 17.66
1048576 9.17 18.22
2097152 13.06 19.78
4194304 17.88 24.73
8388608 30.38 37.04
16777216 52.69 67.51
33554432 98.62 107.81
67108864 186.02 187.12
134217728 358.27 347.3
268435456 659.24 659.52
536870912 1284.16 1282.94
1073741824 2525.83 2526.85
2147483648 4986.84 4985.06
4294967296 9857.96 9853.55
8589934592 19587.56 19583.64
17179869184 38983.58 38977.76

Submission Checklist

@nawrinsu
nawrinsu requested review from a team and a balanced review from Copilot October 2, 2026 05:51
@therock-pr-bot

therock-pr-bot Bot commented Oct 2, 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/rccl_arch_thresholds.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?

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

🟢 Approval recommended

The focused threshold update matches the stated performance goal and existing boundary tests.

Review effort: Balanced
Findings: None

What changed in this PR

Updates the gfx1250 AllGather protocol crossover so LL128 is used above 64 KiB.

Changes:

  • Reduces the AllGather DDA LL ceiling from 128 KiB to 64 KiB.
File Description
projects/​rccl/​src/​rccl_arch_thresholds.cc Updates the gfx1250 AllGather LL threshold.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@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 on the value itself: DdaFabricEligibilityTests.cpp:476 already asserts 64 KiB and the old entry contradicted it. The only ask is filling in the empty Test Plan.

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

@nusislam

nusislam commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

@nawrinsu - Can you test AG on MI350 and see if any adjustment is needed there?

@nawrinsu nawrinsu changed the title fix(rccl): update gfx1250 AG LL threshold fix(rccl): update DDA AG threshold Oct 7, 2026
@nawrinsu

nawrinsu commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

@nawrinsu - Can you test AG on MI350 and see if any adjustment is needed there?

Updated DDA AG threshold from 128MiB to 64MiB based on the perf number shown above in Test Result section.

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

@nawrinsu
nawrinsu requested a review from garzaran October 7, 2026 21:09

@alex-breslow-amd alex-breslow-amd 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.

Approved. Thanks for the optimization.

@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 more finding(s), not posted inline
  • projects/rccl/test/RcclWrapTests.cpp:3051 (Medium) Gfx1250_RankScaledCaps still expects a 128 KiB 4-rank AllGather LL cap; the real table now gives 64 KiB, so update it to 64 * KiB. Gfx1250_RankScaledCaps (RcclWrapTests.cpp:3051) still expects 128 * KiB for the AllGather LL cap on a 4-rank comm built from the real gfx1250 table. Below rankScaledMinRanks (8), ddaTierCapFromTable returns the unscaled ddaLLMax[AllGather], which this PR sets to 64 KiB. Could we update the expectation to 64 * KiB, and the host mirror in MakeRankScaledTable at test/host/wrap-test.cc:1330 so it keeps matching the real table?

Bottom line: LGTM once RcclWrapTests.cpp:3051 expects 64 KiB for the 4-rank gfx1250 AllGather LL cap.

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

@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-12678-oci-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-12678_rccl-debug_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-12678_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-12678_rccl-debug_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-12678_rccl-debug_rocm-10.1-ga rccl-pr-12678 d320a4f d320a4f cached
pr-12678_rccl-debug_rocm-10.1-ga rccl_gtest-pr-12678-debug d320a4f d320a4f cached
pr-12678_rccl-perf_rocm-10.1-ga gcc-13.2 13.2.0 13.2.0 cached
pr-12678_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-12678_rccl-perf_rocm-10.1-ga openmpi-5.0.8 5.0.8 5.0.8 cached
pr-12678_rccl-perf_rocm-10.1-ga rccl-pr-12678 d320a4f d320a4f cached
pr-12678_rccl-perf_rocm-10.1-ga rccl-tests-develop-perf develop 41a081a cached
pr-12678_rccl-perf_rocm-10.2-latest gcc-13.2 13.2.0 13.2.0 cached
pr-12678_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-12678_rccl-perf_rocm-10.2-latest openmpi-5.0.8 5.0.8 5.0.8 cached
pr-12678_rccl-perf_rocm-10.2-latest rccl-pr-12678 d320a4f d320a4f cached
pr-12678_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

No failing tests in this run.

15 tests skipped.

@github-actions

Copy link
Copy Markdown
Contributor

pr-rocm-systems-12678-ruby64-rccl-pr-smoke

Builds

Stack Component Version Commit Status Build time
pr-12678_rccl-debug_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-12678_rccl-debug_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-12678_rccl-debug_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-12678_rccl-debug_rocm-10.1-ga rccl-pr-12678 d320a4f d320a4f cached
pr-12678_rccl-debug_rocm-10.1-ga rccl_gtest-pr-12678-debug d320a4f d320a4f cached
pr-12678_rccl-perf_rocm-10.1-ga gcc-11.5 11.5.0 11.5.0 cached
pr-12678_rccl-perf_rocm-10.1-ga rocm-10.1-ga 10.1.0 10.1.0 cached
pr-12678_rccl-perf_rocm-10.1-ga openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-12678_rccl-perf_rocm-10.1-ga rccl-pr-12678 d320a4f d320a4f cached
pr-12678_rccl-perf_rocm-10.1-ga rcclt-develop-perf develop 41a081a cached
pr-12678_rccl-perf_rocm-10.2-latest gcc-11.5 11.5.0 11.5.0 cached
pr-12678_rccl-perf_rocm-10.2-latest rocm-10.2-latest 10.2.0rc0 10.2.0rc0 cached
pr-12678_rccl-perf_rocm-10.2-latest openmpi-4.0.2 4.0.2rc3 4.0.2rc3 cached
pr-12678_rccl-perf_rocm-10.2-latest rccl-pr-12678 d320a4f d320a4f cached
pr-12678_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.

@nawrinsu
nawrinsu merged commit f49c788 into develop Oct 26, 2026
73 of 75 checks passed
@nawrinsu
nawrinsu deleted the users/nawrinsu/dda-ag-ll-threshold branch October 26, 2026 15:58
@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.

5 participants