[EPIC] Use work stealing in all relevant CUB algorithms
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 486
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 295
Description
[Work stealing](https://nvidia.github.io/cccl/libcudacxx/extended_api/work_stealing.html) is a newly exposed feature in CCCL (via #3671) which allows a thread block to steal work from other not-yet-launched thread blocks. This feature is also known as cluster launch control or UGETNEXTWORKID.
Work stealing allows load balancing and early termination at virtually no overhead, which should be generally beneficial. Since Blackwell, this feature enjoyes hardware acceleration.
We should evaluate where we can use this feature in CUB and then add it wherever it shows a benefit.
- [ ] DeviceAdjacentDifference
- [ ] DeviceCopy
- [ ] DeviceFor
- [ ] #6306
- [ ] DeviceMemcpy
- [ ] DeviceMergeSort
- [ ] DeviceMerge
- [ ] DevicePartition
- [ ] DeviceRadixSort
- [ ] DeviceReduce
- [ ] DeviceRunLengthEncode
- [ ] DeviceScan
- [ ] DeviceSegmentedRadixSort
- [ ] DeviceSegmentedReduce
- [ ] DeviceSegmentedSort
- [ ] DeviceSelect
- [ ] DeviceTopK
- [x] ~~#5100~~ (not implemented: no performance improvement)
Contributor guide
Assessment
This issue has not been assessed yet.