Cutlass CUDA Templates for Linear Algebra Subroutines and Solvers

Public Types | List of all members
cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ > Struct Template Reference

`#include <igemm_traits.h>`

## Public Types
typedef IgemmConfig< OutputTile_, ScalarD_, ThreadGemmShape_ > | GemmConfig
| The IGEMM config. More...
typedef IgemmTileTraitsHelperA< kLayoutA_, GemmConfig, Index_ > | GemmTileTraitsHelperA
| The GEMM config for A. More...
typedef IgemmTileTraitsHelperB< kLayoutB_, GemmConfig, Index_ > | GemmTileTraitsHelperB
| The GEMM config for B. More...
typedef GemmTileTraitsHelperA::GlobalLoadIterator | GlobalLoadIteratorA
| The iterator to load A from global memory. More...
typedef IgemmTransformerA< GemmTileTraitsHelperA::kLayout, GlobalLoadIteratorA >::Transformer | GlobalTransformerA
| The default transformer for A. More...
typedef TileStoreIterator< typename GemmTileTraitsHelperA::SharedStoreTileTraits, typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > | SharedStoreIteratorA
| The iterator to store A to shared memory. More...
typedef GlobalLoadStream< GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA > | GlobalLoadStreamA
| The stream to load A from global memory to shared memory. More...
typedef GemmTileTraitsHelperB::GlobalLoadIterator | GlobalLoadIteratorB
| The iterator to load B from global memory. More...
typedef IgemmTransformerB< GemmTileTraitsHelperB::kLayout, GlobalLoadIteratorB >::Transformer | GlobalTransformerB
typedef TileStoreIterator< typename GemmTileTraitsHelperB::SharedStoreTileTraits, typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > | SharedStoreIteratorB
| The iterator to store B to shared memory. More...
typedef GlobalLoadStream< GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB > | GlobalLoadStreamB
| The stream to load B from global memory to shared memory. More...
typedef TileLoadIterator< typename GemmTileTraitsHelperA::SharedLoadTileTraits, typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > | SharedLoadIteratorA
| The iterator to load A from shared memory. More...
typedef SharedLoadStream< SharedLoadIteratorA, Copy< typename SharedLoadIteratorA::Fragment > > | SharedLoadStreamA
| The stream to load A from shared memory. More...
typedef TileLoadIterator< typename GemmTileTraitsHelperB::SharedLoadTileTraits, typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared > | SharedLoadIteratorB
| The iterator to load B from shared memory. More...
typedef SharedLoadStream< SharedLoadIteratorB, Copy< typename SharedLoadIteratorB::Fragment > > | SharedLoadStreamB
| The stream to load B from shared memory. More...
typedef GemmConfig::MultiplyAdd | MultiplyAdd
| The multiply-add functor. More...
typedef ClearAccumulators< typename MultiplyAdd::ScalarC > | ClearAccumulators
| The object to clear accumulators. More...
typedef IgemmEpilogue< IgemmEpilogueTraits< GemmConfig, EpilogueFunctor_ > > | Epilogue
| The epilogue. More...

## Member Typedef Documentation

## ◆ ClearAccumulators

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef ClearAccumulators<typename MultiplyAdd::ScalarC> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::ClearAccumulators

## ◆ Epilogue

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef IgemmEpilogue<IgemmEpilogueTraits<GemmConfig, EpilogueFunctor_> > cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::Epilogue

## ◆ GemmConfig

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef IgemmConfig<OutputTile_, ScalarD_, ThreadGemmShape_> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GemmConfig

## ◆ GemmTileTraitsHelperA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef IgemmTileTraitsHelperA<kLayoutA_, GemmConfig, Index_> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GemmTileTraitsHelperA

## ◆ GemmTileTraitsHelperB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef IgemmTileTraitsHelperB<kLayoutB_, GemmConfig, Index_> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GemmTileTraitsHelperB

## ◆ GlobalLoadIteratorA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef GemmTileTraitsHelperA::GlobalLoadIterator cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GlobalLoadIteratorA

## ◆ GlobalLoadIteratorB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef GemmTileTraitsHelperB::GlobalLoadIterator cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GlobalLoadIteratorB

## ◆ GlobalLoadStreamA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef GlobalLoadStream<GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GlobalLoadStreamA

## ◆ GlobalLoadStreamB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef GlobalLoadStream<GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GlobalLoadStreamB

## ◆ GlobalTransformerA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef IgemmTransformerA<GemmTileTraitsHelperA::kLayout, GlobalLoadIteratorA>::Transformer cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GlobalTransformerA

## ◆ GlobalTransformerB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef IgemmTransformerB<GemmTileTraitsHelperB::kLayout, GlobalLoadIteratorB>::Transformer cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::GlobalTransformerB

## ◆ MultiplyAdd

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef GemmConfig::MultiplyAdd cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::MultiplyAdd

## ◆ SharedLoadIteratorA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef TileLoadIterator<typename GemmTileTraitsHelperA::SharedLoadTileTraits, typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::SharedLoadIteratorA

## ◆ SharedLoadIteratorB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef TileLoadIterator<typename GemmTileTraitsHelperB::SharedLoadTileTraits, typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::SharedLoadIteratorB

## ◆ SharedLoadStreamA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef SharedLoadStream<SharedLoadIteratorA, Copy<typename SharedLoadIteratorA::Fragment> > cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::SharedLoadStreamA

## ◆ SharedLoadStreamB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef SharedLoadStream<SharedLoadIteratorB, Copy<typename SharedLoadIteratorB::Fragment> > cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::SharedLoadStreamB

## ◆ SharedStoreIteratorA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef TileStoreIterator<typename GemmTileTraitsHelperA::SharedStoreTileTraits, typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::SharedStoreIteratorA

## ◆ SharedStoreIteratorB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename ScalarD_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ = Shape<32, 8, 8>, typename Index_ = int>

typedef TileStoreIterator<typename GemmTileTraitsHelperB::SharedStoreTileTraits, typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::IgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, ScalarD_, EpilogueFunctor_, ThreadGemmShape_, Index_ >::SharedStoreIteratorB

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

- igemm_traits.h