Skip to content

test(rccl): follow #12386's LL128 gating in the DDA launcher microtests - #13819

Merged
aduforest merged 2 commits into
developfrom
users/aduforest/dda-ll128-follow-12386
Oct 20, 2026
Merged

aduforest merged 2 commits into
developfrom
users/aduforest/dda-ll128-follow-12386

Conversation

@aduforest

@aduforest aduforest commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

JIRA ID: AICOMRCCL-2826

What

Fixes the host-test failures on develop: 5 tests in rccl-UnitTestsMicroDdaColl and 1 in rccl-UnitTestsMicroRocmwrap.

How

#12386 removed the RCCL_DDA_LL check from the fabric LL128 eligibility functions (LL128 is gated by RCCL_DDA_LL128 upstream). #13585, merged a few hours earlier, still expected RCCL_DDA_LL=0 to reject LL128. The tests now assert RCCL_DDA_LL=0 leaves LL128 eligible.

Develop also reworded the cuMem driver-version warning ("requires ROCm >= 7.12 or the 7.0.2.x backport"); RocmwrapMicrotest now looks for that text.

Test Plan

rccl-UnitTestsMicroDdaColl 271/271 and rccl-UnitTestsMicroRocmwrap 35/35, each 20x shuffled clean (standalone build). Re-adding the old RCCL_DDA_LL gate fails the new test.

#12386 dropped the RCCL_DDA_LL check from the fabric LL128 eligibility
functions (LL128 is gated by RCCL_DDA_LL128 upstream). #13585's microtests,
merged a few hours earlier, still expected RCCL_DDA_LL=0 to reject LL128, so
rccl-UnitTestsMicroDdaColl fails 5 tests on develop. Assert that RCCL_DDA_LL=0
leaves LL128 eligible.

Co-Authored-By: Claude <noreply@anthropic.com>
@aduforest
aduforest requested review from a team October 20, 2026 16:09
@aduforest

Copy link
Copy Markdown
Member Author

@argus review

@therock-pr-bot

therock-pr-bot Bot commented Oct 20, 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/test/host/algorithms/dda/all_gather/dda-all-gather-fabric-ll128-test.cc, projects/rccl/test/host/algorithms/dda/all_reduce/dda-all-reduce-fabric-ll-test.cc, projects/rccl/test/host/algorithms/dda/alltoall/dda-alltoall-fabric-ll128-test.cc, projects/rccl/test/host/algorithms/dda/reduce_scatter/dda-reduce-scatter-fabric-ll128-test.cc, projects/rccl/test/host/rocmwrap-test.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?

@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

3 more finding(s), not posted inline
  • projects/rccl/test/DdaFabricEligibilityTests.cpp:41 (Low) DdaFabricEligibilityTests.cpp:33-42 still says LL128 is gated by rcclParamDdaLL() and skips LL128 tests when RCCL_DDA_LL=0 DdaFabricLL128EligibilityTest in DdaFabricEligibilityTests.cpp:33-42 still says LL128 is gated by rcclParamDdaLL() and calls GTEST_SKIP when RCCL_DDA_LL=0. That file was not touched here. Its LL128 tests call the current eligibility functions, which no longer read that param, so the skip drops coverage for no reason. Could we drop the skip and fix the comment there as well, to finish the #12386 alignment?
  • projects/rccl/test/host/algorithms/dda/all_gather/dda-all-gather-fabric-ll128-test.cc:93 (Low) No unit test asserts RCCL_DDA_LL128=0 disables LL128; pre-existing gap, worth a follow-up
  • projects/rccl/test/host/algorithms/dda/alltoall/dda-alltoall-fabric-ll128-test.cc:92 (Nit) "gated by RCCL_DDA_LL128 alone" comment (also all_gather:90, reduce_scatter:106) omits that the gate is in the selector and RCCL_DDA_LL128_THRESHOLD overrides it

Bottom line: LGTM.

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

