Cutlass
CUDA Templates for Linear Algebra Subroutines and Solvers
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ > Struct Template Reference

#include <gemm_global_tile.h>

Inheritance diagram for cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >:
cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ > cutlass::gemm::WmmaGemmGlobalIteratorCd< TileTraits_, Index_ >

Classes

struct  Params
 The params. More...
 

Public Types

typedef GemmGlobalIteratorCd< TileTraits_, Index_ > This_
 This class. More...
 
typedef TileIteratorBase< TileTraits_, typename TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ > Base
 The base class. More...
 
typedef TileTraits_::Scalar Scalar
 The scalar. More...
 
typedef TileTraits_::Pointer Pointer
 The pointer. More...
 
typedef TileTraits_::Threads Threads
 The threads. More...
 
typedef Index_ Index
 The index. More...
 
typedef long long LongIndex
 The index. More...
 
typedef TileTraits_::ThreadOffset ThreadOffset
 The thread offset. More...
 
- Public Types inherited from cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
typedef TileTraits_ Traits
 concept TileTraits More...
 
typedef TileTraits_::Scalar Scalar
 Scalar element. More...
 
typedef TileTraits_::Scalar FragmentElement
 Fragment element. More...
 
typedef Index_ Index
 Index type. More...
 
typedef long long LongIndex
 Long index. More...
 
typedef Shape< 0, 0, 0, 0 > Skew
 Skew quantity. More...
 
typedef Traits::Tile Tile
 Tile shape. More...
 
typedef Traits::Delta Delta
 Distance along each dimension. More...
 
typedef Traits::ImmediateOffsetStrides ImmediateOffsetStrides
 The strides in each dimension between different loads/stores. More...
 
typedef Traits::Iterations Iterations
 Iterations. More...
 
typedef Traits::ThreadOffset ThreadOffset
 Thread offset. More...
 
typedef Vectorize< FragmentElement, kAccessSize >::Type AccessType
 The elements loaded/store by one instruction. More...
 
typedef Fragment< Scalar, ShapeCount< Tile >::kCount, kFragmentSizeStorage
 The storage. More...
 
typedef Fragment< FragmentElement, ShapeCount< Iterations >::kCount *kAccessSizeFragment
 The fragment. More...
 
typedef FragmentIterator< Fragment, Iterations, AccessTypeFragmentIterator
 The fragment iterator. More...
 
typedef FragmentConstIterator< Fragment, Iterations, AccessTypeFragmentConstIterator
 The fragment const iterator. More...
 
typedef FragmentIterator::FragmentShape FragmentShape
 The shape of the fragment. More...
 
typedef PredicateVector< ShapeCount< Iterations >::kCount > PredicateVector
 Default predicate mask type. More...
 

Public Member Functions

CUTLASS_HOST_DEVICE GemmGlobalIteratorCd (Params const &_params, const Coord< 3 > &bounds, const Coord< 3 > &block, int offset=0, int pred_offset=0, ThreadOffset thread_offset_func=ThreadOffset())
 Ctor. More...
 
CUTLASS_HOST_DEVICE void inc_c ()
 Increment the pointer in the C dimension. More...
 
CUTLASS_HOST_DEVICE void inc_w ()
 Increment the pointer in the W dimension. More...
 
CUTLASS_HOST_DEVICE void inc_h ()
 Increment the pointer in the H dimension. More...
 
CUTLASS_HOST_DEVICE void inc_d ()
 Increment the pointer in the D dimension. More...
 
CUTLASS_HOST_DEVICE void inc_advance ()
 Increment the pointer to move to the next iteration. More...
 
CUTLASS_HOST_DEVICE GemmGlobalIteratorCdoperator+= (Coord< 3 > const &offset)
 Adds a vector offset to the iterator. More...
 
CUTLASS_HOST_DEVICE void load_element (typename Base::AccessType &value, int d, int h, int w, int c) const
 Loads a single fragment element from memory. More...
 
CUTLASS_HOST_DEVICE void store_element (typename Base::AccessType const &value, int d, int h, int w, int c)
 Stores a single fragment element into memory. More...
 
CUTLASS_HOST_DEVICE bool valid (int d, int h, int w, int c) const
 Test the validity of the. More...
 
CUTLASS_HOST_DEVICE void add_pointer_offset (LongIndex offset)
 add pointer offset More...
 
template<typename Fragment >
CUTLASS_HOST_DEVICE void load_post_increment (Fragment &fragment)
 Loads and increments iterator. More...
 
template<typename Fragment >
CUTLASS_HOST_DEVICE void store_post_increment (Fragment &fragment)
 
- Public Member Functions inherited from cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
CUTLASS_HOST_DEVICE bool valid (int d, int h, int w, int c) const
 Is the iterator valid? More...
 

Public Attributes

Params params
 Parameters. More...
 
Coord< 4 > thread_offset
 Offset of an individual lane from the start of the tile. More...
 
cutlass::PredicateVector< Base::Iterations::kW > predicates
 The predicates for the row. More...
 

Static Public Attributes

static MatrixLayout::Kind const kLayout = TileTraits_::kLayout
 The layout. More...
 
- Static Public Attributes inherited from cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
static IteratorAdvance::Kind const kAdvance
 Specifies dimension in which post-increment accesses advance. More...
 
static FragmentElementType::Kind const kFragmentElementType
 Specifies iterator storage fragment type (Scalar or WmmaMatrix) More...
 
static MemorySpace::Kind const kMemorySpace
 Source or destination memory space. More...
 
static int const kAccessSize
 The number of scalars accessed per load/store. More...
 
static int const kFragmentSize
 The size of storage needed per fragment. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from cutlass::TileIteratorBase< TileTraits_, TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_ >
static CUTLASS_HOST_DEVICE void initialize_predicates (PredicateIterator predicate_it, PredicateFunctor const &predicate_func, Coord< 3 > const &offset)
 Initializes a predicate vector. More...
 

Member Typedef Documentation

◆ Base

template<typename TileTraits_ , typename Index_ = int>
typedef TileIteratorBase<TileTraits_, typename TileTraits_::Scalar, IteratorAdvance::kH, MemorySpace::kGlobal, Index_> cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Base

◆ Index

template<typename TileTraits_ , typename Index_ = int>
typedef Index_ cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Index

◆ LongIndex

template<typename TileTraits_ , typename Index_ = int>
typedef long long cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::LongIndex

◆ Pointer

template<typename TileTraits_ , typename Index_ = int>
typedef TileTraits_::Pointer cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Pointer

◆ Scalar

template<typename TileTraits_ , typename Index_ = int>
typedef TileTraits_::Scalar cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Scalar

◆ This_

template<typename TileTraits_ , typename Index_ = int>
typedef GemmGlobalIteratorCd<TileTraits_, Index_> cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::This_

◆ ThreadOffset

template<typename TileTraits_ , typename Index_ = int>
typedef TileTraits_::ThreadOffset cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::ThreadOffset

◆ Threads

template<typename TileTraits_ , typename Index_ = int>
typedef TileTraits_::Threads cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::Threads

Constructor & Destructor Documentation

◆ GemmGlobalIteratorCd()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::GemmGlobalIteratorCd ( Params const &  _params,
const Coord< 3 > &  bounds,
const Coord< 3 > &  block,
int  offset = 0,
int  pred_offset = 0,
ThreadOffset  thread_offset_func = ThreadOffset() 
)
inline

Member Function Documentation

◆ add_pointer_offset()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::add_pointer_offset ( LongIndex  offset)
inline

◆ inc_advance()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::inc_advance ( )
inline

◆ inc_c()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::inc_c ( )
inline

◆ inc_d()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::inc_d ( )
inline

◆ inc_h()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::inc_h ( )
inline

◆ inc_w()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::inc_w ( )
inline

◆ load_element()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::load_element ( typename Base::AccessType value,
int  d,
int  h,
int  w,
int  c 
) const
inline

◆ load_post_increment()

template<typename TileTraits_ , typename Index_ = int>
template<typename Fragment >
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::load_post_increment ( Fragment fragment)
inline

◆ operator+=()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE GemmGlobalIteratorCd& cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::operator+= ( Coord< 3 > const &  offset)
inline

◆ store_element()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::store_element ( typename Base::AccessType const &  value,
int  d,
int  h,
int  w,
int  c 
)
inline

◆ store_post_increment()

template<typename TileTraits_ , typename Index_ = int>
template<typename Fragment >
CUTLASS_HOST_DEVICE void cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::store_post_increment ( Fragment fragment)
inline

◆ valid()

template<typename TileTraits_ , typename Index_ = int>
CUTLASS_HOST_DEVICE bool cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::valid ( int  d,
int  h,
int  w,
int  c 
) const
inline

Member Data Documentation

◆ kLayout

template<typename TileTraits_ , typename Index_ = int>
MatrixLayout::Kind const cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::kLayout = TileTraits_::kLayout
static

◆ params

template<typename TileTraits_ , typename Index_ = int>
Params cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::params

◆ predicates

template<typename TileTraits_ , typename Index_ = int>
cutlass::PredicateVector<Base::Iterations::kW> cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::predicates

◆ thread_offset

template<typename TileTraits_ , typename Index_ = int>
Coord<4> cutlass::gemm::GemmGlobalIteratorCd< TileTraits_, Index_ >::thread_offset

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