CUTLASS
CUDA Templates for Linear Algebra Subroutines and Solvers
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ > Struct Template Reference

Statically sized array of bits implementing.

#include <predicate_vector.h>

Classes

class  ConstIterator
 An iterator implementing Predicate Iterator Concept enabling sequential read and write access to predicates. More...
 
class  Iterator
 An iterator implementing Predicate Iterator Concept enabling sequential read and write access to predicates. More...
 
struct  TrivialIterator
 Iterator that always returns true. More...
 

Public Types

typedef uint32_t Storage
 Storage type of individual elements. More...
 

Public Member Functions

CUTLASS_HOST_DEVICE PredicateVector (bool value=true)
 Initialize the predicate vector. More...
 
CUTLASS_HOST_DEVICE void fill (bool value=true)
 Fills all predicates with a given value. More...
 
CUTLASS_HOST_DEVICE void clear ()
 Clears all predicates. More...
 
CUTLASS_HOST_DEVICE void enable ()
 Sets all predicates to true. More...
 
CUTLASS_HOST_DEVICE bool operator[] (int idx) const
 Accesses a bit within the predicate vector. More...
 
CUTLASS_HOST_DEVICE bool at (int idx) const
 Accesses a bit within the predicate vector. More...
 
CUTLASS_HOST_DEVICE void set (int idx, bool value=true)
 Set a bit within the predicate vector. More...
 
CUTLASS_HOST_DEVICE PredicateVectoroperator&= (PredicateVector const &predicates)
 Computes the intersection of two identical predicate vectors. More...
 
CUTLASS_HOST_DEVICE PredicateVectoroperator|= (PredicateVector const &predicates)
 Computes the union of two identical predicate vectors. More...
 
CUTLASS_HOST_DEVICE bool is_zero () const
 Returns true if entire predicate array is zero. More...
 
CUTLASS_DEVICE Iterator begin ()
 Returns an iterator to the start of the bit vector. More...
 
CUTLASS_DEVICE Iterator end ()
 Returns an iterator. More...
 
CUTLASS_DEVICE ConstIterator const_begin () const
 Returns a ConstIterator. More...
 
CUTLASS_DEVICE ConstIterator const_end () const
 Returns a ConstIterator. More...
 

Static Public Attributes

static int const kPredicates = kPredicates_
 Number of bits stored by the PredicateVector. More...
 
static int const kPredicatesPerByte = kPredicatesPerByte_
 Number of bits stored within each byte of the predicate bit vector. More...
 
static int const kPredicateStart = kPredicateStart_
 First bit withing each byte containing predicates. More...
 
static int const kBytes = (kPredicates + kPredicatesPerByte - 1) / kPredicatesPerByte
 Number of bytes needed. More...
 
static int const kWordCount = (kBytes + sizeof(Storage) - 1) / sizeof(Storage)
 Number of storage elements needed. More...
 

Member Typedef Documentation

template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
typedef uint32_t cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::Storage

Constructor & Destructor Documentation

template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::PredicateVector ( bool  value = true)
inline

Member Function Documentation

template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE bool cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::at ( int  idx) const
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_DEVICE Iterator cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::begin ( )
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE void cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::clear ( )
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_DEVICE ConstIterator cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::const_begin ( ) const
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_DEVICE ConstIterator cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::const_end ( ) const
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE void cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::enable ( )
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_DEVICE Iterator cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::end ( )
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE void cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::fill ( bool  value = true)
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE bool cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::is_zero ( ) const
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE PredicateVector& cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::operator&= ( PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ > const &  predicates)
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE bool cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::operator[] ( int  idx) const
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE PredicateVector& cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::operator|= ( PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ > const &  predicates)
inline
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
CUTLASS_HOST_DEVICE void cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::set ( int  idx,
bool  value = true 
)
inline

Member Data Documentation

template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
int const cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::kBytes = (kPredicates + kPredicatesPerByte - 1) / kPredicatesPerByte
static
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
int const cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::kPredicates = kPredicates_
static
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
int const cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::kPredicatesPerByte = kPredicatesPerByte_
static
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
int const cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::kPredicateStart = kPredicateStart_
static
template<int kPredicates_, int kPredicatesPerByte_ = 4, int kPredicateStart_ = 0>
int const cutlass::PredicateVector< kPredicates_, kPredicatesPerByte_, kPredicateStart_ >::kWordCount = (kBytes + sizeof(Storage) - 1) / sizeof(Storage)
static

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