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_ >:

## 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, kFragmentSize > | Storage
| The storage. More...
typedef Fragment< FragmentElement, ShapeCount< Iterations >::kCount *kAccessSize > | Fragment
| The fragment. More...
typedef FragmentIterator< Fragment, Iterations, AccessType > | FragmentIterator
| The fragment iterator. More...
typedef FragmentConstIterator< Fragment, Iterations, AccessType > | FragmentConstIterator
| 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 GemmGlobalIteratorCd & | operator+= (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:

- gemm_global_tile.h