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:

## 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:

- gemm_traits.h