GemmMultiDHostArgs< NumDTensor > Struct Template Reference

GemmMultiDHostArgs&lt; NumDTensor &gt; Struct Template Reference#

Composable Kernel: ck_tile::GemmMultiDHostArgs< NumDTensor > Struct Template Reference
ck_tile::GemmMultiDHostArgs< NumDTensor > Struct Template Reference

The MultiD GEMM kernel host arguments. More...

#include <gemm_multi_d_kernel.hpp>

Public Member Functions

CK_TILE_HOST GemmMultiDHostArgs ()=default
CK_TILE_HOST GemmMultiDHostArgs (const void *a_ptr_, const void *b_ptr_, const std::array< const void *, NumDTensor > &ds_ptr_, void *e_ptr_, index_t k_batch_, index_t M_, index_t N_, index_t K_, index_t stride_A_, index_t stride_B_, const std::array< index_t, NumDTensor > &stride_Ds_, index_t stride_E_)

Public Attributes

const void * a_ptr
const void * b_ptr
const std::array< const void *, NumDTensor > ds_ptr
union { 
   void *   e_ptr 
   void *   c_ptr 
}; 
index_t M
index_t N
index_t K
index_t stride_A
index_t stride_B
const std::array< index_t, NumDTensor > stride_Ds
union { 
   index_t   stride_E 
   index_t   stride_C 
}; 
index_t k_batch

Detailed Description

template<index_t NumDTensor = 1>
struct ck_tile::GemmMultiDHostArgs< NumDTensor >

The MultiD GEMM kernel host arguments.

Overview
This structure is passed to GemmKernelMultiD when creating kernel arguments object. It contain all necessary information required to build proper kernel argument and launch kernel on GPU. This structure defines the GEMM problem configuration by stating all required information like M,N,K sizes and respective strides. NumDTensor describes the number of D tensors.

Constructor & Destructor Documentation

◆ GemmMultiDHostArgs() [1/2]

template<index_t NumDTensor = 1>
CK_TILE_HOST ck_tile::GemmMultiDHostArgs< NumDTensor >::GemmMultiDHostArgs ( )
default

◆ GemmMultiDHostArgs() [2/2]

template<index_t NumDTensor = 1>
CK_TILE_HOST ck_tile::GemmMultiDHostArgs< NumDTensor >::GemmMultiDHostArgs ( const void * a_ptr_,
const void * b_ptr_,
const std::array< const void *, NumDTensor > & ds_ptr_,
void * e_ptr_,
index_t k_batch_,
index_t M_,
index_t N_,
index_t K_,
index_t stride_A_,
index_t stride_B_,
const std::array< index_t, NumDTensor > & stride_Ds_,
index_t stride_E_ )
inline

Member Data Documentation

◆ [union]

union { ... } ck_tile::GemmMultiDHostArgs< NumDTensor >

◆ [union]

union { ... } ck_tile::GemmMultiDHostArgs< NumDTensor >

◆ a_ptr

template<index_t NumDTensor = 1>
const void* ck_tile::GemmMultiDHostArgs< NumDTensor >::a_ptr

◆ b_ptr

template<index_t NumDTensor = 1>
const void* ck_tile::GemmMultiDHostArgs< NumDTensor >::b_ptr

◆ c_ptr

template<index_t NumDTensor = 1>
void* ck_tile::GemmMultiDHostArgs< NumDTensor >::c_ptr

◆ ds_ptr

template<index_t NumDTensor = 1>
const std::array<const void*, NumDTensor> ck_tile::GemmMultiDHostArgs< NumDTensor >::ds_ptr

◆ e_ptr

template<index_t NumDTensor = 1>
void* ck_tile::GemmMultiDHostArgs< NumDTensor >::e_ptr

◆ K

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::K

◆ k_batch

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::k_batch

◆ M

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::M

◆ N

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::N

◆ stride_A

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::stride_A

◆ stride_B

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::stride_B

◆ stride_C

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::stride_C

◆ stride_Ds

template<index_t NumDTensor = 1>
const std::array<index_t, NumDTensor> ck_tile::GemmMultiDHostArgs< NumDTensor >::stride_Ds

◆ stride_E

template<index_t NumDTensor = 1>
index_t ck_tile::GemmMultiDHostArgs< NumDTensor >::stride_E

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