Cutlass CUDA Templates for Linear Algebra Subroutines and Solvers

Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
cutlass::gemm::GemmFragmentStream< Traits_ > Struct Template Reference

GEMM Fragment Stream.

`#include <gemm_fragment_stream.h>`

Inheritance diagram for cutlass::gemm::GemmFragmentStream< Traits_ >:

## 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 &params, 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 &params, 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...

## Member Typedef Documentation

## ◆ Base

template<typename Traits_ >

typedef Traits::FragmentStream cutlass::gemm::GemmFragmentStream< Traits_ >::Base

## ◆ Convert

template<typename Traits_ >

typedef Base::Convert cutlass::gemm::GemmFragmentStream< Traits_ >::Convert

## ◆ Fragment

template<typename Traits_ >

typedef Base::Fragment cutlass::gemm::GemmFragmentStream< Traits_ >::Fragment

## ◆ Index

template<typename Traits_ >

typedef Traits::Index cutlass::gemm::GemmFragmentStream< Traits_ >::Index

## ◆ LoadIterator

template<typename Traits_ >

typedef Base::LoadIterator cutlass::gemm::GemmFragmentStream< Traits_ >::LoadIterator

## ◆ Pointer

template<typename Traits_ >

typedef Traits::Scalar const* cutlass::gemm::GemmFragmentStream< Traits_ >::Pointer

## ◆ Scalar

template<typename Traits_ >

typedef Traits::Scalar cutlass::gemm::GemmFragmentStream< Traits_ >::Scalar

## ◆ Storage

template<typename Traits_ >

typedef Base::Storage cutlass::gemm::GemmFragmentStream< Traits_ >::Storage

## ◆ StoreFragment

template<typename Traits_ >

typedef Base::StoreFragment cutlass::gemm::GemmFragmentStream< Traits_ >::StoreFragment

## ◆ StoreIterator

template<typename Traits_ >

typedef Base::StoreIterator cutlass::gemm::GemmFragmentStream< Traits_ >::StoreIterator

## ◆ Traits

template<typename Traits_ >

typedef Traits_ cutlass::gemm::GemmFragmentStream< Traits_ >::Traits

## Constructor & Destructor Documentation

## ◆ GemmFragmentStream() [1/2]

template<typename Traits_ >

CUTLASS_DEVICE cutlass::gemm::GemmFragmentStream< Traits_ >::GemmFragmentStream | ( |  | ) |
| inline

## ◆ GemmFragmentStream() [2/2]

template<typename Traits_ >

CUTLASS_DEVICE cutlass::gemm::GemmFragmentStream< Traits_ >::GemmFragmentStream | ( | Params const & | params,
|  | Coord< 3 > const & | bounds,
|  | Coord< 3 > const & | block_offset = `make_Coord(0, 0, 0)`
| ) |  |
| inline

## Member Function Documentation

## ◆ commit()

template<typename Traits_ >

CUTLASS_DEVICE void cutlass::gemm::GemmFragmentStream< Traits_ >::commit | ( |  | ) |
| inline

## ◆ initialize_predicates()

template<typename Traits_ >

CUTLASS_DEVICE void cutlass::gemm::GemmFragmentStream< Traits_ >::initialize_predicates | ( | Coord< 3 > const & | bounds,
|  | Coord< 3 > const & | block_offset
| ) |  |
| inline

## ◆ load()

template<typename Traits_ >

CUTLASS_DEVICE void cutlass::gemm::GemmFragmentStream< Traits_ >::load | ( |  | ) |
| inline

## ◆ residue()

template<typename Traits_ >

CUTLASS_DEVICE void cutlass::gemm::GemmFragmentStream< Traits_ >::residue | ( | Coord< 3 > const & | bounds,
|  | Coord< 3 > const & | block_offset
| ) |  |
| inline

## ◆ shared_store_fence()

template<typename Traits_ >

static CUTLASS_DEVICE void cutlass::gemm::GemmFragmentStream< Traits_ >::shared_store_fence | ( |  | ) |
| inline static

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

- gemm_fragment_stream.h