[cudax] Delete group's copy/move cons + assign op - #11216
Conversation
7a97bd3 to
3067bb6
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughChangesCooperative group types are now non-copyable. Reduction and sum overloads accept groups by const reference. Warp reduction uses Cooperative group API
Merge Risk: ⚪ Minimal · up to Groups and owning synchronizers are now non-copyable, with reductions borrowing groups by reference and views providing non-owning synchronization access. The remaining deinitialization concern is addressed by requiring a valid mapping, so no merge-blocking current-head risk remains. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 8ab2b6dc-2327-435f-8422-c67305be524f
📒 Files selected for processing (6)
cudax/include/cuda/experimental/__coop/reduce.cuhcudax/include/cuda/experimental/__group/group.cuhcudax/include/cuda/experimental/__group/synchronizer/barrier_synchronizer.cuhcudax/include/cuda/experimental/__group/this_group.cuhcudax/include/cuda/experimental/__group/virtual_group.cuhcudax/test/group/cooperative_algorithm.cu
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
3067bb6 to
0941c14
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 4bc342df-1e5b-4ec7-a718-e794702e004b
📒 Files selected for processing (3)
cudax/include/cuda/experimental/__coop/reduce.cuhcudax/include/cuda/experimental/__group/synchronizer/barrier_synchronizer.cuhcudax/test/group/synchronizer/barrier_synchronizer.cu
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.
0941c14 to
bd5a525
Compare
🥳 CI Workflow Results🟩 Finished in 1h 08m: Pass: 100%/63 | Total: 12h 46m | Max: 48m 58s | Hits: 63%/56982See results here. |
It doesn't make sense to have a copy constructor for a group, because you wouldn't be able to supply a new synchronizer for the group.
Moving a group could work, but it brings problems regarding conditional synchronizer destruction and synchronization, because a synchronizer can be in a moved-from state, which would cost some performance. And I don't have any use case for it yet.
Assigning a group is problematic, because basically every group has it's own signature, so it would work only under some very specific conditions.
So my idea is that if you need to pass a group, pass it by reference. If you need to pass it by copy, just pass a
group_view.