[EPIC] Use programmatic dependent launch in all CUB algorithms
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 487
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 296
Description
[Programmatic dependent launch (PDL)](https://docs.nvidia.com/cuda/cuda-c-programming-guide/#programmatic-dependent-launch-and-synchronization) allows subsequent kernels to skip a device-wide synchronization (executed on the host) and instead synchronize on the device at a source location specified by the programmer. This can eliminate bubbles inside a stream when a kernel is finishing until the next kernel can ramp up.
We should evaluate where we can use this feature in CUB and then add it wherever it shows a benefit.
- [x] DeviceFind (implemented from the start)
- [x] DeviceHistogram: #6367
- [x] DeviceMergeSort: #3114
- [x] DeviceScan: #6639
- [x] #5250
- [x] #8765
- [ ] DeviceAdjacentDifference
- [ ] DeviceCopy
- [ ] DeviceFor
- [ ] DeviceMemcpy
- [ ] DeviceMerge
- [ ] DevicePartition
- [ ] DeviceReduce
- [ ] DeviceRunLengthEncode
- [ ] DeviceSegmentedRadixSort
- [ ] DeviceSegmentedReduce
- [ ] DeviceSegmentedSort
- [ ] DeviceSelect
- [ ] DeviceTopK
Contributor guide
Assessment
This issue has not been assessed yet.