Cutlass
CUDA Templates for Linear Algebra Subroutines and Solvers
Public Types | List of all members
cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ > Struct Template Reference

#include <hgemm_traits.h>

Public Types

typedef HgemmConfig< OutputTile_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_ > GemmConfig
 The HGEMM config. More...
 
typedef HgemmTileTraitsHelperA< kLayoutA_, GemmConfigGemmTileTraitsHelperA
 The GEMM config for A. More...
 
typedef HgemmTileTraitsHelperB< kLayoutB_, GemmConfigGemmTileTraitsHelperB
 The GEMM config for B. More...
 
typedef GemmGlobalIteratorAb< typename GemmTileTraitsHelperA::GlobalTileTraits, Index_ > GlobalLoadIteratorA
 The iterator to load A from global memory. More...
 
typedef HgemmTransformerA< GemmTileTraitsHelperA::kLayout, GlobalLoadIteratorA >::Transformer GlobalTransformerA
 The default transformer for A. More...
 
typedef TileStoreIterator< typename GemmTileTraitsHelperA::SharedStoreTileTraits, typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kSharedSharedStoreIteratorA
 The iterator to store A to shared memory. More...
 
typedef GlobalLoadStream< GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerAGlobalLoadStreamA
 The stream to load A from global memory to shared memory. More...
 
typedef GemmGlobalIteratorAb< typename GemmTileTraitsHelperB::GlobalTileTraits, Index_ > GlobalLoadIteratorB
 The iterator to load B from global memory. More...
 
typedef HgemmTransformerB< GemmTileTraitsHelperB::kLayout, GlobalLoadIteratorB >::Transformer GlobalTransformerB
 
typedef TileStoreIterator< typename GemmTileTraitsHelperB::SharedStoreTileTraits, typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kSharedSharedStoreIteratorB
 The iterator to store B to shared memory. More...
 
typedef GlobalLoadStream< GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerBGlobalLoadStreamB
 The stream to load B from global memory to shared memory. More...
 
typedef TileLoadIterator< typename GemmTileTraitsHelperA::SharedLoadTileTraits, typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kSharedSharedLoadIteratorA
 The iterator to load A from shared memory. More...
 
typedef SharedLoadStream< SharedLoadIteratorASharedLoadStreamA
 The stream to load A from shared memory. More...
 
typedef TileLoadIterator< typename GemmTileTraitsHelperB::SharedLoadTileTraits, typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kSharedSharedLoadIteratorB
 The iterator to load B from shared memory. More...
 
typedef SharedLoadStream< SharedLoadIteratorBSharedLoadStreamB
 The stream to load B from shared memory. More...
 
typedef GemmConfig::MultiplyAdd MultiplyAdd
 The functor to do the multiply-add in the main loop. More...
 
typedef ClearAccumulators< typename MultiplyAdd::ScalarCClearAccumulators
 The object to clear accumulators. More...
 
typedef SimplifiedGemmEpilogueTraits< GemmConfig, EpilogueFunctor_, Index_ > GemmEpilogueTraits
 The traits class for the epilogue. More...
 
typedef GemmEpilogue< GemmEpilogueTraitsEpilogue
 The epilogue. More...
 

Member Typedef Documentation

◆ ClearAccumulators

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef ClearAccumulators<typename MultiplyAdd::ScalarC> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::ClearAccumulators

◆ Epilogue

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef GemmEpilogue<GemmEpilogueTraits> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::Epilogue

◆ GemmConfig

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef HgemmConfig<OutputTile_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GemmConfig

◆ GemmEpilogueTraits

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef SimplifiedGemmEpilogueTraits<GemmConfig, EpilogueFunctor_, Index_> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GemmEpilogueTraits

◆ GemmTileTraitsHelperA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef HgemmTileTraitsHelperA<kLayoutA_, GemmConfig> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GemmTileTraitsHelperA

◆ GemmTileTraitsHelperB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef HgemmTileTraitsHelperB<kLayoutB_, GemmConfig> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GemmTileTraitsHelperB

◆ GlobalLoadIteratorA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef GemmGlobalIteratorAb<typename GemmTileTraitsHelperA::GlobalTileTraits, Index_> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GlobalLoadIteratorA

◆ GlobalLoadIteratorB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef GemmGlobalIteratorAb<typename GemmTileTraitsHelperB::GlobalTileTraits, Index_> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GlobalLoadIteratorB

◆ GlobalLoadStreamA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef GlobalLoadStream<GemmOperand::kA, GlobalLoadIteratorA, SharedStoreIteratorA, GlobalTransformerA> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GlobalLoadStreamA

◆ GlobalLoadStreamB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef GlobalLoadStream<GemmOperand::kB, GlobalLoadIteratorB, SharedStoreIteratorB, GlobalTransformerB> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GlobalLoadStreamB

◆ GlobalTransformerA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef HgemmTransformerA<GemmTileTraitsHelperA::kLayout, GlobalLoadIteratorA>::Transformer cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GlobalTransformerA

◆ GlobalTransformerB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef HgemmTransformerB<GemmTileTraitsHelperB::kLayout, GlobalLoadIteratorB>::Transformer cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::GlobalTransformerB

◆ MultiplyAdd

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef GemmConfig::MultiplyAdd cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::MultiplyAdd

◆ SharedLoadIteratorA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef TileLoadIterator<typename GemmTileTraitsHelperA::SharedLoadTileTraits, typename GemmTileTraitsHelperA::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::SharedLoadIteratorA

◆ SharedLoadIteratorB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef TileLoadIterator<typename GemmTileTraitsHelperB::SharedLoadTileTraits, typename GemmTileTraitsHelperB::SharedLoadTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::SharedLoadIteratorB

◆ SharedLoadStreamA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef SharedLoadStream<SharedLoadIteratorA> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::SharedLoadStreamA

◆ SharedLoadStreamB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef SharedLoadStream<SharedLoadIteratorB> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::SharedLoadStreamB

◆ SharedStoreIteratorA

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef TileStoreIterator<typename GemmTileTraitsHelperA::SharedStoreTileTraits, typename GemmTileTraitsHelperA::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::SharedStoreIteratorA

◆ SharedStoreIteratorB

template<MatrixLayout::Kind kLayoutA_, MatrixLayout::Kind kLayoutB_, typename OutputTile_ , typename EpilogueFunctor_ , typename ThreadGemmShape_ , int kScalarsPerLdgA_ = 2, int kScalarsPerLdgB_ = 2, typename Index_ = int>
typedef TileStoreIterator<typename GemmTileTraitsHelperB::SharedStoreTileTraits, typename GemmTileTraitsHelperB::SharedStoreTileTraits::Scalar, IteratorAdvance::kH, MemorySpace::kShared> cutlass::gemm::HgemmTraitsHelper< kLayoutA_, kLayoutB_, OutputTile_, EpilogueFunctor_, ThreadGemmShape_, kScalarsPerLdgA_, kScalarsPerLdgB_, Index_ >::SharedStoreIteratorB

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