rocPRIM
Classes | Public Types | Public Member Functions | List of all members
detail::block_reduce_raking_reduce< T, BlockSizeX, BlockSizeY, BlockSizeZ, CommutativeOnly > Class Template Reference

Public Types

using storage_type = detail::raw_storage< storage_type_ >
 

Public Member Functions

template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_INLINE void reduce (T input, T &output, storage_type &storage, BinaryFunction reduce_op)
 Computes a thread block-wide reduction using specified reduction operator. More...
 
template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_FORCE_INLINE void reduce (T input, T &output, BinaryFunction reduce_op)
 Computes a thread block-wide reduction using specified reduction operator. More...
 
template<unsigned int ItemsPerThread, class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_INLINE void reduce (T(&input)[ItemsPerThread], T &output, storage_type &storage, BinaryFunction reduce_op)
 Computes a thread block-wide reduction using specified reduction operator. More...
 
template<unsigned int ItemsPerThread, class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_FORCE_INLINE void reduce (T(&input)[ItemsPerThread], T &output, BinaryFunction reduce_op)
 Computes a thread block-wide reduction using specified reduction operator. More...
 
template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_INLINE void reduce (T input, T &output, unsigned int valid_items, storage_type &storage, BinaryFunction reduce_op)
 Computes a thread block-wide reduction using specified reduction operator. More...
 
template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_FORCE_INLINE void reduce (T input, T &output, unsigned int valid_items, BinaryFunction reduce_op)
 Computes a thread block-wide reduction using specified reduction operator. More...
 

Member Function Documentation

◆ reduce() [1/6]

template<class T , unsigned int BlockSizeX, unsigned int BlockSizeY, unsigned int BlockSizeZ, bool CommutativeOnly = false>
template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_INLINE void detail::block_reduce_raking_reduce< T, BlockSizeX, BlockSizeY, BlockSizeZ, CommutativeOnly >::reduce ( input,
T &  output,
storage_type storage,
BinaryFunction  reduce_op 
)
inline

Computes a thread block-wide reduction using specified reduction operator.

The return value is only valid for thread0.

Parameters
input[in] Calling thread's input to be reduced
output[out] Variable containing reduction output
storage[in] Temporary Storage used for the Reduction
reduce_op[in] Binary reduction operator

◆ reduce() [2/6]

template<class T , unsigned int BlockSizeX, unsigned int BlockSizeY, unsigned int BlockSizeZ, bool CommutativeOnly = false>
template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_FORCE_INLINE void detail::block_reduce_raking_reduce< T, BlockSizeX, BlockSizeY, BlockSizeZ, CommutativeOnly >::reduce ( input,
T &  output,
BinaryFunction  reduce_op 
)
inline

Computes a thread block-wide reduction using specified reduction operator.

The return value is only valid for thread0.

Parameters
input[in] Calling thread's input to be reduced
output[out] Variable containing reduction output
reduce_op[in] Binary reduction operator

◆ reduce() [3/6]

template<class T , unsigned int BlockSizeX, unsigned int BlockSizeY, unsigned int BlockSizeZ, bool CommutativeOnly = false>
template<unsigned int ItemsPerThread, class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_INLINE void detail::block_reduce_raking_reduce< T, BlockSizeX, BlockSizeY, BlockSizeZ, CommutativeOnly >::reduce ( T(&)  input[ItemsPerThread],
T &  output,
storage_type storage,
BinaryFunction  reduce_op 
)
inline

Computes a thread block-wide reduction using specified reduction operator.

The return value is only valid for thread0.

Parameters
input[in] Calling thread's input array to be reduced
output[out] Variable containing reduction output
storage[in] Temporary Storage used for the Reduction
reduce_op[in] Binary reduction operator

◆ reduce() [4/6]

template<class T , unsigned int BlockSizeX, unsigned int BlockSizeY, unsigned int BlockSizeZ, bool CommutativeOnly = false>
template<unsigned int ItemsPerThread, class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_FORCE_INLINE void detail::block_reduce_raking_reduce< T, BlockSizeX, BlockSizeY, BlockSizeZ, CommutativeOnly >::reduce ( T(&)  input[ItemsPerThread],
T &  output,
BinaryFunction  reduce_op 
)
inline

Computes a thread block-wide reduction using specified reduction operator.

The return value is only valid for thread0.

Parameters
input[in] Calling thread's input array to be reduced
output[out] Variable containing reduction output
reduce_op[in] Binary reduction operator

◆ reduce() [5/6]

template<class T , unsigned int BlockSizeX, unsigned int BlockSizeY, unsigned int BlockSizeZ, bool CommutativeOnly = false>
template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_INLINE void detail::block_reduce_raking_reduce< T, BlockSizeX, BlockSizeY, BlockSizeZ, CommutativeOnly >::reduce ( input,
T &  output,
unsigned int  valid_items,
storage_type storage,
BinaryFunction  reduce_op 
)
inline

Computes a thread block-wide reduction using specified reduction operator.

The return value is only valid for thread0.

Parameters
input[in] Calling thread's input partial reductions
output[out] Variable containing reduction output
valid_items[in] Number of valid elements (should be equal to or less than BlockSize)
storage[in] Temporary Storage used for reduction
reduce_op[in] Binary reduction operator

◆ reduce() [6/6]

template<class T , unsigned int BlockSizeX, unsigned int BlockSizeY, unsigned int BlockSizeZ, bool CommutativeOnly = false>
template<class BinaryFunction >
ROCPRIM_DEVICE ROCPRIM_FORCE_INLINE void detail::block_reduce_raking_reduce< T, BlockSizeX, BlockSizeY, BlockSizeZ, CommutativeOnly >::reduce ( input,
T &  output,
unsigned int  valid_items,
BinaryFunction  reduce_op 
)
inline

Computes a thread block-wide reduction using specified reduction operator.

The return value is only valid for thread0.

Parameters
input[in] Calling thread's input partial reductions
output[out] Variable containing reduction output
valid_items[in] Number of valid elements (should be equal to or less than BlockSize)
reduce_op[in] Binary reduction operator

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