Cutlass
CUDA Templates for Linear Algebra Subroutines and Solvers
Public Types | Public Member Functions | Public Attributes | List of all members
cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ > Struct Template Reference

GEMM problem description.

#include <gemm_desc.h>

Public Types

typedef Index_ Index
 Index type for dimensions and strides. More...
 
typedef AType_ AType
 Source accumulator matrix type. More...
 
typedef TensorRef< AType const, 2 > TensorRefA
 Tensor reference to A operand. More...
 
typedef BType_ BType
 Destination accumulator type. More...
 
typedef TensorRef< BType const, 2 > TensorRefB
 Tensor reference to B operand. More...
 
typedef CType_ CType
 Source accumulator matrix type. More...
 
typedef TensorRef< CType const, 2 > TensorRefC
 Tensor reference to C operand. More...
 
typedef DType_ DType
 Destination accumulator type. More...
 
typedef TensorRef< DType, 2 > TensorRefD
 Tensor reference to D operand. More...
 
typedef SType_ SType
 Scalar type for alpha and beta. More...
 

Public Member Functions

CUTLASS_HOST_DEVICE GemmDesc ()
 Default ctor. More...
 
CUTLASS_HOST_DEVICE GemmDesc (Coord< 3 > _problem_size, SType _alpha, TensorRefA const &_A, TensorRefB const &_B, SType _beta, TensorRefC const &_C, TensorRefD const &_D)
 Constructor for basic GEMM with batch count = 1. More...
 
CUTLASS_HOST_DEVICE GemmDesc (GemmCoord _problem_size, SType _alpha, TensorRefA const &_A, TensorRefB const &_B, SType _beta, TensorRefC const &_C, TensorRefD const &_D)
 Constructor for basic GEMM with batch count = 1. More...
 
CUTLASS_HOST_DEVICE GemmDesc (GemmCoord _problem_size, SType _alpha, TensorRefA const &_A, long long _batch_stride_A, TensorRefB const &_B, long long _batch_stride_B, SType _beta, TensorRefC const &_C, long long _batch_stride_C, TensorRefD const &_D, long long _batch_stride_D)
 Constructor for strided batch GEMM GEMM. More...
 

Public Attributes

GemmCoord problem_size
 The dimensions of the GEMM. More...
 
SType alpha
 The alpha scaling values. More...
 
TensorRefA A
 The source matrix A. More...
 
long long batch_stride_A
 batch stride for A operand More...
 
TensorRefB B
 The source matrix B. More...
 
long long batch_stride_B
 batch stride for B operand More...
 
SType beta
 The beta scaling values. More...
 
TensorRefC C
 The source matrix C. More...
 
long long batch_stride_C
 batch stride for C operand More...
 
TensorRefD D
 The destination matrix D. More...
 
long long batch_stride_D
 batch stride for D operand More...
 

Member Typedef Documentation

◆ AType

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef AType_ cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::AType

◆ BType

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef BType_ cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::BType

◆ CType

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef CType_ cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::CType

◆ DType

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef DType_ cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::DType

◆ Index

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef Index_ cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::Index

◆ SType

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef SType_ cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::SType

◆ TensorRefA

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef TensorRef<AType const, 2> cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::TensorRefA

◆ TensorRefB

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef TensorRef<BType const, 2> cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::TensorRefB

◆ TensorRefC

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef TensorRef<CType const, 2> cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::TensorRefC

◆ TensorRefD

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
typedef TensorRef<DType, 2> cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::TensorRefD

Constructor & Destructor Documentation

◆ GemmDesc() [1/4]

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
CUTLASS_HOST_DEVICE cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::GemmDesc ( )
inline

◆ GemmDesc() [2/4]

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
CUTLASS_HOST_DEVICE cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::GemmDesc ( Coord< 3 >  _problem_size,
SType  _alpha,
TensorRefA const &  _A,
TensorRefB const &  _B,
SType  _beta,
TensorRefC const &  _C,
TensorRefD const &  _D 
)
inline

◆ GemmDesc() [3/4]

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
CUTLASS_HOST_DEVICE cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::GemmDesc ( GemmCoord  _problem_size,
SType  _alpha,
TensorRefA const &  _A,
TensorRefB const &  _B,
SType  _beta,
TensorRefC const &  _C,
TensorRefD const &  _D 
)
inline

◆ GemmDesc() [4/4]

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
CUTLASS_HOST_DEVICE cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::GemmDesc ( GemmCoord  _problem_size,
SType  _alpha,
TensorRefA const &  _A,
long long  _batch_stride_A,
TensorRefB const &  _B,
long long  _batch_stride_B,
SType  _beta,
TensorRefC const &  _C,
long long  _batch_stride_C,
TensorRefD const &  _D,
long long  _batch_stride_D 
)
inline

Member Data Documentation

◆ A

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
TensorRefA cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::A

◆ alpha

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
SType cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::alpha

◆ B

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
TensorRefB cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::B

◆ batch_stride_A

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
long long cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::batch_stride_A

◆ batch_stride_B

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
long long cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::batch_stride_B

◆ batch_stride_C

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
long long cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::batch_stride_C

◆ batch_stride_D

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
long long cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::batch_stride_D

◆ beta

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
SType cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::beta

◆ C

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
TensorRefC cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::C

◆ D

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
TensorRefD cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::D

◆ problem_size

template<typename AType_, typename BType_, typename CType_, typename DType_, typename SType_, typename Index_ = int>
GemmCoord cutlass::gemm::GemmDesc< AType_, BType_, CType_, DType_, SType_, Index_ >::problem_size

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