XeTLA v0.3.6
IntelĀ® Xe Templates for Linear Algebra - API Definition Document
 
Loading...
Searching...
No Matches
gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t Struct Reference

BATCH_GEMM arguments. More...

#include <batch_gemm.hpp>

Public Member Functions

 arguments_t ()=default
 Constructs arguments with default method.
 
 arguments_t (uint32_t batch_size_, uint32_t matrix_m_, uint32_t matrix_k_, uint32_t matrix_n_, matA_base_t matA_base_, uint32_t matA_ld_, matB_base_t matB_base_, uint32_t matB_ld_, matC_base_t matC_base_, uint32_t matC_ld_, epilogue_args_t epilogue_args_={})
 Constructs arguments with initialization list.
 
 arguments_t (const arguments_t &args)
 
arguments_toperator= (const arguments_t &args)
 

Public Attributes

uint32_t batch_size
 Is the number of total batches.
 
uint32_t matrix_m
 Is the size of the m dimension of the matrix multiplication (m x k x n).
 
uint32_t matrix_k
 Is the size of the k dimension of the matrix multiplication (m x k x n).
 
uint32_t matrix_n
 Is the size of the n dimension of the matrix multiplication (m x k x n).
 
uint32_t matA_ld
 Is the leading dimension (pitch) size of the matrix A in memory.
 
uint32_t matB_ld
 Is the leading dimension (pitch) size of the matrix B in memory.
 
uint32_t matC_ld
 Is the leading dimension (pitch) size of the matrix C in memory.
 
matA_base_t matA_base
 Is the base address of matrix A.
 
matB_base_t matB_base
 Is the base address of matrix B.
 
matC_base_t matC_base
 Is the base address of matrix C.
 
epilogue_args_t epilogue_args
 Is the epilogue arguments.
 

Static Public Attributes

static constexpr bool host_callable = true
 Set for device copyable.
 

Detailed Description

template<typename gemm_t_, typename epilogue_t_, gpu_arch arch_tag_>
struct gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t

BATCH_GEMM arguments.

This is the interface for users to pass the application-related runtime variables.

Constructor & Destructor Documentation

◆ arguments_t() [1/3]

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::arguments_t ( )
inlinedefault

Constructs arguments with default method.

◆ arguments_t() [2/3]

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::arguments_t ( uint32_t  batch_size_,
uint32_t  matrix_m_,
uint32_t  matrix_k_,
uint32_t  matrix_n_,
matA_base_t  matA_base_,
uint32_t  matA_ld_,
matB_base_t  matB_base_,
uint32_t  matB_ld_,
matC_base_t  matC_base_,
uint32_t  matC_ld_,
epilogue_args_t  epilogue_args_ = {} 
)
inline

Constructs arguments with initialization list.

Parameters
batch_size_Is the number of total batches.
matrix_m_Is the size of the m dimension of the matrix multiplication (m x k x n).
matrix_k_Is the size of the k dimension of the matrix multiplication (m x k x n).
matrix_n_Is the size of the n dimension of the matrix multiplication (m x k x n).
matA_base_Is the base address of matrix A.
matA_ld_Is the leading dimension (pitch) size of the matrix A in memory.
matB_base_Is the base address of matrix B.
matB_ld_Is the leading dimension (pitch) size of the matrix B in memory.
matC_base_Is the base address of matrix C.
matC_ld_Is the leading dimension (pitch) size of the matrix C in memory.
epilogue_args_Is the epilogue arguments.

◆ arguments_t() [3/3]

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::arguments_t ( const arguments_t args)
inline

Member Function Documentation

◆ operator=()

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
arguments_t & gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::operator= ( const arguments_t args)
inline

Member Data Documentation

◆ batch_size

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::batch_size

Is the number of total batches.

◆ epilogue_args

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
epilogue_args_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::epilogue_args

Is the epilogue arguments.

◆ host_callable

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
constexpr bool gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::host_callable = true
staticconstexpr

Set for device copyable.

◆ matA_base

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
matA_base_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matA_base

Is the base address of matrix A.

◆ matA_ld

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matA_ld

Is the leading dimension (pitch) size of the matrix A in memory.

◆ matB_base

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
matB_base_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matB_base

Is the base address of matrix B.

◆ matB_ld

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matB_ld

Is the leading dimension (pitch) size of the matrix B in memory.

◆ matC_base

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
matC_base_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matC_base

Is the base address of matrix C.

◆ matC_ld

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matC_ld

Is the leading dimension (pitch) size of the matrix C in memory.

◆ matrix_k

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matrix_k

Is the size of the k dimension of the matrix multiplication (m x k x n).

◆ matrix_m

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matrix_m

Is the size of the m dimension of the matrix multiplication (m x k x n).

◆ matrix_n

template<typename gemm_t_ , typename epilogue_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::batch_gemm_t< gemm_t_, epilogue_t_, arch_tag_ >::arguments_t::matrix_n

Is the size of the n dimension of the matrix multiplication (m x k x n).