Develop now warns "cuMem support requires ROCm >= 7.12 or the 7.0.2.x
backport"; RocmwrapMicrotest still looked for the old HIP_VERSION text.

Co-Authored-By: Claude <noreply@anthropic.com>
@aduforest

Copy link
Copy Markdown
Member Author

@argus review

1 similar comment
@aduforest

Copy link
Copy Markdown
Member Author

@argus review

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

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

Nice, thanks for fixing these.

@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

pvallem pushed a commit that referenced this pull request Oct 25, 2026
…GIN (#13840)

JIRA ID: AICOMRCCL-2813

## What
Host-only microtests for
`src/transport/net_ib_cast/{init,common,capability,reg,gdr,multiplane,gin,net_ib_cast_gid_inspect}.cc`,
in a new `rccl-UnitTestsMicroNetIbCastInit` with one test TU per unit.

## How
- The verbs, mlx5/ionic, socket and neighbouring net_ib_cast seams are
shared fakes. The ones the other net_ib_cast PRs also use are
byte-identical copies; this PR owns the scheduler,
p2p_resiliency_recovery, gdr_peermem and gdr_probe fakes. Fake ibv
contexts route post_send/poll_cq back to the test. `xml.cc`, `utils.cc`
and `net_telemetry.cc` are the real ones. The GDR answers latched by
`std::call_once` are tested in isolated processes.
- `transport_stubs.cc` gains net.cc's `NET_OPTIONAL_RECV_COMPLETION`
param, and `os_fakes.cc` gains `ncclOsStrSep`, the same hunk as #13601.
- Pins 10 production bugs as `KnownBug_` tests:
- AINIC fuses NICs by default, although the code means to require
`NCCL_IB_MERGE_NICS=1` (AICOMRCCL-3088).
- A GDR probe that could not run is latched as "no GDR"
(AICOMRCCL-3089).
  - A data-direct lookup error skips the cleanup (AICOMRCCL-3090).
- A failed device init turns the next one into a silent no-op
(AICOMRCCL-3091).
- Deregistering unsorts the MR cache, so a cached range gets registered
twice (AICOMRCCL-3092).
- A regMr failure on a later device keeps the earlier devices' MRs
(AICOMRCCL-3093).
- GIN connect, context and registration failures leak comms and MRs
(AICOMRCCL-3094).
- The RMA proxy's error report indexes devices by completion slot, and
can crash (AICOMRCCL-3095).
- IPutSignal with data but no destination posts an empty WR instead of
the signal (AICOMRCCL-3096).
- A plane-index failure frees the ibv device list twice
(AICOMRCCL-3143).
- Not pinned, as the outcome depends on uninitialized memory:
`IbCastMakeVDevice` compares and logs PCI roots it never set when a path
has none (AICOMRCCL-3097).

## Coverage
Lines: init.cc 642/652, common.cc 185/185, common_cast.h 57/57,
capability.cc 162/162, reg.cc 116/117, gdr.cc 73/73, multiplane.cc
186/189, gin.cc 491/491 (the GDAKI arm is compiled out, as in the
shipping build), net_ib_cast_gid_inspect.cc 102/102. The misses are
calloc failures, a capability probe that cannot fail, a telemetry slot
that is never out of range, and the return after reg.cc's loop.

## Mutation Testing
172 mutations on the hipified sources, all killed; 5 of them needed a
sharper test first. 1 more against the review changes, also killed. 11
more for #12749's runtime uDMA count and its mlx5-only data-direct
checks, all killed.

## Test Plan
Standalone build: `rccl-UnitTestsMicroNetIbCastInit` 275/275 in about
0.4 s, and `--gtest_shuffle --gtest_repeat=20` is clean. Every other
host binary was rebuilt against the changed fakes and run once. DdaColl
and Rocmwrap fail as they do on develop (the break #13819 fixes) and
link none of the changed files.

---------

Co-authored-by: Claude <noreply@anthropic.com>
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.

3 participants