cub::AgentRadixSortHistogramPolicy#

template<int BlockThreads, int ItemsPerThread, int NOMINAL_4B_NUM_PARTS, typename ComputeT, int RadixBits>
struct AgentRadixSortHistogramPolicy#
Param ComputeT:

If void, use NOMINAL_4B_NUM_PARTS directly for NUM_PARTS. Otherwise, perform scaling.

Public Static Functions

template<typename ComputeType = ComputeT>
static inline constexpr int num_parts_helper(
)#

Public Static Attributes

static constexpr int BLOCK_THREADS = BlockThreads#
static constexpr int ITEMS_PER_THREAD = ItemsPerThread#
static constexpr int NUM_PARTS = num_parts_helper<ComputeT>()#

NUM_PARTS is the number of private histograms (parts) each histogram is split into.

Each warp lane is assigned to a specific part based on the lane ID. However, lanes with the same ID in different warp use the same private histogram. This arrangement helps reduce the degree of conflicts in atomic operations.

static constexpr int RADIX_BITS = RadixBits#