Skip to content

rocSHMEM: Add signal operations - #12140

Merged
avinashkethineedi merged 6 commits into
developfrom
users/akethine/signal-operations
Oct 5, 2026
Merged

avinashkethineedi merged 6 commits into
developfrom
users/akethine/signal-operations

Conversation

@avinashkethineedi

@avinashkethineedi avinashkethineedi commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Add the standalone signal operations:

  • rocshmem_signal_add
  • rocshmem_signal_set
  • rocshmem_signal_wait_until

Technical Details

  • Map signal add and set to existing uint64 atomic operations.
  • Add context variants for signal add and set.
  • Return the signal value that satisfies the wait condition.
  • Add device-bitcode wrappers, statistics, documentation, and functional tests.

Issue Tracking

JIRA ID : AIROCSHMEM-334

Test Plan

  • Built with scripts/build_configs/ipc_single.
  • Built with scripts/build_configs/gda_mlx5.
  • Ran two-PE signaladd, signalset, and signalwaituntil tests on IPC and GDA.

Test Result

All builds and signal operation tests passed on IPC, GDA and RO.

Submission Checklist

Copilot AI lite review requested due to automatic review settings September 23, 2026 19:06
@avinashkethineedi
avinashkethineedi requested a review from a team as a code owner September 23, 2026 19:06
@github-actions github-actions Bot added documentation Improvements or additions to documentation project: rocshmem labels Sep 23, 2026
@therock-pr-bot

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 ✅ Pass —
🔎 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

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.

@avinashkethineedi avinashkethineedi changed the title Users/akethine/signal operations rocSHMEM: Add signal operations Sep 23, 2026

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

🔵 Needs a closer look

Add functional coverage for the context-based signal add and set entry points.

Review effort: Lite
Findings: None

What changed in this PR

Adds rocSHMEM signal add, set, and wait-until operations with context APIs, device wrappers, statistics, documentation, and tests.

Changes:

  • Added public and device-bitcode signal APIs.
  • Implemented signal operations and wait comparisons.
  • Added statistics, documentation, and functional coverage.
File Description
projects/​rocshmem/​utils/​header_files_gen/​SIG_OP.py Generates signal API declarations.
projects/​rocshmem/​tests/​test_categories.yaml Categorizes signal tests.
projects/​rocshmem/​tests/​functional_tests/​tester.hpp Registers test types.
projects/​rocshmem/​tests/​functional_tests/​tester.cpp Creates and launches tests.
projects/​rocshmem/​tests/​functional_tests/​tester_arguments.cpp Configures test arguments.
projects/​rocshmem/​tests/​functional_tests/​signaling_operations_tester.cpp Adds functional signal tests.
projects/​rocshmem/​tests/​functional_tests/​device_bitcode_tester.cpp Adds device-bitcode validation.
projects/​rocshmem/​tests/​functional_tests/​device_bitcode_tester_kernel.hip Tests signal APIs from device code.
projects/​rocshmem/​tests/​functional_tests/​CTestFunctionalTests.cmake Registers CTest cases.
projects/​rocshmem/​src/​stats.hpp Adds signal wait statistics.
projects/​rocshmem/​src/​rocshmem_gpu.cpp Implements signal operations.
projects/​rocshmem/​src/​device/​rocshmem_wrapper.cc Adds device-bitcode wrappers.
projects/​rocshmem/​src/​context.hpp Declares signal wait support.
projects/​rocshmem/​src/​context_tmpl_device.hpp Implements comparison helpers.
projects/​rocshmem/​src/​context_device.cpp Implements signal waiting.
projects/​rocshmem/​src/​backend_bc.cpp Reports signal statistics.
projects/​rocshmem/​scripts/​functional_tests/​driver.sh Registers scripted tests.
projects/​rocshmem/​include/​rocshmem/​rocshmem_SIG_OP.hpp Publishes signal declarations.
projects/​rocshmem/​docs/​api/​sigops.rst Documents signal operations.

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

Comment thread projects/rocshmem/src/rocshmem_gpu.cpp Resolved
@avinashkethineedi
avinashkethineedi force-pushed the users/akethine/signal-operations branch 3 times, most recently from a61f127 to 69f0e31 Compare September 28, 2026 21:54

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

LGTM

@avinashkethineedi
avinashkethineedi force-pushed the users/akethine/signal-operations branch 2 times, most recently from 82de7d0 to 81f3571 Compare October 2, 2026 17:34
- Add signal add, set, and wait-until APIs.
- Reuse uint64 atomics and shared Context comparison logic.
- Add bitcode wrappers and signal wait statistics.
- Add separate signal add, set, and wait tests.
- Verify atomic updates and wait return values.
- Register the tests in CTest and functional drivers.
- Document signal add and set variants.
- Describe signal wait-until behavior and return value.
- Add standalone signal APIs to the 3.8.0 release notes.
- Deprecate work-group and wave signal fetch variants.
- Direct users to rocshmem_signal_fetch.
- Update generated declarations, documentation, and changelog.
- Suppress warnings in device-bitcode forwarding wrappers.
- Suppress warnings in tests covering deprecated WG and wave APIs.
- Preserve deprecation diagnostics for external users.
@avinashkethineedi
avinashkethineedi force-pushed the users/akethine/signal-operations branch from 81f3571 to 2dd035b Compare October 2, 2026 21:05
@avinashkethineedi
avinashkethineedi merged commit a735d83 into develop Oct 5, 2026
84 of 86 checks passed
@avinashkethineedi
avinashkethineedi deleted the users/akethine/signal-operations branch October 5, 2026 16:04
@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.

3 participants