GemmHostArgs< NumDTensor > Struct Template Reference

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

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

The GEMM kernel host arguments. More...

#include <gemm_kernel.hpp>

Inheritance diagram for ck_tile::GemmHostArgs< NumDTensor >:
ck_tile::BatchedGemmHostArgs

Public Member Functions

CK_TILE_HOST GemmHostArgs ()=default
 
CK_TILE_HOST GemmHostArgs (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 = 0>
struct ck_tile::GemmHostArgs< NumDTensor >

The GEMM kernel host arguments.

Overview
This structure is passed to GemmKernel 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

◆ GemmHostArgs() [1/2]

template<index_t NumDTensor = 0>
CK_TILE_HOST ck_tile::GemmHostArgs< NumDTensor >::GemmHostArgs ( )
default

◆ GemmHostArgs() [2/2]

template<index_t NumDTensor = 0>
CK_TILE_HOST ck_tile::GemmHostArgs< NumDTensor >::GemmHostArgs ( 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 { ... }

◆ a_ptr

template<index_t NumDTensor = 0>
const void* ck_tile::GemmHostArgs< NumDTensor >::a_ptr

◆ b_ptr

template<index_t NumDTensor = 0>
const void* ck_tile::GemmHostArgs< NumDTensor >::b_ptr

◆ c_ptr

template<index_t NumDTensor = 0>
void* ck_tile::GemmHostArgs< NumDTensor >::c_ptr

◆ ds_ptr

template<index_t NumDTensor = 0>
const std::array<const void*, NumDTensor> ck_tile::GemmHostArgs< NumDTensor >::ds_ptr

◆ e_ptr

template<index_t NumDTensor = 0>
void* ck_tile::GemmHostArgs< NumDTensor >::e_ptr

◆ K

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::K

◆ k_batch

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::k_batch

◆ M

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::M

◆ N

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::N

◆ stride_A

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::stride_A

◆ stride_B

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::stride_B

◆ stride_C

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::stride_C

◆ stride_Ds

template<index_t NumDTensor = 0>
const std::array<index_t, NumDTensor> ck_tile::GemmHostArgs< NumDTensor >::stride_Ds

◆ stride_E

template<index_t NumDTensor = 0>
index_t ck_tile::GemmHostArgs< NumDTensor >::stride_E

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