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 | ( |  | ) |

inlinestatic

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

- gemm_fragment_stream.h