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

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 > ::FragmentConvert
 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 ( )
inlinestatic

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