CUDPP
2.2
CUDA Data-Parallel Primitives Library
|
Template class containing compile-time parameters to the scan functions. More...
Public Types | |
typedef Oper | Op |
The operator functor used for the scan. | |
Static Public Member Functions | |
static __device__ bool | isBackward () |
Returns true if this is a backward scan. | |
static __device__ bool | isExclusive () |
Returns true if this is an exclusive scan. | |
static __device__ bool | isMultiRow () |
Returns true if this a multi-row scan. | |
static __device__ bool | writeSums () |
Returns true if this scan writes the sum of each block to the d_blockSums array (multi-block scans) | |
static __device__ bool | isFullBlock () |
Returns true if this is a full scan – all blocks process CTA_SIZE * SCAN_ELEMENTS_PER_THREAD elements. | |
Template class containing compile-time parameters to the scan functions.
ScanTraits is passed as a template parameter to all scan functions. By using these compile-time functions we can enable generic code while maintaining the highest performance. This is crucial for the performance of low-level workhorse algorithms like scan.
T | The datatype of the scan |
oper | The CUDPPOperator to use for the scan (add, max, etc.) |
multiRow | True if this is a multi-row scan |
unroll | True if scan inner loops should be unrolled |
sums | True if each block should write it's sum to the d_blockSums array (false for single-block scans) |
backward | True if this is a backward scan |
fullBlock | True if all blocks in this scan are full (CTA_SIZE * SCAN_ELEMENTS_PER_THREAD elements) |
exclusive | True for exclusive scans, false for inclusive scans |