XeTLA v0.3.6
IntelĀ® Xe Templates for Linear Algebra - API Definition Document
 
Loading...
Searching...
No Matches
gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t Struct Reference

#include <multi_layer_perceptron.hpp>

Public Member Functions

 arguments_t ()=default
 Constructs arguments with default method.
 
 arguments_t (uint32_t matrix_m_layer1_, uint32_t matrix_k_layer1_, uint32_t matrix_n_layer1_, uint32_t matrix_m_layer2_, uint32_t matrix_k_layer2_, uint32_t matrix_n_layer2_, matA_base_t matA_base_, uint32_t matA_ld_, matW_base_t matW_base_, uint32_t matW_ld_, matB_base_t matB_base_, uint32_t matB_ld_, matV_base_t matV_base_, uint32_t matV_ld_, matC_base_t matC_base_, uint32_t matC_ld_, epilogue_layer1_args_t epilogue_layer1_args_={}, epilogue_layer2_args_t epilogue_layer2_args_={})
 Constructs arguments with initialization list.
 
 arguments_t (const arguments_t &args)
 
arguments_toperator= (const arguments_t &args)
 

Public Attributes

uint32_t matrix_m_layer1
 Is the size of the m dimension of the matrix multiplication (m x k x n).
 
uint32_t matrix_k_layer1
 Is the size of the k dimension of the matrix multiplication (m x k x n).
 
uint32_t matrix_n_layer1
 Is the size of the n dimension of the matrix multiplication (m x k x n).
 
uint32_t matrix_m_layer2
 Is the size of the m dimension of the matrix multiplication (m x k x n).
 
uint32_t matrix_k_layer2
 Is the size of the k dimension of the matrix multiplication (m x k x n).
 
uint32_t matrix_n_layer2
 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 matW_ld
 Is the leading dimension (pitch) size of the matrix W in memory.
 
uint32_t matB_ld
 Is the leading dimension (pitch) size of the matrix B in memory.
 
uint32_t matV_ld
 Is the leading dimension (pitch) size of the matrix V 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.
 
matW_base_t matW_base
 Is the base address of matrix W.
 
matB_base_t matB_base
 Is the base address of matrix B.
 
matV_base_t matV_base
 Is the base address of matrix V.
 
matC_base_t matC_base
 Is the base address of matrix C.
 
epilogue_layer1_args_t epilogue_layer1_args
 Is the epilogue arguments of first gemm.
 
epilogue_layer2_args_t epilogue_layer2_args
 Is the epilogue arguments of second gemm.
 

Static Public Attributes

static constexpr bool host_callable = true
 Set for device copyable.
 

Constructor & Destructor Documentation

◆ arguments_t() [1/3]

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::arguments_t ( )
inlinedefault

Constructs arguments with default method.

◆ arguments_t() [2/3]

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::arguments_t ( uint32_t  matrix_m_layer1_,
uint32_t  matrix_k_layer1_,
uint32_t  matrix_n_layer1_,
uint32_t  matrix_m_layer2_,
uint32_t  matrix_k_layer2_,
uint32_t  matrix_n_layer2_,
matA_base_t  matA_base_,
uint32_t  matA_ld_,
matW_base_t  matW_base_,
uint32_t  matW_ld_,
matB_base_t  matB_base_,
uint32_t  matB_ld_,
matV_base_t  matV_base_,
uint32_t  matV_ld_,
matC_base_t  matC_base_,
uint32_t  matC_ld_,
epilogue_layer1_args_t  epilogue_layer1_args_ = {},
epilogue_layer2_args_t  epilogue_layer2_args_ = {} 
)
inline

Constructs arguments with initialization list.

Parameters
matrix_m_layer1_Is the size of the m dimension of the matrix multiplication (m x k x n).
matrix_k_layer1_Is the size of the k dimension of the matrix multiplication (m x k x n).
matrix_n_layer1_Is the size of the n dimension of the matrix multiplication (m x k x n).
matrix_m_layer2_Is the size of the m dimension of the matrix multiplication (m x k x n).
matrix_k_layer2_Is the size of the k dimension of the matrix multiplication (m x k x n).
matrix_n_layer2_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.
matW_base_Is the base address of matrix W.
matW_ld_Is the leading dimension (pitch) size of the matrix W 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.
matV_base_Is the base address of matrix V.
matV_ld_Is the leading dimension (pitch) size of the matrix V 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_layer1_args_Is the epilogue arguments of first gemm.
epilogue_layer2_args_Is the epilogue arguments of second gemm.

◆ arguments_t() [3/3]

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::arguments_t ( const arguments_t args)
inline

Member Function Documentation

◆ operator=()

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
arguments_t & gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::operator= ( const arguments_t args)
inline

Member Data Documentation

◆ epilogue_layer1_args

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
epilogue_layer1_args_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::epilogue_layer1_args

Is the epilogue arguments of first gemm.

◆ epilogue_layer2_args

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
epilogue_layer2_args_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::epilogue_layer2_args

Is the epilogue arguments of second gemm.

◆ host_callable

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
constexpr bool gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::host_callable = true
staticconstexpr

Set for device copyable.

◆ matA_base

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
matA_base_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matA_base

Is the base address of matrix A.

◆ matA_ld

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matA_ld

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

◆ matB_base

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
matB_base_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matB_base

Is the base address of matrix B.

◆ matB_ld

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matB_ld

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

◆ matC_base

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
matC_base_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matC_base

Is the base address of matrix C.

◆ matC_ld

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matC_ld

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

◆ matrix_k_layer1

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matrix_k_layer1

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

◆ matrix_k_layer2

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matrix_k_layer2

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

◆ matrix_m_layer1

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matrix_m_layer1

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

◆ matrix_m_layer2

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matrix_m_layer2

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

◆ matrix_n_layer1

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matrix_n_layer1

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

◆ matrix_n_layer2

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matrix_n_layer2

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

◆ matV_base

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
matV_base_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matV_base

Is the base address of matrix V.

◆ matV_ld

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matV_ld

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

◆ matW_base

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
matW_base_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matW_base

Is the base address of matrix W.

◆ matW_ld

template<typename gemm_layer1_t_ , typename epilogue_layer1_t_ , typename gemm_layer2_t_ , typename epilogue_layer2_t_ , gpu_arch arch_tag_>
uint32_t gpu::xetla::kernel::multi_layer_perceptron_t< gemm_layer1_t_, epilogue_layer1_t_, gemm_layer2_t_, epilogue_layer2_t_, arch_tag_ >::arguments_t::matW_ld

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