RadixRankAlgorithm
#
-
enum cub::RadixRankAlgorithm#
Radix ranking algorithm, the algorithm used to implement stable ranking of the keys from a single tile.
Note that different ranking algorithms require different initial arrangements of keys to function properly.
Values:
-
enumerator RADIX_RANK_BASIC#
Ranking using the BlockRadixRank algorithm with
MEMOIZE_OUTER_SCAN == false
.It uses thread-private histograms, and thus uses more shared memory. Requires blocked arrangement of keys. Does not support count callbacks.
-
enumerator RADIX_RANK_MEMOIZE#
Ranking using the BlockRadixRank algorithm with
MEMOIZE_OUTER_SCAN == true
.Similar to RADIX_RANK BASIC, it requires blocked arrangement of keys and does not support count callbacks.
-
enumerator RADIX_RANK_MATCH#
Ranking using the BlockRadixRankMatch algorithm.
It uses warp-private histograms and matching for ranking the keys in a single warp. Therefore, it uses less shared memory compared to RADIX_RANK_BASIC. It requires warp-striped key arrangement and supports count callbacks.
-
enumerator RADIX_RANK_MATCH_EARLY_COUNTS_ANY#
Ranking using the BlockRadixRankMatchEarlyCounts algorithm with
MATCH_ALGORITHM == WARP_MATCH_ANY
.An alternative implementation of match-based ranking that computes bin counts early. Because of this, it works better with onesweep sorting, which requires bin counts for decoupled look-back. Assumes warp-striped key arrangement and supports count callbacks.
-
enumerator RADIX_RANK_MATCH_EARLY_COUNTS_ATOMIC_OR#
Ranking using the BlockRadixRankEarlyCounts algorithm with
MATCH_ALGORITHM == WARP_MATCH_ATOMIC_OR
.It uses extra space in shared memory to generate warp match masks using
atomicOr()
. This is faster when there are few matches, but can lead to slowdowns if the number of matching keys among warp lanes is high. Assumes warp-striped key arrangement and supports count callbacks.
-
enumerator RADIX_RANK_BASIC#