Repository navigation
fix(rccl): Correct the P2P LL threshold to maintain existing SIMPLE/LL crossover tuning on AMD systems - #12029
Conversation
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
5c26314 to
f289fc6
Compare
There was a problem hiding this comment.
ARGUS
Bottom line: Worth settling before approval: the widening turns off P2P user-buffer registration for 4 KiB to 64 KiB transfers, so registered or graph-captured alltoall may move the other way.
Comment @argus review to re-run, or @argus re-review after pushing.
56c94fd to
3041e03
Compare
|
@argus re-review |
3041e03 to
4a88061
Compare
|
@corey-derochie-amd the new head ( |
4a88061 to
ab52227
Compare
alex-breslow-amd
left a comment
There was a problem hiding this comment.
Going to approve, but please add tests.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
There was a problem hiding this comment.
ARGUS
Bottom line: Worth settling before approval: the crossover test skips on arch only, so its LL cases fail on PCIe-only gfx950 (MI350P), and LL in the widened band still gives up P2P user-buffer registration.
Comment @argus review to re-run, or @argus re-review after pushing.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
@alex-breslow-amd tests added, waiting for CI to complete a test pass. |
There was a problem hiding this comment.
ARGUS
Bottom line: Worth settling before approval: the new Gfx94 tests pin neither the nNodes/isAllNvlink/LL128 conjuncts nor the p2pChunkSize/8 term, and LL in the widened band still gives up P2P user-buffer registration.
Comment @argus review to re-run, or @argus re-review after pushing.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
|
@amd-argus re-review |
a8f6b36 to
8ec62af
Compare
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
… tuning on AMD systems.
The selection rule is unchanged. State the gfx942/gfx950 cap and the exceptions for a set NCCL_P2P_LL_THRESHOLD and the LL128 path.
…otests Replace the process-isolated SendRecvTests that latched NCCL_P2P_LL_THRESHOLD with focused EnqueueMicrotest cases around addP2pToPlan. This lets the test verify the widened LL cap (up to 64 KiB/peer) and the user-threshold fallback without relying on debug-log parsing or process isolation. Also make the user-threshold check read NCCL_P2P_LL_THRESHOLD on every call, so a later set or unset is visible.
nNodes, isAllNvlink, and the LL128 opt-in each keep 32 KiB on SIMPLE. Dropping any of those checks would select LL, and the new cases fail. Co-authored-by: Cursor <cursoragent@cursor.com>
A 256 KiB chunk stops LL at 32 KiB. A 1 MiB chunk stays capped at 64 KiB. The default 512 KiB chunk makes those two bounds equal. Co-authored-by: Cursor <cursoragent@cursor.com>
ncclLoadParam already ignores NCCL_P2P_LL_THRESHOLD when the value is empty and uses the default. The widen now uses that same rule, and keeps reading it on each call so a later set or unset stays visible. Co-authored-by: Cursor <cursoragent@cursor.com>
NCCL_P2P_LL_THRESHOLD is documented in the user guide, not in env-variables.rst. Describe the unset single-node cap and add the changelog entry for the regression fix. Co-authored-by: Cursor <cursoragent@cursor.com>
8e863ce to
a4479a2
Compare
|
@amd-argus re-review |
nNodes > 1 asks rcclParamPxnOptQpUsage, which the host fake aborts on. Disable PXN for that case, matching the production default, so the channel base is computed and the test can check the protocol. Co-authored-by: Cursor <cursoragent@cursor.com>
Motivation
A reproducible regression was detected in All-to-all 1-node shown here

The regression was bisected to NCCL 2.29.7 sync commit (#6674). Root cause is a change to the SIMPLE/LL crossover calculation.
Technical Details
Adjusted the calculation to maintain the original AMD crossover point.
Issue Tracking
JIRA ID: AICOMRCCL-2141
Test Plan
This is open for discussion. This is an adjustment to restore original calculation and recover performance. A unit test to specifically guard against changes in tuning might be useful, but ultimately brittle. Please advise.
Test Result
Submission Checklist