template<typename T, int LOGICAL_WARP_THREADS, int PTX_ARCH>
struct cub::WarpScanShfl< T, LOGICAL_WARP_THREADS, PTX_ARCH >
WarpScanShfl provides SHFL-based variants of parallel prefix scan of items partitioned across a CUDA thread warp.
LOGICAL_WARP_THREADS must be a power-of-two< The PTX compute capability for which to to specialize this collective
Definition at line 56 of file warp_scan_shfl.cuh.
|
__device__ __forceinline__ | WarpScanShfl (TempStorage &) |
| Constructor.
|
|
__device__ __forceinline__ int | InclusiveScanStep (int input, cub::Sum, int first_lane, int offset) |
| Inclusive prefix scan step (specialized for summation across int32 types) More...
|
|
__device__ __forceinline__ unsigned int | InclusiveScanStep (unsigned int input, cub::Sum, int first_lane, int offset) |
| Inclusive prefix scan step (specialized for summation across uint32 types) More...
|
|
__device__ __forceinline__ float | InclusiveScanStep (float input, cub::Sum, int first_lane, int offset) |
| Inclusive prefix scan step (specialized for summation across fp32 types) More...
|
|
__device__ __forceinline__ unsigned long long | InclusiveScanStep (unsigned long long input, cub::Sum, int first_lane, int offset) |
| Inclusive prefix scan step (specialized for summation across unsigned long long types) More...
|
|
__device__ __forceinline__ long long | InclusiveScanStep (long long input, cub::Sum, int first_lane, int offset) |
| Inclusive prefix scan step (specialized for summation across long long types) More...
|
|
__device__ __forceinline__ double | InclusiveScanStep (double input, cub::Sum, int first_lane, int offset) |
| Inclusive prefix scan step (specialized for summation across fp64 types) More...
|
|
template<typename _T , typename ScanOpT > |
__device__ __forceinline__ _T | InclusiveScanStep (_T input, ScanOpT scan_op, int first_lane, int offset) |
| Inclusive prefix scan step (generic) More...
|
|
template<typename _T , typename ScanOpT > |
__device__ __forceinline__ _T | InclusiveScanStep (_T input, ScanOpT scan_op, int first_lane, int offset, Int2Type< true >) |
| Inclusive prefix scan step (specialized for small integers size 32b or less) More...
|
|
template<typename _T , typename ScanOpT > |
__device__ __forceinline__ _T | InclusiveScanStep (_T input, ScanOpT scan_op, int first_lane, int offset, Int2Type< false >) |
| Inclusive prefix scan step (specialized for types other than small integers size 32b or less) More...
|
|
__device__ __forceinline__ T | Broadcast (T input, int src_lane) |
| Broadcast. More...
|
|
template<typename _T , typename ScanOpT > |
__device__ __forceinline__ void | InclusiveScan (_T input, _T &inclusive_output, ScanOpT scan_op) |
| Inclusive scan. More...
|
|
template<typename KeyT , typename ValueT , typename ReductionOpT > |
__device__ __forceinline__ void | InclusiveScan (KeyValuePair< KeyT, ValueT > input, KeyValuePair< KeyT, ValueT > &inclusive_output, ReduceByKeyOp< ReductionOpT > scan_op) |
| Inclusive scan, specialized for reduce-value-by-key. More...
|
|
template<typename ScanOpT > |
__device__ __forceinline__ void | InclusiveScan (T input, T &inclusive_output, ScanOpT scan_op, T &warp_aggregate) |
| Inclusive scan with aggregate. More...
|
|
template<typename ScanOpT , typename IsIntegerT > |
__device__ __forceinline__ void | Update (T, T &inclusive, T &exclusive, ScanOpT, IsIntegerT) |
| Update inclusive and exclusive using input and inclusive. More...
|
|
__device__ __forceinline__ void | Update (T input, T &inclusive, T &exclusive, cub::Sum, Int2Type< true >) |
| Update inclusive and exclusive using input and inclusive (specialized for summation of integer types)
|
|
template<typename ScanOpT , typename IsIntegerT > |
__device__ __forceinline__ void | Update (T, T &inclusive, T &exclusive, ScanOpT scan_op, T initial_value, IsIntegerT) |
| Update inclusive and exclusive using initial value using input, inclusive, and initial value.
|
|
__device__ __forceinline__ void | Update (T input, T &inclusive, T &exclusive, cub::Sum scan_op, T initial_value, Int2Type< true >) |
| Update inclusive and exclusive using initial value using input and inclusive (specialized for summation of integer types)
|
|
template<typename ScanOpT , typename IsIntegerT > |
__device__ __forceinline__ void | Update (T input, T &inclusive, T &exclusive, T &warp_aggregate, ScanOpT scan_op, IsIntegerT is_integer) |
| Update inclusive, exclusive, and warp aggregate using input and inclusive.
|
|
template<typename ScanOpT , typename IsIntegerT > |
__device__ __forceinline__ void | Update (T input, T &inclusive, T &exclusive, T &warp_aggregate, ScanOpT scan_op, T initial_value, IsIntegerT is_integer) |
| Update inclusive, exclusive, and warp aggregate using input, inclusive, and initial value.
|
|