Template Class BlockReduce

Inheritance Relationships

Base Type

  • private rocprim::block_reduce< T, BLOCK_DIM_X, static_cast<::rocprim::block_reduce_algorithm >(ALGORITHM), BLOCK_DIM_Y, BLOCK_DIM_Z >

Class Documentation

template<typename T, int BLOCK_DIM_X, BlockReduceAlgorithm ALGORITHM = BLOCK_REDUCE_WARP_REDUCTIONS, int BLOCK_DIM_Y = 1, int BLOCK_DIM_Z = 1, int ARCH = HIPCUB_ARCH>
class BlockReduce : private rocprim::block_reduce<T, BLOCK_DIM_X, static_cast<::rocprim::block_reduce_algorithm>(ALGORITHM), BLOCK_DIM_Y, BLOCK_DIM_Z>

Public Types

using TempStorage = typename base_type::storage_type

Public Functions

__device__ inline BlockReduce()
__device__ inline BlockReduce(TempStorage &temp_storage)
__device__ inline T Sum(T input)
__device__ inline T Sum(T input, int valid_items)
template<int ITEMS_PER_THREAD>
__device__ inline T Sum(T (&input)[ITEMS_PER_THREAD])
template<typename ReduceOp>
__device__ inline T Reduce(T input, ReduceOp reduce_op)
template<typename ReduceOp>
__device__ inline T Reduce(T input, ReduceOp reduce_op, int valid_items)
template<int ITEMS_PER_THREAD, typename ReduceOp>
__device__ inline T Reduce(T (&input)[ITEMS_PER_THREAD], ReduceOp reduce_op)