OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS > Struct Template Reference

< Whether or not we push rejected items to the back of the output More...

Detailed Description

template<typename InputIteratorT, typename FlagsInputIteratorT, typename SelectedOutputIteratorT, typename NumSelectedIteratorT, typename SelectOpT, typename EqualityOpT, typename OffsetT, bool KEEP_REJECTS>
struct cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >

< Whether or not we push rejected items to the back of the output

Utility class for dispatching the appropriately-tuned kernels for DeviceSelect

Definition at line 127 of file dispatch_select_if.cuh.

Data Structures

struct  KernelConfig
 
struct  Policy100
 SM10. More...
 
struct  Policy130
 SM13. More...
 
struct  Policy200
 SM20. More...
 
struct  Policy300
 SM30. More...
 
struct  Policy350
 SM35. More...
 
struct  PtxSelectIfPolicyT
 

Public Types

enum  { INIT_KERNEL_THREADS = 128 }
 
typedef If<(Equals< typenamestd::iterator_traits< SelectedOutputIteratorT >::value_type, void >::VALUE), typenamestd::iterator_traits< InputIteratorT >::value_type, typenamestd::iterator_traits< SelectedOutputIteratorT >::value_type >::Type OutputT
 
typedef std::iterator_traits< FlagsInputIteratorT >::value_type FlagT
 
typedef ScanTileState< OffsetTScanTileStateT
 
typedef Policy100 PtxPolicy
 

Static Public Member Functions

template<typename KernelConfig >
CUB_RUNTIME_FUNCTION static __forceinline__ void InitConfigs (int ptx_version, KernelConfig &select_if_config)
 
template<typename ScanInitKernelPtrT , typename SelectIfKernelPtrT >
CUB_RUNTIME_FUNCTION static __forceinline__ cudaError_t Dispatch (void *d_temp_storage, size_t &temp_storage_bytes, InputIteratorT d_in, FlagsInputIteratorT d_flags, SelectedOutputIteratorT d_selected_out, NumSelectedIteratorT d_num_selected_out, SelectOpT select_op, EqualityOpT equality_op, OffsetT num_items, cudaStream_t stream, bool debug_synchronous, int, ScanInitKernelPtrT scan_init_kernel, SelectIfKernelPtrT select_if_kernel, KernelConfig select_if_config)
 < Function type of cub::SelectIfKernelPtrT
 
CUB_RUNTIME_FUNCTION static __forceinline__ cudaError_t Dispatch (void *d_temp_storage, size_t &temp_storage_bytes, InputIteratorT d_in, FlagsInputIteratorT d_flags, SelectedOutputIteratorT d_selected_out, NumSelectedIteratorT d_num_selected_out, SelectOpT select_op, EqualityOpT equality_op, OffsetT num_items, cudaStream_t stream, bool debug_synchronous)
 

Member Typedef Documentation

◆ FlagT

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
typedef std::iterator_traits<FlagsInputIteratorT>::value_type cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >::FlagT

Definition at line 139 of file dispatch_select_if.cuh.

◆ OutputT

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
typedef If<(Equals<typenamestd::iterator_traits<SelectedOutputIteratorT>::value_type,void>::VALUE),typenamestd::iterator_traits<InputIteratorT>::value_type,typenamestd::iterator_traits<SelectedOutputIteratorT>::value_type>::Type cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >::OutputT

Definition at line 136 of file dispatch_select_if.cuh.

◆ PtxPolicy

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
typedef Policy100 cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >::PtxPolicy

Definition at line 257 of file dispatch_select_if.cuh.

◆ ScanTileStateT

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
typedef ScanTileState<OffsetT> cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >::ScanTileStateT

Definition at line 147 of file dispatch_select_if.cuh.

Member Enumeration Documentation

◆ anonymous enum

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
anonymous enum

Definition at line 141 of file dispatch_select_if.cuh.

Member Function Documentation

◆ Dispatch() [1/2]

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
CUB_RUNTIME_FUNCTION static __forceinline__ cudaError_t cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >::Dispatch ( void *  d_temp_storage,
size_t &  temp_storage_bytes,
InputIteratorT  d_in,
FlagsInputIteratorT  d_flags,
SelectedOutputIteratorT  d_selected_out,
NumSelectedIteratorT  d_num_selected_out,
SelectOpT  select_op,
EqualityOpT  equality_op,
OffsetT  num_items,
cudaStream_t  stream,
bool  debug_synchronous 
)
inlinestatic

Internal dispatch routine

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.
[in,out]temp_storage_bytesReference to size in bytes of d_temp_storage allocation
[in]d_inPointer to the input sequence of data items
[in]d_flagsPointer to the input sequence of selection flags (if applicable)
[in]d_selected_outPointer to the output sequence of selected data items
[in]d_num_selected_outPointer to the total number of items selected (i.e., length of d_selected_out)
[in]select_opSelection operator
[in]equality_opEquality operator
[in]num_itemsTotal number of input items (i.e., length of d_in)
[in]stream[optional] CUDA stream to launch kernels within. Default is stream0.
[in]debug_synchronous[optional] Whether or not to synchronize the stream after every kernel launch to check for errors. Also causes launch configurations to be printed to the console. Default is false.

Definition at line 486 of file dispatch_select_if.cuh.

◆ Dispatch() [2/2]

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
template<typename ScanInitKernelPtrT , typename SelectIfKernelPtrT >
CUB_RUNTIME_FUNCTION static __forceinline__ cudaError_t cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >::Dispatch ( void *  d_temp_storage,
size_t &  temp_storage_bytes,
InputIteratorT  d_in,
FlagsInputIteratorT  d_flags,
SelectedOutputIteratorT  d_selected_out,
NumSelectedIteratorT  d_num_selected_out,
SelectOpT  select_op,
EqualityOpT  equality_op,
OffsetT  num_items,
cudaStream_t  stream,
bool  debug_synchronous,
int  ,
ScanInitKernelPtrT  scan_init_kernel,
SelectIfKernelPtrT  select_if_kernel,
KernelConfig  select_if_config 
)
inlinestatic

< Function type of cub::SelectIfKernelPtrT

Internal dispatch routine for computing a device-wide selection using the specified kernel functions.

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.
[in,out]temp_storage_bytesReference to size in bytes of d_temp_storage allocation
[in]d_inPointer to the input sequence of data items
[in]d_flagsPointer to the input sequence of selection flags (if applicable)
[in]d_selected_outPointer to the output sequence of selected data items
[in]d_num_selected_outPointer to the total number of items selected (i.e., length of d_selected_out)
[in]select_opSelection operator
[in]equality_opEquality operator
[in]num_itemsTotal number of input items (i.e., length of d_in)
[in]streamCUDA stream to launch kernels within. Default is stream0.
[in]debug_synchronousWhether or not to synchronize the stream after every kernel launch to check for errors. Also causes launch configurations to be printed to the console. Default is false.
[in]scan_init_kernelKernel function pointer to parameterization of cub::DeviceScanInitKernel
[in]select_if_kernelKernel function pointer to parameterization of cub::DeviceSelectSweepKernel
[in]select_if_configDispatch parameters that match the policy that select_if_kernel was compiled for

Definition at line 344 of file dispatch_select_if.cuh.

◆ InitConfigs()

template<typename InputIteratorT , typename FlagsInputIteratorT , typename SelectedOutputIteratorT , typename NumSelectedIteratorT , typename SelectOpT , typename EqualityOpT , typename OffsetT , bool KEEP_REJECTS>
template<typename KernelConfig >
CUB_RUNTIME_FUNCTION static __forceinline__ void cub::DispatchSelectIf< InputIteratorT, FlagsInputIteratorT, SelectedOutputIteratorT, NumSelectedIteratorT, SelectOpT, EqualityOpT, OffsetT, KEEP_REJECTS >::InitConfigs ( int  ptx_version,
KernelConfig select_if_config 
)
inlinestatic

Initialize kernel dispatch configurations with the policies corresponding to the PTX assembly we will use

Definition at line 274 of file dispatch_select_if.cuh.


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