Template Class BlockScan

Inheritance Relationships

Base Type

  • private rocprim::block_scan< T, BLOCK_DIM_X, static_cast<::rocprim::block_scan_algorithm >(ALGORITHM), BLOCK_DIM_Y, BLOCK_DIM_Z >

Class Documentation

template<typename T, int BLOCK_DIM_X, BlockScanAlgorithm ALGORITHM = BLOCK_SCAN_RAKING, int BLOCK_DIM_Y = 1, int BLOCK_DIM_Z = 1, int ARCH = HIPCUB_ARCH>
class hipcub::BlockScan : private rocprim::block_scan<T, BLOCK_DIM_X, static_cast<::rocprim::block_scan_algorithm>(ALGORITHM), BLOCK_DIM_Y, BLOCK_DIM_Z>

Public Types

using TempStorage = typename base_type::storage_type

Public Functions

__device__ inline BlockScan()
__device__ inline BlockScan(TempStorage &temp_storage)
__device__ inline void InclusiveSum(T input, T &output)
__device__ inline void InclusiveSum(T input, T &output, T &block_aggregate)
template<typename BlockPrefixCallbackOp>
__device__ inline void InclusiveSum(T input, T &output, BlockPrefixCallbackOp &block_prefix_callback_op)
template<int ITEMS_PER_THREAD>
__device__ inline void InclusiveSum(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD])
template<int ITEMS_PER_THREAD>
__device__ inline void InclusiveSum(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], T &block_aggregate)
template<int ITEMS_PER_THREAD, typename BlockPrefixCallbackOp>
__device__ inline void InclusiveSum(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], BlockPrefixCallbackOp &block_prefix_callback_op)
template<typename ScanOp>
__device__ inline void InclusiveScan(T input, T &output, ScanOp scan_op)
template<typename ScanOp>
__device__ inline void InclusiveScan(T input, T &output, ScanOp scan_op, T &block_aggregate)
template<typename ScanOp, typename BlockPrefixCallbackOp>
__device__ inline void InclusiveScan(T input, T &output, ScanOp scan_op, BlockPrefixCallbackOp &block_prefix_callback_op)
template<int ITEMS_PER_THREAD, typename ScanOp>
__device__ inline void InclusiveScan(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], ScanOp scan_op)
template<int ITEMS_PER_THREAD, typename ScanOp>
__device__ inline void InclusiveScan(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], ScanOp scan_op, T &block_aggregate)
template<int ITEMS_PER_THREAD, typename ScanOp, typename BlockPrefixCallbackOp>
__device__ inline void InclusiveScan(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], ScanOp scan_op, BlockPrefixCallbackOp &block_prefix_callback_op)
__device__ inline void ExclusiveSum(T input, T &output)
__device__ inline void ExclusiveSum(T input, T &output, T &block_aggregate)
template<typename BlockPrefixCallbackOp>
__device__ inline void ExclusiveSum(T input, T &output, BlockPrefixCallbackOp &block_prefix_callback_op)
template<int ITEMS_PER_THREAD>
__device__ inline void ExclusiveSum(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD])
template<int ITEMS_PER_THREAD>
__device__ inline void ExclusiveSum(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], T &block_aggregate)
template<int ITEMS_PER_THREAD, typename BlockPrefixCallbackOp>
__device__ inline void ExclusiveSum(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], BlockPrefixCallbackOp &block_prefix_callback_op)
template<typename ScanOp>
__device__ inline void ExclusiveScan(T input, T &output, T initial_value, ScanOp scan_op)
template<typename ScanOp>
__device__ inline void ExclusiveScan(T input, T &output, T initial_value, ScanOp scan_op, T &block_aggregate)
template<typename ScanOp, typename BlockPrefixCallbackOp>
__device__ inline void ExclusiveScan(T input, T &output, ScanOp scan_op, BlockPrefixCallbackOp &block_prefix_callback_op)
template<int ITEMS_PER_THREAD, typename ScanOp>
__device__ inline void ExclusiveScan(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], T initial_value, ScanOp scan_op)
template<int ITEMS_PER_THREAD, typename ScanOp>
__device__ inline void ExclusiveScan(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], T initial_value, ScanOp scan_op, T &block_aggregate)
template<int ITEMS_PER_THREAD, typename ScanOp, typename BlockPrefixCallbackOp>
__device__ inline void ExclusiveScan(T (&input)[ITEMS_PER_THREAD], T (&output)[ITEMS_PER_THREAD], ScanOp scan_op, BlockPrefixCallbackOp &block_prefix_callback_op)