NVIDIA / NVIDIA/cccl

[EPIC] Use programmatic dependent launch in all CUB algorithms

Open
#3,115 1 comment 1 reaction 1 assignee Claimed by @bernhardmgruber View on GitHub
cub
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

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.