|
Cutlass
CUDA Templates for Linear Algebra Subroutines and Solvers
|
GEMM Fragment Stream.
#include <gemm_fragment_stream.h>
Classes | |
| struct | Params |
| Parameters object. More... | |
Public Types | |
| typedef Traits_ | Traits |
| Traits. More... | |
| typedef Traits::FragmentStream | Base |
| Base class. More... | |
| typedef Traits::Scalar | Scalar |
| Scalar type. More... | |
| typedef Base::LoadIterator | LoadIterator |
| Defines the load iterator. More... | |
| typedef Base::StoreIterator | StoreIterator |
| Defines the store iterator. More... | |
| typedef Base::Convert | Convert |
| Converts between tiles. More... | |
| typedef Base::Fragment | Fragment |
| Loaded fragment type. More... | |
| typedef Base::StoreFragment | StoreFragment |
| Stored fragment type. More... | |
| typedef Base::Storage | Storage |
| Destination storage. More... | |
| typedef Traits::Index | Index |
| Index type. More... | |
| typedef Traits::Scalar const * | Pointer |
| The pointer. More... | |
Public Types inherited from cutlass::FragmentStream< Traits_::TileTraits, TileLoadIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Traits_::Index >, TileStoreIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kShared, Traits_::Index, Traits_::Scalar, IteratorFragment::kScalar, Traits_::DestinationSkew > > | |
| typedef Traits_ | Traits |
| Defines traits of WMMA GEMM tile stream. More... | |
| typedef TileLoadIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Traits_::Index > | LoadIterator |
| Defines the load iterator. More... | |
| typedef TileStoreIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kShared, Traits_::Index, Traits_::Scalar, IteratorFragment::kScalar, Traits_::DestinationSkew > | StoreIterator |
| Defines the store iterator. More... | |
| typedef FragmentCopy< typename TileStoreIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kShared, Traits_::Index, Traits_::Scalar, IteratorFragment::kScalar, Traits_::DestinationSkew > ::Fragment, typename TileLoadIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Traits_::Index > ::Fragment > | Convert |
| Converts between tiles. More... | |
| typedef int | Index |
| Index type. More... | |
| typedef LoadIterator::Fragment | Fragment |
| Loaded fragment type. More... | |
| typedef StoreIterator::Fragment | StoreFragment |
| Stored fragment type. More... | |
| typedef StoreIterator::Storage | Storage |
| Destination storage. More... | |
| typedef StoreIterator::Storage | SharedStoreStorage |
| The storage in shared memory. More... | |
Public Member Functions | |
| CUTLASS_DEVICE | GemmFragmentStream () |
| CUTLASS_DEVICE | GemmFragmentStream (Params const ¶ms, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0)) |
| Constructor - bounds and block offset are aligned to GEMM coordinates (K, N, M) More... | |
| CUTLASS_DEVICE void | load () |
| Loads the fragment. More... | |
| CUTLASS_DEVICE void | commit () |
| Commits the fragment. More... | |
| CUTLASS_DEVICE void | residue (Coord< 3 > const &bounds, Coord< 3 > const &block_offset) |
| TODO - Recomputes predicates and clears fetch registers. More... | |
| CUTLASS_DEVICE void | initialize_predicates (Coord< 3 > const &bounds, Coord< 3 > const &block_offset) |
| Recomputes predicates aligned to GEMM coordinates (K, N, M) More... | |
Public Member Functions inherited from cutlass::FragmentStream< Traits_::TileTraits, TileLoadIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Traits_::Index >, TileStoreIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kShared, Traits_::Index, Traits_::Scalar, IteratorFragment::kScalar, Traits_::DestinationSkew > > | |
| CUTLASS_DEVICE | FragmentStream () |
| CUTLASS_DEVICE | FragmentStream (Params const ¶ms, Coord< 3 > const &bounds, Coord< 3 > const &block_offset=make_Coord(0, 0, 0)) |
| Constructor. More... | |
| CUTLASS_DEVICE void | load () |
| Loads the fragment. More... | |
| CUTLASS_DEVICE void | commit () |
| Commits the fragment. More... | |
| CUTLASS_DEVICE void | initialize_predicates (Coord< 3 > const &bounds, Coord< 3 > const &block_offset) |
| Recomputes predicates. More... | |
Static Public Member Functions | |
| static CUTLASS_DEVICE void | shared_store_fence () |
| The memory fence for shared stores. More... | |
Static Public Member Functions inherited from cutlass::FragmentStream< Traits_::TileTraits, TileLoadIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Traits_::Index >, TileStoreIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kShared, Traits_::Index, Traits_::Scalar, IteratorFragment::kScalar, Traits_::DestinationSkew > > | |
| static CUTLASS_DEVICE void | shared_store_fence () |
| The memory fence for shared stores. More... | |
Additional Inherited Members | |
Public Attributes inherited from cutlass::FragmentStream< Traits_::TileTraits, TileLoadIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Traits_::Index >, TileStoreIterator< Traits_::TileTraits, Traits_::Scalar, Traits_::MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kShared, Traits_::Index, Traits_::Scalar, IteratorFragment::kScalar, Traits_::DestinationSkew > > | |
| LoadIterator | load_iterator |
| Loads fragment from global memory. More... | |
| LoadIterator::PredicateVector | predicates |
| Predicate vector. More... | |
| StoreIterator | store_iterator |
| Stores fragment to shared memory. More... | |
| Fragment | fetch |
| Fragment fetched by load iterator. More... | |
| Convert | convert |
| Converts between load fragments and store fragments. More... | |
| typedef Traits::FragmentStream cutlass::gemm::GemmFragmentStream< Traits_ >::Base |
| typedef Base::Convert cutlass::gemm::GemmFragmentStream< Traits_ >::Convert |
| typedef Base::Fragment cutlass::gemm::GemmFragmentStream< Traits_ >::Fragment |
| typedef Traits::Index cutlass::gemm::GemmFragmentStream< Traits_ >::Index |
| typedef Base::LoadIterator cutlass::gemm::GemmFragmentStream< Traits_ >::LoadIterator |
| typedef Traits::Scalar const* cutlass::gemm::GemmFragmentStream< Traits_ >::Pointer |
| typedef Traits::Scalar cutlass::gemm::GemmFragmentStream< Traits_ >::Scalar |
| typedef Base::Storage cutlass::gemm::GemmFragmentStream< Traits_ >::Storage |
| typedef Base::StoreFragment cutlass::gemm::GemmFragmentStream< Traits_ >::StoreFragment |
| typedef Base::StoreIterator cutlass::gemm::GemmFragmentStream< Traits_ >::StoreIterator |
| typedef Traits_ cutlass::gemm::GemmFragmentStream< Traits_ >::Traits |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
1.8.14