BlockRakingLayout provides a conflict-free shared memory layout abstraction for 1D raking across thread block data. More...
BlockRakingLayout provides a conflict-free shared memory layout abstraction for 1D raking across thread block data.
T | The data type to be exchanged. |
BLOCK_THREADS | The thread block size in threads. |
PTX_ARCH | [optional] \ptxversion |
Definition at line 67 of file block_raking_layout.cuh.
Data Structures | |
struct | TempStorage |
Alias wrapper allowing storage to be unioned. More... | |
Public Types | |
enum | { SHARED_ELEMENTS = BLOCK_THREADS , MAX_RAKING_THREADS = CUB_MIN(BLOCK_THREADS, CUB_WARP_THREADS(PTX_ARCH)) , SEGMENT_LENGTH = (SHARED_ELEMENTS + MAX_RAKING_THREADS - 1) / MAX_RAKING_THREADS , RAKING_THREADS = (SHARED_ELEMENTS + SEGMENT_LENGTH - 1) / SEGMENT_LENGTH , HAS_CONFLICTS = (CUB_SMEM_BANKS(PTX_ARCH) % SEGMENT_LENGTH == 0) , CONFLICT_DEGREE , USE_SEGMENT_PADDING = ((SEGMENT_LENGTH & 1) == 0) && (SEGMENT_LENGTH > 2) , GRID_ELEMENTS = RAKING_THREADS * (SEGMENT_LENGTH + USE_SEGMENT_PADDING) , UNGUARDED = (SHARED_ELEMENTS % RAKING_THREADS == 0) } |
Public Member Functions | |
struct | __align__ (16) _TempStorage |
Shared memory storage type. | |
Static Public Member Functions | |
static __device__ __forceinline__ T * | PlacementPtr (TempStorage &temp_storage, unsigned int linear_tid) |
Returns the location for the calling thread to place data into the grid. | |
static __device__ __forceinline__ T * | RakingPtr (TempStorage &temp_storage, unsigned int linear_tid) |
Returns the location for the calling thread to begin sequential raking. | |
Definition at line 73 of file block_raking_layout.cuh.
|
inline |
Shared memory storage type.
Definition at line 151 of file block_raking_layout.cuh.
|
inlinestatic |
Returns the location for the calling thread to place data into the grid.
Definition at line 121 of file block_raking_layout.cuh.
|
inlinestatic |
Returns the location for the calling thread to begin sequential raking.
Definition at line 142 of file block_raking_layout.cuh.