OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
cub::WarpExchange< T, ITEMS_PER_THREAD, LOGICAL_WARP_THREADS, PTX_ARCH > Class Template Reference

Detailed Description

template<typename T, int ITEMS_PER_THREAD, int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, int PTX_ARCH = CUB_PTX_ARCH>
class cub::WarpExchange< T, ITEMS_PER_THREAD, LOGICAL_WARP_THREADS, PTX_ARCH >

Definition at line 1134 of file block_exchange.cuh.

Data Structures

struct  _TempStorage
 Shared memory storage layout type. More...
 
struct  TempStorage
 \smemstorage{WarpExchange} More...
 

Public Member Functions

__device__ __forceinline__ WarpExchange (TempStorage &temp_storage)
 Constructor.
 
template<typename OffsetT >
__device__ __forceinline__ void ScatterToStriped (T items[ITEMS_PER_THREAD], OffsetT ranks[ITEMS_PER_THREAD])
 Exchanges valid data items annotated by rank into striped arrangement.
 

Private Types

enum  {
  IS_ARCH_WARP = (LOGICAL_WARP_THREADS == CUB_WARP_THREADS(PTX_ARCH)) , WARP_ITEMS = (ITEMS_PER_THREAD * LOGICAL_WARP_THREADS) + 1 , LOG_SMEM_BANKS = CUB_LOG_SMEM_BANKS(PTX_ARCH) , SMEM_BANKS = 1 << LOG_SMEM_BANKS ,
  INSERT_PADDING = (ITEMS_PER_THREAD > 4) && (PowerOfTwo<ITEMS_PER_THREAD>::VALUE) , PADDING_ITEMS = (INSERT_PADDING) ? (WARP_ITEMS >> LOG_SMEM_BANKS) : 0
}
 Constants. More...
 

Private Attributes

_TempStoragetemp_storage
 
int lane_id
 

Member Enumeration Documentation

◆ anonymous enum

template<typename T , int ITEMS_PER_THREAD, int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, int PTX_ARCH = CUB_PTX_ARCH>
anonymous enum
private

Constants.

Definition at line 1143 of file block_exchange.cuh.

Constructor & Destructor Documentation

◆ WarpExchange()

template<typename T , int ITEMS_PER_THREAD, int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, int PTX_ARCH = CUB_PTX_ARCH>
__device__ __forceinline__ cub::WarpExchange< T, ITEMS_PER_THREAD, LOGICAL_WARP_THREADS, PTX_ARCH >::WarpExchange ( TempStorage temp_storage)
inline

Constructor.

Definition at line 1190 of file block_exchange.cuh.

Member Function Documentation

◆ ScatterToStriped()

template<typename T , int ITEMS_PER_THREAD, int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, int PTX_ARCH = CUB_PTX_ARCH>
template<typename OffsetT >
__device__ __forceinline__ void cub::WarpExchange< T, ITEMS_PER_THREAD, LOGICAL_WARP_THREADS, PTX_ARCH >::ScatterToStriped ( items[ITEMS_PER_THREAD],
OffsetT  ranks[ITEMS_PER_THREAD] 
)
inline

Exchanges valid data items annotated by rank into striped arrangement.

  • \smemreuse
Template Parameters
OffsetT[inferred] Signed integer type for local offsets
Parameters
items[in-out] Items to exchange
[in]ranksCorresponding scatter ranks

Definition at line 1213 of file block_exchange.cuh.

Field Documentation

◆ lane_id

template<typename T , int ITEMS_PER_THREAD, int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, int PTX_ARCH = CUB_PTX_ARCH>
int cub::WarpExchange< T, ITEMS_PER_THREAD, LOGICAL_WARP_THREADS, PTX_ARCH >::lane_id
private

Definition at line 1181 of file block_exchange.cuh.

◆ temp_storage

template<typename T , int ITEMS_PER_THREAD, int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, int PTX_ARCH = CUB_PTX_ARCH>
_TempStorage& cub::WarpExchange< T, ITEMS_PER_THREAD, LOGICAL_WARP_THREADS, PTX_ARCH >::temp_storage
private

Definition at line 1180 of file block_exchange.cuh.


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