Fix or hide `BlockRadixRank` and friends
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 486
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 295
Description
Currently, we have a set of block radix rank facilities:
- `BlockRadixRank`
- `BlockRadixRankMatch`
- `BlockRadixRankMatchEarlyCounts`
There's also a `enum BlockScanAlgorithm` that describes the differences between these algorithms. Unlike the rest of CUB facilities, `BlockRadixRank*` don't follow the common pattern of accepting `BlockScanAlgorithm` as a template parameter. Ideally, there'll be only `BlockRadixRank` which would take `BlockScanAlgorithm` as a template parameter to specialize for a particular case. Unfortunately, the implementations have different set of template parameters and some work has to be done before this is possible. We have to options:
1. Break API and make `BlockRadixRank` a high-level entry point that accepts `BlockScanAlgorithm`.
2. Hide all `BlockRadixRank*` algorithms as implementation details for `BlockRadixSort`.
Since there are people using `BlockRadixRank` separately, the former is preferable.
Contributor guide
Assessment
This issue has not been assessed yet.