Cutlass
CUDA Templates for Linear Algebra Subroutines and Solvers
Classes | Public Types | Static Public Attributes | List of all members
cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ > Struct Template Reference

#include <gemm_global_tile.h>

Inheritance diagram for cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >:
cutlass::gemm::HgemmCrosswiseGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ > cutlass::gemm::IgemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >

Classes

struct  ThreadOffset
 Computes the thread offset in (H, W) based on thread ID. More...
 

Public Types

typedef platform::remove_const< Scalar_ >::type Scalar
 The scalar. More...
 
typedef Scalar_ * Pointer
 The pointer. More...
 
typedef Tile_ Tile
 The tile shape. More...
 
typedef ReshapeTile< Tile_, kAccessSize_ >::Tile VectorizedTile
 The vectorized tile shape. More...
 
typedef ReshapeThreads< VectorizedTile, Threads_ >::Threads Threads
 The threads shape. More...
 
typedef Shape< 1, 1, VectorizedTile::kC > ThreadsDelta
 The relative offset between two elements in the H/W dimension in adjacent threads. More...
 
typedef Shape< 0, Threads::kH, Threads::kW *kAccessSizeDelta
 The strides in each dimension between different loads/stores. More...
 
typedef Shape< 0, 0, Threads::kW *ThreadsDelta::kW, kAccessSizeImmediateOffsetStrides
 Strides for immediate offset computation. More...
 
typedef Shape< 1, VectorizedTile::kH/Threads::kH, VectorizedTile::kW/Threads::kW, VectorizedTile::kC/kAccessSizeIterations
 The number of iterations needed to load/store the tile. More...
 
typedef GemmMultiplicandTraits< Tile, kOperand, kLayoutMultiplicandTraits
 

Static Public Attributes

static GemmOperand::Kind const kOperand = kOperand_
 Identity of the operand. More...
 
static MatrixLayout::Kind const kLayout = kLayout_
 The layout. More...
 
static int const kAccessSize = kAccessSize_
 The number of scalars per LDG/STG. More...
 
static MemorySpace::Kind const kMemorySpace = MemorySpace::kGlobal
 The memory space. More...
 

Member Typedef Documentation

◆ Delta

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef Shape<0, Threads::kH, Threads::kW * kAccessSize> cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::Delta

◆ ImmediateOffsetStrides

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef Shape<0, 0, Threads::kW * ThreadsDelta::kW, kAccessSize> cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ImmediateOffsetStrides

◆ Iterations

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef Shape<1, VectorizedTile::kH / Threads::kH, VectorizedTile::kW / Threads::kW, VectorizedTile::kC / kAccessSize> cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::Iterations

◆ MultiplicandTraits

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef GemmMultiplicandTraits<Tile, kOperand, kLayout> cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::MultiplicandTraits

◆ Pointer

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef Scalar_* cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::Pointer

◆ Scalar

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef platform::remove_const<Scalar_>::type cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::Scalar

◆ Threads

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef ReshapeThreads<VectorizedTile, Threads_>::Threads cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::Threads

◆ ThreadsDelta

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef Shape<1, 1, VectorizedTile::kC> cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::ThreadsDelta

◆ Tile

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef Tile_ cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::Tile

◆ VectorizedTile

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
typedef ReshapeTile<Tile_, kAccessSize_>::Tile cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::VectorizedTile

Member Data Documentation

◆ kAccessSize

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
int const cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::kAccessSize = kAccessSize_
static

◆ kLayout

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
MatrixLayout::Kind const cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::kLayout = kLayout_
static

◆ kMemorySpace

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
MemorySpace::Kind const cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::kMemorySpace = MemorySpace::kGlobal
static

◆ kOperand

template<GemmOperand::Kind kOperand_, MatrixLayout::Kind kLayout_, typename Scalar_, typename Tile_, typename Threads_, int kAccessSize_>
GemmOperand::Kind const cutlass::gemm::GemmGlobalTileTraits< kOperand_, kLayout_, Scalar_, Tile_, Threads_, kAccessSize_ >::kOperand = kOperand_
static

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