Cutlass CUDA Templates for Linear Algebra Subroutines and Solvers

Public Types | Static Public Attributes | List of all members
cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ > Struct Template Reference

Defines a FragmentStream by mapping GEMM dimensions onto contiguous and strided dimensions.

`#include <gemm_fragment_stream.h>`

## Public Types
typedef Scalar_ | Scalar
| Scalar data type. More...
typedef ThreadBlockTile_ | ThreadBlockTile
| Shape of the thread block tile (K, N, M) More...
typedef Index_ | Index
| Index type. More...
typedef ShapeDiv< DestinationSkew_, Shape< ScalarsPerInst, ScalarsPerInst, ScalarsPerInst, 1 > >::Shape | DestinationSkew
| Skew added to shared memory tile. More...
typedef GemmMultiplicandTraits< ThreadBlockTile, kUsage, kLayout > | MultiplicandTraits
| Traits of multiplicand. More...
typedef MultiplicandTraits::Shape | ScalarTile
| Scalar tile shape. More...
typedef ReshapeTile< ScalarTile, kAccessSize >::Tile | VectorizedTile
| Reshape for vectorized access. More...
typedef TileTraitsDefault< VectorizedTile, kThreads > | TileTraits
| Define structure of stripmined tile. More...
typedef FragmentStream< TileTraits, TileLoadIterator< TileTraits, Scalar, MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kGlobal, Index >, TileStoreIterator< TileTraits, Scalar, MultiplicandTraits::kKstrided ? IteratorAdvance::kH :IteratorAdvance::kW, MemorySpace::kShared, Index, Scalar, IteratorFragment::kScalar, DestinationSkew > > | FragmentStream
| Define the tile stream. More...

## Static Public Attributes
static GemmOperand::Kind const | kUsage = Usage
| Indicates identity of multiplicand. More...
static MatrixLayout::Kind const | kLayout = Layout
| Layout of the operand. More...
static int const | kThreads = Threads
| Number of threads. More...
static int const | kAccessSize = ScalarsPerInst
| Scalars per instruction. More...

## Member Typedef Documentation

## ◆ DestinationSkew

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef ShapeDiv<DestinationSkew_, Shape<ScalarsPerInst, ScalarsPerInst, ScalarsPerInst, 1> >::Shape cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::DestinationSkew

## ◆ FragmentStream

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef FragmentStream< TileTraits, TileLoadIterator<TileTraits, Scalar, MultiplicandTraits::kKstrided ? IteratorAdvance::kH : IteratorAdvance::kW, MemorySpace::kGlobal, Index>, TileStoreIterator<TileTraits, Scalar, MultiplicandTraits::kKstrided ? IteratorAdvance::kH : IteratorAdvance::kW, MemorySpace::kShared, Index, Scalar, IteratorFragment::kScalar, DestinationSkew> > cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::FragmentStream

## ◆ Index

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef Index_ cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::Index

## ◆ MultiplicandTraits

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef GemmMultiplicandTraits<ThreadBlockTile, kUsage, kLayout> cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::MultiplicandTraits

## ◆ Scalar

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef Scalar_ cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::Scalar

## ◆ ScalarTile

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef MultiplicandTraits::Shape cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::ScalarTile

## ◆ ThreadBlockTile

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef ThreadBlockTile_ cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::ThreadBlockTile

## ◆ TileTraits

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef TileTraitsDefault<VectorizedTile, kThreads> cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::TileTraits

## ◆ VectorizedTile

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

typedef ReshapeTile<ScalarTile, kAccessSize>::Tile cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::VectorizedTile

## Member Data Documentation

## ◆ kAccessSize

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

int const cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::kAccessSize = ScalarsPerInst
| static

## ◆ kLayout

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

MatrixLayout::Kind const cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::kLayout = Layout
| static

## ◆ kThreads

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

int const cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::kThreads = Threads
| static

## ◆ kUsage

template<GemmOperand::Kind Usage, typename Scalar_ , MatrixLayout::Kind Layout, typename ThreadBlockTile_ , int Threads, int ScalarsPerInst, typename Index_ = int, typename DestinationSkew_ = Shape<0, 0, 0, 0>>

GemmOperand::Kind const cutlass::gemm::GemmFragmentStreamTraits< Usage, Scalar_, Layout, ThreadBlockTile_, Threads, ScalarsPerInst, Index_, DestinationSkew_ >::kUsage = Usage
| static

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

- gemm_fragment_stream.h