Point Cloud Library (PCL)  1.9.1-dev
List of all members | Public Types | Static Public Member Functions
pcl::device::Warp Struct Reference

#include </__w/1/s/gpu/kinfu/src/cuda/utils.hpp>

Public Types

enum  { LOG_WARP_SIZE = 5, WARP_SIZE = 1 << LOG_WARP_SIZE, STRIDE = WARP_SIZE }
 
enum  { LOG_WARP_SIZE = 5, WARP_SIZE = 1 << LOG_WARP_SIZE, STRIDE = WARP_SIZE }
 

Static Public Member Functions

static __device__ __forceinline__ unsigned int laneId ()
 Returns the warp lane ID of the calling thread. More...
 
static __device__ __forceinline__ unsigned int id ()
 
static __device__ __forceinline__ int laneMaskLt ()
 
static __device__ __forceinline__ int binaryExclScan (int ballot_mask)
 
static __device__ __forceinline__ unsigned int laneId ()
 Returns the warp lane ID of the calling thread. More...
 
static __device__ __forceinline__ int laneMaskLe ()
 
static __device__ __forceinline__ int laneMaskLt ()
 
static __device__ __forceinline__ unsigned int id ()
 
static __device__ __forceinline__ int binaryInclScan (int ballot_mask)
 
static __device__ __forceinline__ int binaryExclScan (int ballot_mask)
 
template<typename It , typename T >
static __device__ __forceinline__ void fill (It beg, It end, const T &value)
 
template<typename InIt , typename OutIt >
static __device__ __forceinline__ OutIt copy (InIt beg, InIt end, OutIt out)
 
template<typename InIt , typename OutIt , class UnOp >
static __device__ __forceinline__ OutIt transform (InIt beg, InIt end, OutIt out, UnOp op)
 
template<typename InIt1 , typename InIt2 , typename OutIt , class BinOp >
static __device__ __forceinline__ OutIt transform (InIt1 beg1, InIt1 end1, InIt2 beg2, OutIt out, BinOp op)
 
template<typename OutIt , typename T >
static __device__ __forceinline__ void yota (OutIt beg, OutIt end, T value)
 
template<typename T , class BinOp >
static __device__ __forceinline__ void reduce (volatile T *buffer, BinOp op)
 
template<typename T , class BinOp >
static __device__ __forceinline__ T reduce (volatile T *buffer, T init, BinOp op)
 

Detailed Description

Definition at line 521 of file utils.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
LOG_WARP_SIZE 
WARP_SIZE 
STRIDE 

Definition at line 46 of file warp.hpp.

◆ anonymous enum

anonymous enum
Enumerator
LOG_WARP_SIZE 
WARP_SIZE 
STRIDE 

Definition at line 523 of file utils.hpp.

Member Function Documentation

◆ binaryExclScan() [1/2]

static __device__ __forceinline__ int pcl::device::Warp::binaryExclScan ( int  ballot_mask)
inlinestatic

Definition at line 85 of file warp.hpp.

References laneMaskLt().

◆ binaryExclScan() [2/2]

static __device__ __forceinline__ int pcl::device::Warp::binaryExclScan ( int  ballot_mask)
inlinestatic

Definition at line 553 of file utils.hpp.

References laneMaskLt().

◆ binaryInclScan()

static __device__ __forceinline__ int pcl::device::Warp::binaryInclScan ( int  ballot_mask)
inlinestatic

Definition at line 80 of file warp.hpp.

References laneMaskLe().

◆ copy()

template<typename InIt , typename OutIt >
static __device__ __forceinline__ OutIt pcl::device::Warp::copy ( InIt  beg,
InIt  end,
OutIt  out 
)
inlinestatic

Definition at line 98 of file warp.hpp.

References laneId(), and STRIDE.

◆ fill()

template<typename It , typename T >
static __device__ __forceinline__ void pcl::device::Warp::fill ( It  beg,
It  end,
const T &  value 
)
inlinestatic

Definition at line 91 of file warp.hpp.

References laneId(), and STRIDE.

◆ id() [1/2]

static __device__ __forceinline__ unsigned int pcl::device::Warp::id ( )
inlinestatic

Definition at line 74 of file warp.hpp.

References LOG_WARP_SIZE.

◆ id() [2/2]

static __device__ __forceinline__ unsigned int pcl::device::Warp::id ( )
inlinestatic

Definition at line 539 of file utils.hpp.

◆ laneId() [1/2]

static __device__ __forceinline__ unsigned int pcl::device::Warp::laneId ( )
inlinestatic

Returns the warp lane ID of the calling thread.

Definition at line 54 of file warp.hpp.

◆ laneId() [2/2]

static __device__ __forceinline__ unsigned int pcl::device::Warp::laneId ( )
inlinestatic

Returns the warp lane ID of the calling thread.

Definition at line 532 of file utils.hpp.

Referenced by copy(), fill(), reduce(), transform(), and yota().

◆ laneMaskLe()

static __device__ __forceinline__ int pcl::device::Warp::laneMaskLe ( )
inlinestatic

Definition at line 61 of file warp.hpp.

Referenced by binaryInclScan().

◆ laneMaskLt() [1/2]

static __device__ __forceinline__ int pcl::device::Warp::laneMaskLt ( )
inlinestatic

Definition at line 68 of file warp.hpp.

◆ laneMaskLt() [2/2]

static __device__ __forceinline__ int pcl::device::Warp::laneMaskLt ( )
inlinestatic

Definition at line 546 of file utils.hpp.

Referenced by binaryExclScan().

◆ reduce() [1/2]

template<typename T , class BinOp >
static __device__ __forceinline__ void pcl::device::Warp::reduce ( volatile T *  buffer,
BinOp  op 
)
inlinestatic

Definition at line 145 of file warp.hpp.

References laneId().

◆ reduce() [2/2]

template<typename T , class BinOp >
static __device__ __forceinline__ T pcl::device::Warp::reduce ( volatile T *  buffer,
init,
BinOp  op 
)
inlinestatic

Definition at line 161 of file warp.hpp.

References laneId().

◆ transform() [1/2]

template<typename InIt , typename OutIt , class UnOp >
static __device__ __forceinline__ OutIt pcl::device::Warp::transform ( InIt  beg,
InIt  end,
OutIt  out,
UnOp  op 
)
inlinestatic

Definition at line 110 of file warp.hpp.

References laneId(), and STRIDE.

◆ transform() [2/2]

template<typename InIt1 , typename InIt2 , typename OutIt , class BinOp >
static __device__ __forceinline__ OutIt pcl::device::Warp::transform ( InIt1  beg1,
InIt1  end1,
InIt2  beg2,
OutIt  out,
BinOp  op 
)
inlinestatic

Definition at line 122 of file warp.hpp.

References laneId(), and STRIDE.

◆ yota()

template<typename OutIt , typename T >
static __device__ __forceinline__ void pcl::device::Warp::yota ( OutIt  beg,
OutIt  end,
value 
)
inlinestatic

Definition at line 135 of file warp.hpp.

References laneId(), and STRIDE.


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