NVIDIA / NVIDIA/cccl

[EPIC] CUB Performance Tuning

Open
#27 1 comment 0 reactions 1 assignee Claimed by @gevtushenko View on GitHub
bench cub
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

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.