hipCUB
|
BlockRakingLayout provides a conflict-free shared memory layout abstraction for 1D raking across thread block data. More...
#include <block_raking_layout.hpp>
Classes | |
struct | TempStorage |
Alias wrapper allowing storage to be unioned. More... | |
Public Types | |
enum | { SHARED_ELEMENTS = BLOCK_THREADS, MAX_RAKING_THREADS, SEGMENT_LENGTH = (SHARED_ELEMENTS + MAX_RAKING_THREADS - 1) / MAX_RAKING_THREADS, RAKING_THREADS = (SHARED_ELEMENTS + SEGMENT_LENGTH - 1) / SEGMENT_LENGTH, 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 HIPCUB_DEVICE T * | PlacementPtr (TempStorage &temp_storage, unsigned int linear_tid) |
Returns the location for the calling thread to place data into the grid. | |
static HIPCUB_DEVICE T * | RakingPtr (TempStorage &temp_storage, unsigned int linear_tid) |
Returns the location for the calling thread to begin sequential raking. | |
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] ptx version |
anonymous enum |