|
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. |
1.8.13