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. | |
| static __device__ T | op (const T &a, const T &b) |
| The operator function used for the scan. | |
| static __device__ T | identity () |
| The identity value used by the scan. | |
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 |
1.5.5