rocPRIM
Static Public Attributes | List of all members
reduce_by_key_config_v2< BlockSize, ItemsPerThread, LoadKeysMethod, LoadValuesMethod, ScanAlgorithm, TilesPerBlock, SizeLimit > Struct Template Reference

Configuration of device-level reduce-by-key operation. More...

#include <device_reduce_by_key_config.hpp>

Static Public Attributes

static constexpr unsigned int block_size = BlockSize
 Number of threads in a block.
 
static constexpr unsigned int tiles_per_block = TilesPerBlock
 Number of tiles (BlockSize * ItemsPerThread items) to process per block.
 
static constexpr unsigned int items_per_thread = ItemsPerThread
 Number of items processed by each thread per tile.
 
static constexpr block_load_method load_keys_method = LoadKeysMethod
 A rocprim::block_load_method emum value indicating how the keys should be loaded. More...
 
static constexpr block_load_method load_values_method = LoadValuesMethod
 A rocprim::block_load_method emum value indicating how the values should be loaded. More...
 
static constexpr block_scan_algorithm scan_algorithm = ScanAlgorithm
 A rocprim::block_scan_algorithm enum value indicating how the reduction should be done. More...
 
static constexpr unsigned int size_limit = SizeLimit
 Maximum possible number of values. Defaults to ROCPRIM_GRID_SIZE_LIMIT.
 

Detailed Description

template<unsigned int BlockSize, unsigned int ItemsPerThread, block_load_method LoadKeysMethod = block_load_method::block_load_transpose, block_load_method LoadValuesMethod = block_load_method::block_load_transpose, block_scan_algorithm ScanAlgorithm = block_scan_algorithm::using_warp_scan, unsigned int TilesPerBlock = 1, unsigned int SizeLimit = ROCPRIM_GRID_SIZE_LIMIT>
struct reduce_by_key_config_v2< BlockSize, ItemsPerThread, LoadKeysMethod, LoadValuesMethod, ScanAlgorithm, TilesPerBlock, SizeLimit >

Configuration of device-level reduce-by-key operation.

Template Parameters
BlockSizenumber of threads in a block.
ItemsPerThreadnumber of items processed by each thread per tile.
LoadKeysMethodmethod of loading keys
LoadValuesMethodmethod of loading values
ScanAlgorithmblock level scan algorithm to use
TilesPerBlocknumber of tiles (BlockSize * ItemsPerThread items) to process per block
SizeLimitlimit on the number of items for a single reduce_by_key kernel launch.

Member Data Documentation

◆ load_keys_method

template<unsigned int BlockSize, unsigned int ItemsPerThread, block_load_method LoadKeysMethod = block_load_method::block_load_transpose, block_load_method LoadValuesMethod = block_load_method::block_load_transpose, block_scan_algorithm ScanAlgorithm = block_scan_algorithm::using_warp_scan, unsigned int TilesPerBlock = 1, unsigned int SizeLimit = ROCPRIM_GRID_SIZE_LIMIT>
constexpr block_load_method reduce_by_key_config_v2< BlockSize, ItemsPerThread, LoadKeysMethod, LoadValuesMethod, ScanAlgorithm, TilesPerBlock, SizeLimit >::load_keys_method = LoadKeysMethod
static

A rocprim::block_load_method emum value indicating how the keys should be loaded.

Defaults to block_load_method::block_load_transpose

◆ load_values_method

template<unsigned int BlockSize, unsigned int ItemsPerThread, block_load_method LoadKeysMethod = block_load_method::block_load_transpose, block_load_method LoadValuesMethod = block_load_method::block_load_transpose, block_scan_algorithm ScanAlgorithm = block_scan_algorithm::using_warp_scan, unsigned int TilesPerBlock = 1, unsigned int SizeLimit = ROCPRIM_GRID_SIZE_LIMIT>
constexpr block_load_method reduce_by_key_config_v2< BlockSize, ItemsPerThread, LoadKeysMethod, LoadValuesMethod, ScanAlgorithm, TilesPerBlock, SizeLimit >::load_values_method = LoadValuesMethod
static

A rocprim::block_load_method emum value indicating how the values should be loaded.

Defaults to block_load_method::block_load_transpose

◆ scan_algorithm

template<unsigned int BlockSize, unsigned int ItemsPerThread, block_load_method LoadKeysMethod = block_load_method::block_load_transpose, block_load_method LoadValuesMethod = block_load_method::block_load_transpose, block_scan_algorithm ScanAlgorithm = block_scan_algorithm::using_warp_scan, unsigned int TilesPerBlock = 1, unsigned int SizeLimit = ROCPRIM_GRID_SIZE_LIMIT>
constexpr block_scan_algorithm reduce_by_key_config_v2< BlockSize, ItemsPerThread, LoadKeysMethod, LoadValuesMethod, ScanAlgorithm, TilesPerBlock, SizeLimit >::scan_algorithm = ScanAlgorithm
static

A rocprim::block_scan_algorithm enum value indicating how the reduction should be done.

Defaults to block_scan_algorithm::using_warp_scan


The documentation for this struct was generated from the following file: