cub
cub copied to clipboard
Fix or hide `BlockRadixRank` and friends
Currently, we have a set of block radix rank facilities:
BlockRadixRankBlockRadixRankMatchBlockRadixRankMatchEarlyCounts
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:
- Break API and make
BlockRadixRanka high-level entry point that acceptsBlockScanAlgorithm. - Hide all
BlockRadixRank*algorithms as implementation details forBlockRadixSort.
Since there are people using BlockRadixRank separately, the former is preferable.