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. | |
anonymous enum |
Definition at line 73 of file block_raking_layout.cuh.