Skip to content

Use result policies for MGMN algorithms#9979

Merged
Jacobfaib merged 1 commit into
NVIDIA:mainfrom
Jacobfaib:jacobf/2026-07-16/mgmn-result-policy
Jul 17, 2026
Merged

Use result policies for MGMN algorithms#9979
Jacobfaib merged 1 commit into
NVIDIA:mainfrom
Jacobfaib:jacobf/2026-07-16/mgmn-result-policy

Conversation

@Jacobfaib

@Jacobfaib Jacobfaib commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Description

Use the new result policies in MGMN algorithms. Currently only support what the original algorithm implemented, as users open issues, support for other forms may be added later on

Checklist

  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@Jacobfaib
Jacobfaib requested a review from a team as a code owner July 16, 2026 15:53
@Jacobfaib
Jacobfaib requested a review from caugonnet July 16, 2026 15:53
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Jul 16, 2026
@Jacobfaib Jacobfaib self-assigned this Jul 16, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Jul 16, 2026
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 44eb1e7e-7086-4123-a9db-1acc0b8e66ea

📥 Commits

Reviewing files that changed from the base of the PR and between 58ec695 and dc025ca.

📒 Files selected for processing (14)
  • cudax/include/cuda/experimental/__multi_gpu/algorithm/reduce/reduce.h
  • cudax/include/cuda/experimental/__multi_gpu/algorithm/scan/scan.h
  • cudax/test/multi_gpu/algorithms/exclusive_scan/range_basic.cu
  • cudax/test/multi_gpu/algorithms/exclusive_scan/range_defaults.cu
  • cudax/test/multi_gpu/algorithms/exclusive_scan/single_comm_basic.cu
  • cudax/test/multi_gpu/algorithms/exclusive_scan/single_comm_defaults.cu
  • cudax/test/multi_gpu/algorithms/inclusive_scan/range_basic.cu
  • cudax/test/multi_gpu/algorithms/inclusive_scan/range_defaults.cu
  • cudax/test/multi_gpu/algorithms/inclusive_scan/single_comm_basic.cu
  • cudax/test/multi_gpu/algorithms/inclusive_scan/single_comm_defaults.cu
  • cudax/test/multi_gpu/algorithms/reduce/range_basic.cu
  • cudax/test/multi_gpu/algorithms/reduce/range_defaults.cu
  • cudax/test/multi_gpu/algorithms/reduce/single_comm_basic.cu
  • cudax/test/multi_gpu/algorithms/reduce/single_comm_defaults.cu

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Multi-GPU scan operations now accept an explicit distributed execution policy for distributed scans (range-based and single-communicator overloads).
    • Multi-GPU reduce operations now accept an explicit broadcasted result policy (range-based and single-communicator overloads).
  • Documentation
    • Updated API docs to describe the new policy parameter and supported modes.
  • Tests
    • Adjusted multi-GPU scan and reduction test coverage and examples to use the explicit policies.

Walkthrough

Changes

Multi-GPU reduce and scan APIs now accept explicit result-policy arguments. Reduce supports broadcasted, while scan supports distributed; affected tests pass the corresponding policy tags.

Multi-GPU result-policy APIs

Layer / File(s) Summary
Reduce policy API
cudax/include/cuda/experimental/__multi_gpu/algorithm/reduce/reduce.h
Reduce overloads accept and forward result policies, with support restricted to broadcasted_t.
Scan policy API
cudax/include/cuda/experimental/__multi_gpu/algorithm/scan/scan.h
Exclusive and inclusive scan overloads forward result policies to distributed scan, restricted to distributed_t.
Reduce policy call sites
cudax/test/multi_gpu/algorithms/reduce/*
Reduce tests pass cudax::broadcasted across range, single-communicator, and default-argument cases.
Scan policy call sites
cudax/test/multi_gpu/algorithms/{exclusive_scan,inclusive_scan}/*
Scan tests pass cudax::distributed across range, single-communicator, documentation-example, and default-argument cases.

Possibly related PRs

  • NVIDIA/cccl#9796: Introduced the multi-GPU exclusive_scan overloads updated here.
  • NVIDIA/cccl#9827: Added multi-GPU inclusive-scan support in the same implementation area.
  • NVIDIA/cccl#9862: Introduced or revised the result-policy infrastructure used by these APIs.

Suggested reviewers: caugonnet, davebayer, pciolkosz, naderalawar


Comment @coderabbitai help to get the list of available commands.

@Jacobfaib

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.

@github-actions

Copy link
Copy Markdown
Contributor

🥳 CI Workflow Results

🟩 Finished in 46m 56s: Pass: 100%/57 | Total: 7h 39m | Max: 46m 45s | Hits: 87%/43680

See results here.

@Jacobfaib
Jacobfaib merged commit 8cc32e8 into NVIDIA:main Jul 17, 2026
80 of 81 checks passed
@Jacobfaib
Jacobfaib deleted the jacobf/2026-07-16/mgmn-result-policy branch July 17, 2026 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants