43 typename LoadIterator_,
45 typename StoreIterator_,
47 typename Transformer_>
73 typedef typename LoadIterator::Scalar
Scalar;
75 typedef typename LoadIterator::Pointer
Pointer;
77 typedef typename LoadIterator::Index
Index;
155 typename LoadIterator_,
157 typename StoreIterator_,
170 :
Base(params, shared_storage, bounds, block) {}
static MatrixLayout::Kind const kLayout
Make sure the transformed fragment is the same as the store fragment.
Definition: gemm_global_stream.h:71
StoreIterator::Params store_iterator
Definition: gemm_global_stream.h:84
Defines iterators for efficiently loading and storing to global memory.
Transformer_ Transformer
The transformer.
Definition: gemm_global_stream.h:53
StoreIterator_ StoreIterator
The store iterator to write to shared memory.
Definition: gemm_global_stream.h:55
StoreIterator::SharedStorage SharedStoreStorage
The amount of storage in shared memory needed to store the tile.
Definition: gemm_global_stream.h:98
TransformedFragment Fragment
Make sure the fragments match.
Definition: gemm_global_stream.h:63
TransformedFragment transformed_fragment
The fragment to convert the data after it has been fetched from shared memory.
Definition: gemm_global_stream.h:146
CUTLASS_DEVICE void residue(Index k, bool skip_clear=false)
Execute the residue code.
Definition: gemm_global_stream.h:132
CUTLASS_HOST_DEVICE int initialize(Pointer pointer, Index ld)
Setup the params.
Definition: gemm_global_stream.h:87
LoadIterator load_iterator
The iterator.
Definition: gemm_global_stream.h:140
LoadIterator::Params load_iterator
Definition: gemm_global_stream.h:82
Definition: gemm_global_stream.h:161
Free functions for loading and storing to implementations of tile iteartor concepts.
LoadIterator::SharedStorage load_iterator
Definition: gemm_global_stream.h:103
CUTLASS_DEVICE GlobalLoadStream(typename Base::Params const ¶ms, typename Base::SharedStorage &shared_storage, Coord< 3 > const &bounds, Coord< 3 > const &block)
Ctor.
Definition: gemm_global_stream.h:166
Definition: gemm_global_stream.h:49
StoreIterator store_iterator
The store iterator.
Definition: gemm_global_stream.h:148
LoadIterator::Pointer Pointer
The pointer.
Definition: gemm_global_stream.h:75
SharedStoreStorage store_iterator
Definition: gemm_global_stream.h:105
Transformer::OutputFragment TransformedFragment
The fragment that is obtained after the transformation by the transformer.
Definition: gemm_global_stream.h:60
LoadIterator::Scalar Scalar
The scalar type of the iterator.
Definition: gemm_global_stream.h:73
#define CUTLASS_HOST_DEVICE
Definition: cutlass.h:46
LoadIterator::Index Index
The index.
Definition: gemm_global_stream.h:77
Transformer transformer
The transformer.
Definition: gemm_global_stream.h:144
GlobalLoadStreamBase< LoadIterator_, StoreIterator_, Transformer_ > Base
The base class.
Definition: gemm_global_stream.h:163
Statically-sized array specifying Coords within a tensor.
Definition: coord.h:48
LoadIterator::Fragment FetchedFragment
The fragment that is copied from shared memory.
Definition: gemm_global_stream.h:58
The storage in shared memory needed by that stream.
Definition: gemm_global_stream.h:101
CUTLASS_HOST_DEVICE void iterator_store(OutputIterator &iterator, Fragment &fragment)
Stores a fragment to an output iterator.
Definition: iterator_access.h:193
FetchedFragment fetched_fragment
The fragment to fetch from shared memory.
Definition: gemm_global_stream.h:142
Kind
Definition: matrix_traits.h:36
LoadIterator_ LoadIterator
The load iterator.
Definition: gemm_global_stream.h:51
CUTLASS_HOST_DEVICE void iterator_load(InputIterator &iterator, Fragment &fragment)
Loads a fragment from an input iterator.
Definition: iterator_access.h:41
CUTLASS_DEVICE void commit()
Commit the data.
Definition: gemm_global_stream.h:125
CUTLASS_DEVICE void copy()
Load the data from shared memory to the fetch fragment.
Definition: gemm_global_stream.h:122
CUTLASS_DEVICE GlobalLoadStreamBase(Params const ¶ms, SharedStorage &shared_storage, Coord< 3 > const bounds, Coord< 3 > const &block)
Ctor.
Definition: gemm_global_stream.h:109
Defines conversion operations among Fragments of different base type.
The params.
Definition: gemm_global_stream.h:80