An iterator implementing Tile Store Iterator Concept for storing a tile to memory.
#include <tile_iterator.h>
|
typedef TileIteratorBase< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_ > | Base |
| Base class. More...
|
|
typedef Base::Traits | Traits |
| concept TileTraits More...
|
|
typedef Base::Scalar | Scalar |
| Scalar element. More...
|
|
typedef Base::FragmentElement | FragmentElement |
| Fragment element. More...
|
|
typedef Base::Index | Index |
| Index type. More...
|
|
typedef Base::Skew | Skew |
| Skew quantity. More...
|
|
typedef Base::Tile | Tile |
| Tile shape. More...
|
|
typedef Base::Delta | Delta |
| Delta. More...
|
|
typedef Base::Iterations | Iterations |
| Iterations. More...
|
|
typedef Base::ThreadOffset | ThreadOffset |
| ThreadOffset functor. More...
|
|
typedef Base::FragmentShape | FragmentShape |
| Fragment type. More...
|
|
typedef Base::AccessType | AccessType |
| Memory access type. More...
|
|
typedef Base::Fragment | Fragment |
| Fragment definition. More...
|
|
typedef Base::FragmentIterator | FragmentIterator |
| Fragment iterator definition. More...
|
|
typedef Base::FragmentConstIterator | FragmentConstIterator |
| Fragment const iterator definition. More...
|
|
typedef Base::PredicateVector | PredicateVector |
| Default predicate mask type. More...
|
|
typedef Base::Storage | SharedStorage |
| Storage object which may be stored to. More...
|
|
typedef Base::Params | BaseParams |
| IteratorBase parameters. More...
|
|
typedef Traits_ | Traits |
| concept TileTraits More...
|
|
typedef Scalar_ | Scalar |
| Scalar element. More...
|
|
typedef FragmentElement_ | FragmentElement |
| Fragment element. More...
|
|
typedef Index_ | Index |
| Index type. More...
|
|
typedef Skew_ | 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...
|
|
|
template<typename PredicateIterator > |
CUTLASS_HOST_DEVICE void | initialize_predicates (PredicateIterator predicate_it, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0)) |
| Initializes a predicate vector. More...
|
|
CUTLASS_HOST_DEVICE | TileStoreIterator () |
| Default constructor. More...
|
|
CUTLASS_HOST_DEVICE | TileStoreIterator (Params const &_params, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset()) |
| Constructs a tile store iterator. More...
|
|
CUTLASS_HOST_DEVICE | TileStoreIterator (Params const &, SharedStorage &shared_storage, Coord< 3 > const &block_offset=make_Coord(0, 0, 0), ThreadOffset thread_offset_func=ThreadOffset()) |
| Constructs a tile store iterator. More...
|
|
CUTLASS_HOST_DEVICE Scalar * | data () const |
| Returns the current pointer. More...
|
|
CUTLASS_HOST_DEVICE void | inc_d () |
| Increment in the D dimension. More...
|
|
CUTLASS_HOST_DEVICE void | inc_h () |
| Increment in the H dimension. More...
|
|
CUTLASS_HOST_DEVICE void | inc_w () |
| Increment in the W dimension. More...
|
|
CUTLASS_HOST_DEVICE void | inc_advance () |
| Increment in the next dimension. More...
|
|
CUTLASS_DEVICE void | inc_stage () |
| Increment the stage. More...
|
|
template<typename Fragment , typename PredicateIterator > |
CUTLASS_HOST_DEVICE void | store_post_increment (Fragment &fragment, PredicateIterator pred_it) |
| Stores a fragment and advances to the next tile. More...
|
|
template<typename Fragment > |
CUTLASS_HOST_DEVICE void | store_post_increment (Fragment &fragment) |
| Stores a fragment and advances to the next tile. More...
|
|
template<typename Fragment , typename PredicateIterator > |
CUTLASS_HOST_DEVICE void | store (Fragment &fragment, PredicateIterator pred_it) const |
| Stores a fragment without advancing the iterator. More...
|
|
template<typename Fragment > |
CUTLASS_HOST_DEVICE void | store (Fragment &fragment) const |
| Stores a fragment without advancing the iterator. More...
|
|
CUTLASS_DEVICE bool | valid (int d, int h, int w, int c) const |
| Is the iterator valid? More...
|
|
◆ AccessType
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Base
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
typedef TileIteratorBase<Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_> cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_ >::Base |
◆ BaseParams
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Delta
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Fragment
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ FragmentConstIterator
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ FragmentElement
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ FragmentIterator
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ FragmentShape
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Index
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Iterations
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ PredicateVector
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Scalar
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ SharedStorage
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Skew
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ ThreadOffset
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Tile
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ Traits
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ TileStoreIterator() [1/3]
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ TileStoreIterator() [2/3]
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
CUTLASS_HOST_DEVICE cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_ >::TileStoreIterator |
( |
Params const & |
_params, |
|
|
Coord< 3 > const & |
block_offset = make_Coord(0, 0, 0) , |
|
|
ThreadOffset |
thread_offset_func = ThreadOffset() |
|
) |
| |
|
inline |
◆ TileStoreIterator() [3/3]
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
CUTLASS_HOST_DEVICE cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_ >::TileStoreIterator |
( |
Params const & |
, |
|
|
SharedStorage & |
shared_storage, |
|
|
Coord< 3 > const & |
block_offset = make_Coord(0, 0, 0) , |
|
|
ThreadOffset |
thread_offset_func = ThreadOffset() |
|
) |
| |
|
inline |
◆ data()
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ inc_advance()
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ inc_d()
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ inc_h()
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ inc_stage()
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ inc_w()
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ initialize_predicates()
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
template<typename PredicateIterator >
CUTLASS_HOST_DEVICE void cutlass::TileStoreIterator< Traits_, Scalar_, Advance_, MemorySpace, Index_, FragmentElement_, IteratorFragment_, Skew_ >::initialize_predicates |
( |
PredicateIterator |
predicate_it, |
|
|
Coord< 3 > const & |
bounds, |
|
|
Coord< 3 > const & |
block_offset = make_Coord(0, 0, 0) |
|
) |
| |
|
inline |
◆ store() [1/2]
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
template<typename Fragment , typename PredicateIterator >
◆ store() [2/2]
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
template<typename Fragment >
◆ store_post_increment() [1/2]
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
template<typename Fragment , typename PredicateIterator >
◆ store_post_increment() [2/2]
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
template<typename Fragment >
◆ kAdvance
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ kIteratorFragment
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ kMemorySpace
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ params
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ stage
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
◆ thread_offset
template<typename Traits_ , typename Scalar_ , IteratorAdvance::Kind Advance_ = IteratorAdvance::kH, MemorySpace::Kind MemorySpace = MemorySpace::kGeneric, typename Index_ = int, typename FragmentElement_ = Scalar_, IteratorFragment::Kind IteratorFragment_ = IteratorFragment::kScalar, typename Skew_ = Shape<0, 0, 0, 0>>
The documentation for this struct was generated from the following file: