Repository navigation
[libcu++] Adds a cuda::execution::tie_break requirement - #9238
Conversation
cuda::execution::tie_break requirement
|
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 (4)
OverviewThis PR introduces a new ChangesNew Files
Modified Files
SemanticsThe tie-break requirement specifies selection semantics for choosing which items are included in the result set when multiple items compete for the K-th slot. It operates orthogonally to
Static assertions will enforce that tie-break requirements are only meaningful when paired with appropriate determinism requirements. WalkthroughThis PR adds a new CUDA execution tie-break preference system for deterministic ordering in concurrent execution contexts. It defines an internal preference enum with three states, requirement holders for type-safe wrapping, a queryable preference interface, and public type aliases and global instances for use in execution environments and algorithms. ChangesTie-break requirement framework
Suggested reviewers
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 Infer (1.2.0)libcudacxx/test/libcudacxx/cuda/execution/tie_break.pass.cpplibcudacxx/test/libcudacxx/cuda/execution/tie_break.pass.cpp:11:10: fatal error: 'cuda/execution.tie_break.h' file not found ... [truncated 1183 characters] ... nternal-isystem" "/usr/local/include" "-internal-isystem" Comment |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
cuda::execution::tie_break requirement cuda::execution::tie_break requirement
|
If |
Yeah, but no strong opinion. I just think determinism is a requirement that most algorithms have a meaning for ( Also, I think they answer different questions: determinism is "how reproducible" a result is, whereas |
|
I think we could make the determinism guarantee to be constructible without a |
Would you envision something like this: It's worth noting that with |
@pciolkosz, I've opened a separate PR that implements this: |
|
After discussing with @gevtushenko and @pauleonix, we agreed that we want to move forward with this option. We think this is the cleanest way to expose this functionality without potentially conflating the |
74622cb to
3f3dbec
Compare
🥳 CI Workflow Results🟩 Finished in 2h 48m: Pass: 100%/118 | Total: 22h 21m | Max: 49m 56s | Hits: 99%/340915See results here. |
Closes #9255
Adds
cuda::execution::tie_breakrequirement.More details on various output requirements users can express are documented here: