NVIDIA / NVIDIA/cccl

Fix or hide `BlockRadixRank` and friends

Open
#900 0 comments 0 reactions 0 assignees View on GitHub
cub
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

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.