rocPRIM
|
Configuration of device-level segmented radix sort operation. More...
#include <device_segmented_radix_sort_config.hpp>
Public Types | |
using | sort = SortConfig |
Configuration of radix sort kernel. | |
using | warp_sort_config = WarpSortConfig |
Configuration of the warp sort method. | |
Static Public Attributes | |
static constexpr unsigned int | long_radix_bits = LongRadixBits |
Number of bits in long iterations. | |
static constexpr unsigned int | short_radix_bits = ShortRadixBits |
Number of bits in short iterations. | |
Configuration of device-level segmented radix sort operation.
Radix sort is excecuted in a few iterations (passes) depending on total number of bits to be sorted (begin_bit
and end_bit
), each iteration sorts either LongRadixBits
or ShortRadixBits
bits choosen to cover whole bit range in optimal way.
For example, if LongRadixBits
is 7, ShortRadixBits
is 6, begin_bit
is 0 and end_bit
is 32 there will be 5 iterations: 7 + 7 + 6 + 6 + 6 = 32 bits.
If a segment's element count is low ( <= warp_sort_config::items_per_thread * warp_sort_config::logical_warp_size ), it is sorted by a special warp-level sorting method.
LongRadixBits | - number of bits in long iterations. |
ShortRadixBits | - number of bits in short iterations, must be equal to or less than LongRadixBits . |
SortConfig | - configuration of radix sort kernel. Must be kernel_config . |
WarpSortConfig | - configuration of the warp sort that is used on the short segments. |