[EPIC] CUB Performance Tuning
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 487
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 296
Description
Users expect CUB's algorithms to be as close to speed-of-light as possible across all GPUs and inputs. Meeting this expectation is exceedingly difficult as it requires careful selection of a variety "tuning parameters" like thread block size, the number of elements processed per thread, etc.
Determining the optimal set of tuning parameters (or just a "tuning") is exceptionally difficult, as it depends on numerous factors such as input data type, input size, GPU architecture, etc. This requires [_shmooing_](https://en.wikipedia.org/wiki/Shmoo_plot) across all the relevant parameters, measuring the performance, and analyzing the results to find the "best" set of tuning parameters.
In order to ensure CUB algorithms are tuned to our users expectations today and into the future, we need robust infrastructure for automating the shmooing and performance data analysis to select optimal tuning parameters. Once this infrastructure is in place, we should use it to evaluate and update existing tunings as well as adding new tunings for the latest hardware.
# 2.2 Tasks
- [x] https://github.com/NVIDIA/cub/issues/631
### Next Steps
- [ ] https://github.com/NVIDIA/cccl/issues/55
- [ ] Tune newly introduced decoupled look-back delays
- [ ] Tune histogram for sm90
- [ ] Re-tune segmented sort and allow users' workloads contribution
- [ ] Retune remaining algorithms
Contributor guide
Assessment
This issue has not been assessed yet.