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::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 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::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< 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::kSharedSharedLoadIteratorB
 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::ScalarCClearAccumulators
 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: