OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
cub::ScanTileState< T, true > Struct Template Reference

Detailed Description

template<typename T>
struct cub::ScanTileState< T, true >

Tile status interface specialized for scan status and value types that can be combined into one machine word that can be read/written coherently in a single access.

Definition at line 129 of file single_pass_scan_operators.cuh.

Data Structures

struct  TileDescriptor
 

Public Types

enum  { TILE_STATUS_PADDING = CUB_PTX_WARP_THREADS }
 
typedef If<(sizeof(T)==8), longlong, typenameIf<(sizeof(T)==4), int, typenameIf<(sizeof(T)==2), short, char >::Type >::Type >::Type StatusWord
 
typedef If<(sizeof(T)==8), longlong2, typenameIf<(sizeof(T)==4), int2, typenameIf<(sizeof(T)==2), int, uchar2 >::Type >::Type >::Type TxnWord
 

Public Member Functions

__host__ __device__ __forceinline__ ScanTileState ()
 Constructor.
 
__host__ __device__ __forceinline__ cudaError_t Init (int, void *d_temp_storage, size_t)
 Initializer.
 
__device__ __forceinline__ void InitializeStatus (int num_tiles)
 
__device__ __forceinline__ void SetInclusive (int tile_idx, T tile_inclusive)
 
__device__ __forceinline__ void SetPartial (int tile_idx, T tile_partial)
 
__device__ __forceinline__ void WaitForValid (int tile_idx, StatusWord &status, T &value)
 

Static Public Member Functions

__host__ __device__ static __forceinline__ cudaError_t AllocationSize (int num_tiles, size_t &temp_storage_bytes)
 

Data Fields

TxnWordd_tile_descriptors
 

Member Typedef Documentation

◆ StatusWord

template<typename T >
typedef If<(sizeof(T)==8),longlong,typenameIf<(sizeof(T)==4),int,typenameIf<(sizeof(T)==2),short,char>::Type>::Type>::Type cub::ScanTileState< T, true >::StatusWord

Definition at line 138 of file single_pass_scan_operators.cuh.

◆ TxnWord

template<typename T >
typedef If<(sizeof(T)==8),longlong2,typenameIf<(sizeof(T)==4),int2,typenameIf<(sizeof(T)==2),int,uchar2>::Type>::Type>::Type cub::ScanTileState< T, true >::TxnWord

Definition at line 148 of file single_pass_scan_operators.cuh.

Member Enumeration Documentation

◆ anonymous enum

template<typename T >
anonymous enum

Definition at line 160 of file single_pass_scan_operators.cuh.

Constructor & Destructor Documentation

◆ ScanTileState()

template<typename T >
__host__ __device__ __forceinline__ cub::ScanTileState< T, true >::ScanTileState ( )
inline

Constructor.

Definition at line 171 of file single_pass_scan_operators.cuh.

Member Function Documentation

◆ AllocationSize()

template<typename T >
__host__ __device__ static __forceinline__ cudaError_t cub::ScanTileState< T, true >::AllocationSize ( int  num_tiles,
size_t &  temp_storage_bytes 
)
inlinestatic

Compute device memory needed for tile status

Parameters
[in]num_tilesNumber of tiles
[out]temp_storage_bytesSize in bytes of \t d_temp_storage allocation

Definition at line 193 of file single_pass_scan_operators.cuh.

◆ Init()

template<typename T >
__host__ __device__ __forceinline__ cudaError_t cub::ScanTileState< T, true >::Init ( int  ,
void *  d_temp_storage,
size_t   
)
inline

Initializer.

Parameters
[in]d_temp_storageDevice-accessible allocation of temporary storage. When NULL, the required allocation size is written to temp_storage_bytes and no work is done.

Definition at line 179 of file single_pass_scan_operators.cuh.

◆ InitializeStatus()

template<typename T >
__device__ __forceinline__ void cub::ScanTileState< T, true >::InitializeStatus ( int  num_tiles)
inline

Initialize (from device)

Definition at line 205 of file single_pass_scan_operators.cuh.

◆ SetInclusive()

template<typename T >
__device__ __forceinline__ void cub::ScanTileState< T, true >::SetInclusive ( int  tile_idx,
tile_inclusive 
)
inline

Update the specified tile's inclusive value and corresponding status

Definition at line 231 of file single_pass_scan_operators.cuh.

◆ SetPartial()

template<typename T >
__device__ __forceinline__ void cub::ScanTileState< T, true >::SetPartial ( int  tile_idx,
tile_partial 
)
inline

Update the specified tile's partial value and corresponding status

Definition at line 246 of file single_pass_scan_operators.cuh.

◆ WaitForValid()

template<typename T >
__device__ __forceinline__ void cub::ScanTileState< T, true >::WaitForValid ( int  tile_idx,
StatusWord &  status,
T &  value 
)
inline

Wait for the corresponding tile to become non-invalid

Definition at line 260 of file single_pass_scan_operators.cuh.

Field Documentation

◆ d_tile_descriptors

template<typename T >
TxnWord* cub::ScanTileState< T, true >::d_tile_descriptors

Definition at line 167 of file single_pass_scan_operators.cuh.


The documentation for this struct was generated from the following file: