Cutlass
CUDA Templates for Linear Algebra Subroutines and Solvers
Public Member Functions | Public Attributes | List of all members
cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params Struct Reference

Parameters object constructable on the host.

#include <gemm_traits.h>

Inheritance diagram for cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params:
cutlass::KernelLaunchConfiguration

Public Member Functions

template<typename GemmDesc_ >
CUTLASS_HOST_DEVICE int initialize (GemmDesc_ const &desc)
 Initialize the parameters. More...
 
CUTLASS_HOST_DEVICE int initialize (Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd)
 Helper to construct a GEMM params using a BLAS-like API. More...
 
CUTLASS_HOST_DEVICE int initialize (Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, long long int batch_stride_A, ScalarB const *d_b, Index ldb, long long int batch_stride_B, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, long long int batch_stride_C, ScalarD *d_d, Index ldd, long long int batch_stride_D, Index batch_count)
 Helper to construct a batched GEMM params. More...
 
template<typename GemmDesc_ >
CUTLASS_HOST_DEVICE int initialize (GemmDesc_ const &partitonK_desc, Index partitionK_count_)
 Helper to construct a partitionedK GEMM params. More...
 
CUTLASS_HOST_DEVICE int initialize (Index m, Index n, Index k, typename Epilogue::Scalar alpha, ScalarA const *d_a, Index lda, ScalarB const *d_b, Index ldb, typename Epilogue::Scalar beta, ScalarC const *d_c, Index ldc, ScalarD *d_d, Index ldd, Index partitionK_count_)
 Helper to construct a partitionedK GEMM params. More...
 
- Public Member Functions inherited from cutlass::KernelLaunchConfiguration
CUTLASS_HOST_DEVICE KernelLaunchConfiguration (dim3 _grid=dim3(1, 1, 1), dim3 _block=dim3(1, 1, 1), size_t _dynamic_smem=0)
 Constructs a KernellaunchConfiguration object. More...
 

Public Attributes

GemmCoord problem_size
 GEMM problem size. More...
 
int partitionK_range
 The K range for every partition except the last one. More...
 
GlobalLoadStream::Params global_to_shared_stream
 Parameters object for the global load stream. More...
 
SharedStream::Params shared_stream
 Parameters object for the shared load stream. More...
 
Epilogue::Params epilogue
 The params for the epilogue. More...
 
- Public Attributes inherited from cutlass::KernelLaunchConfiguration
dim3 grid
 CUDA grid dimensions. More...
 
dim3 block
 CUDA threablock dimensions. More...
 
size_t dynamic_smem
 Bytes of dynamically allocated SMEM in addition to static SMEM. More...
 

Member Function Documentation

◆ initialize() [1/5]

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
template<typename GemmDesc_ >
CUTLASS_HOST_DEVICE int cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::initialize ( GemmDesc_ const &  desc)
inline

◆ initialize() [2/5]

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
CUTLASS_HOST_DEVICE int cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::initialize ( Index  m,
Index  n,
Index  k,
typename Epilogue::Scalar  alpha,
ScalarA const *  d_a,
Index  lda,
ScalarB const *  d_b,
Index  ldb,
typename Epilogue::Scalar  beta,
ScalarC const *  d_c,
Index  ldc,
ScalarD d_d,
Index  ldd 
)
inline

◆ initialize() [3/5]

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
CUTLASS_HOST_DEVICE int cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::initialize ( Index  m,
Index  n,
Index  k,
typename Epilogue::Scalar  alpha,
ScalarA const *  d_a,
Index  lda,
long long int  batch_stride_A,
ScalarB const *  d_b,
Index  ldb,
long long int  batch_stride_B,
typename Epilogue::Scalar  beta,
ScalarC const *  d_c,
Index  ldc,
long long int  batch_stride_C,
ScalarD d_d,
Index  ldd,
long long int  batch_stride_D,
Index  batch_count 
)
inline

◆ initialize() [4/5]

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
template<typename GemmDesc_ >
CUTLASS_HOST_DEVICE int cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::initialize ( GemmDesc_ const &  partitonK_desc,
Index  partitionK_count_ 
)
inline

◆ initialize() [5/5]

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
CUTLASS_HOST_DEVICE int cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::initialize ( Index  m,
Index  n,
Index  k,
typename Epilogue::Scalar  alpha,
ScalarA const *  d_a,
Index  lda,
ScalarB const *  d_b,
Index  ldb,
typename Epilogue::Scalar  beta,
ScalarC const *  d_c,
Index  ldc,
ScalarD d_d,
Index  ldd,
Index  partitionK_count_ 
)
inline

Member Data Documentation

◆ epilogue

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
Epilogue::Params cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::epilogue

◆ global_to_shared_stream

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
GlobalLoadStream::Params cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::global_to_shared_stream

◆ partitionK_range

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
int cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::partitionK_range

◆ problem_size

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
GemmCoord cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::problem_size

◆ shared_stream

template<typename GemmConfig_, typename GlobalLoadStreamA_, typename GlobalLoadStreamB_, typename SharedLoadStreamA_, typename SharedLoadStreamB_, typename Epilogue_, typename BlockSwizzle_ = IdentityBlockSwizzle, typename Index_ = int, typename ClearAccumulators_ = ClearAccumulators<typename GemmConfig_::Accumulators::Element>>
SharedStream::Params cutlass::gemm::GemmTraits< GemmConfig_, GlobalLoadStreamA_, GlobalLoadStreamB_, SharedLoadStreamA_, SharedLoadStreamB_, Epilogue_, BlockSwizzle_, Index_, ClearAccumulators_ >::Params::shared_stream

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