Skip to content

test(rccl): Add doneEvent stream-ordering unit tests - #8383

Merged
rahulvaidya20 merged 1 commit into
developfrom
users/rahulvaidya20/aicomrccl-1301-ci-doneevent-test
Jul 15, 2026
Merged

rahulvaidya20 merged 1 commit into
developfrom
users/rahulvaidya20/aicomrccl-1301-ci-doneevent-test

Conversation

@rahulvaidya20

@rahulvaidya20 rahulvaidya20 commented Jul 10, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Adds CI unit tests for the post-checkpoint RCCL hang caused by a dropped doneEvent ordering edge in the single-stream fast launch path.

Technical Details

Six process-isolated tests in DoneEventOrderingTests.cpp, registered in rccl-UnitTests and wired into ci-precheckin.json:

  • FastPathStreamAlternation - ungrouped alternating-stream AllReduces; exercises the lastStream != launchStream doneEvent branch.
  • PostReinitStreamAlternation - two ncclCommDestroy+ncclCommInitAll reinit cycles each followed by alternating-stream AllReduces; exercises the lastStreamValid reset path.
  • SameStreamBaseline - same stream every iteration; negative control.
  • GroupedPathBaseline - alternating-stream AllReduces inside ncclGroupStart/End; verifies group calls don't break doneEvent ordering.
  • DefaultStreamToNamedStream - first AllReduce on hipStreamDefault (0), second on a named stream; exercises the lastStreamValid nullptr-handling path.
  • SameStreamThenSwitch - kIterations same-stream AllReduces then a single stream switch; exercises the lazy hipEventRecord on lastStream in ncclLaunchPrepare.

JIRA ID

JIRA ID: AICOMRCCL-1301

Test Plan

Run rccl-UnitTests --gtest_filter='DoneEventOrdering.*' on a multi-GPU node.

Test Result

All 6 tests pass on banff (8-GPU MI300X, ROCm 7.2, RCCL 2.30.4), ~52 s total.

Submission Checklist

@therock-pr-bot

therock-pr-bot Bot commented Jul 10, 2026 •

Copy link
Copy Markdown

❌ PR Check — Action Required

Check Status Details
🌿 Branch Name ✅ Pass —
📝 PR Title/Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ❌ Fail 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/DoneEventOrderingTests.cpp; 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

  • ❌ Unit Test

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.

@therock-pr-bot

therock-pr-bot Bot commented Jul 10, 2026 •

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ Unit Test

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

@rahulvaidya20

Copy link
Copy Markdown
Contributor Author

Unit Test checks by PR bot not applicable for RCCL.

@rahulvaidya20
rahulvaidya20 force-pushed the users/rahulvaidya20/aicomrccl-1301-ci-doneevent-test branch from d1bc35e to 1078c5d Compare July 10, 2026 00:49
@rahulvaidya20
rahulvaidya20 marked this pull request as ready for review July 10, 2026 00:51
@rahulvaidya20
rahulvaidya20 requested a review from a team as a code owner July 10, 2026 00:51
Copilot AI review requested due to automatic review settings July 10, 2026 00:51

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.

Pull request overview

Adds new RCCL unit tests that reproduce and guard against a single-stream fast-launch doneEvent stream-ordering regression (hang / incorrect ordering after checkpoint-like teardown/reinit), and wires them into CI precheckin.

Changes:

  • Added DoneEventOrderingTests.cpp with six process-isolated gtest cases covering alternating streams, reinit cycles, grouped calls, default-stream transitions, and lazy stream-switch behavior.
  • Registered the new test file in projects/rccl/test/CMakeLists.txt so it builds into rccl-UnitTests.
  • Added the six tests to ci-precheckin.json so they run in CI with explicit per-test timeouts.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
projects/rccl/tools/scripts/test_runner/configs/ci-precheckin.json Adds CI entries for the six new DoneEventOrdering tests.
projects/rccl/test/DoneEventOrderingTests.cpp New process-isolated unit tests targeting doneEvent stream-ordering correctness.
projects/rccl/test/CMakeLists.txt Includes the new test source in the unit test build.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread projects/rccl/tools/scripts/test_runner/configs/ci-precheckin.json
Comment thread projects/rccl/test/DoneEventOrderingTests.cpp Outdated
@rahulvaidya20
rahulvaidya20 force-pushed the users/rahulvaidya20/aicomrccl-1301-ci-doneevent-test branch from 1078c5d to cf6c484 Compare July 10, 2026 16:21
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Rahul Vaidya <ravaidya@amd.com>
@rahulvaidya20
rahulvaidya20 force-pushed the users/rahulvaidya20/aicomrccl-1301-ci-doneevent-test branch from cf6c484 to f4c17fb Compare July 13, 2026 17:09
@rahulvaidya20
rahulvaidya20 merged commit db4d5e4 into develop Jul 15, 2026
16 of 18 checks passed
@rahulvaidya20
rahulvaidya20 deleted the users/rahulvaidya20/aicomrccl-1301-ci-doneevent-test branch July 15, 2026 21:20
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