NVIDIA / NVIDIA/cccl

[EPIC] Use work stealing in all relevant CUB algorithms

Open
#3,871 3 comments 5 reactions 1 assignee Claimed by @bernhardmgruber View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.