Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK > Struct Template Reference

TTPanelSize, a template class used for setting the panel size required for launching General Tensor Tensor contraction kernel on various hardware devices. More...

#include <TensorContractionSycl.h>

Static Public Attributes

static EIGEN_CONSTEXPR StorageIndex TileSizeDimK = TSDK
 
static EIGEN_CONSTEXPR StorageIndex WorkLoadPerThreadM = REG_SIZE_M
 
static EIGEN_CONSTEXPR StorageIndex WorkLoadPerThreadN = REG_SIZE_N
 
static EIGEN_CONSTEXPR StorageIndex LocalThreadSizeM = EIGEN_SYCL_LOCAL_THREAD_DIM0
 
static EIGEN_CONSTEXPR StorageIndex LocalThreadSizeN = EIGEN_SYCL_LOCAL_THREAD_DIM1
 
static EIGEN_CONSTEXPR StorageIndex TileSizeDimM = LocalThreadSizeM * WorkLoadPerThreadM
 
static EIGEN_CONSTEXPR StorageIndex TileSizeDimN = LocalThreadSizeN * WorkLoadPerThreadN
 
static EIGEN_CONSTEXPR StorageIndex LoadPerThreadLhs
 
static EIGEN_CONSTEXPR StorageIndex LoadPerThreadRhs
 
static EIGEN_CONSTEXPR bool BC = true
 
static EIGEN_CONSTEXPR bool DoubleBuffer
 

Detailed Description

template<typename Scalar, typename StorageIndex, StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
struct Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >

TTPanelSize, a template class used for setting the panel size required for launching General Tensor Tensor contraction kernel on various hardware devices.

Template Parameters
Scalardetermines the element type of the tensor
StorageIndexdetermines the Index type.
REG_SIZE_Mdetermines workload per thread for loading the M dimension This can be varied based on the available register on a chosen device(can be controlled by EIGEN_SYCL_REG_M macro).
REG_SIZE_Ndetermines workload per thread for loading the N dimension This can be varied based on the available register on a chosen device(can be controlled by EIGEN_SYCL_REG_N macro).
TSDKdetermines Tile size for dimension K. The packet size is assumed to be considered

Member Data Documentation

◆ BC

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR bool Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::BC = true
static

◆ DoubleBuffer

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR bool Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::DoubleBuffer
static
Initial value:
=
true

◆ LoadPerThreadLhs

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::LoadPerThreadLhs
static
Initial value:
=
static EIGEN_CONSTEXPR StorageIndex WorkLoadPerThreadN
Definition: TensorContractionSycl.h:95
static EIGEN_CONSTEXPR StorageIndex WorkLoadPerThreadM
Definition: TensorContractionSycl.h:88
static EIGEN_CONSTEXPR StorageIndex TileSizeDimN
Definition: TensorContractionSycl.h:106
static EIGEN_CONSTEXPR StorageIndex TileSizeDimK
Definition: TensorContractionSycl.h:84

◆ LoadPerThreadRhs

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::LoadPerThreadRhs
static
Initial value:
=
static EIGEN_CONSTEXPR StorageIndex TileSizeDimM
Definition: TensorContractionSycl.h:104

◆ LocalThreadSizeM

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::LocalThreadSizeM = EIGEN_SYCL_LOCAL_THREAD_DIM0
static

◆ LocalThreadSizeN

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::LocalThreadSizeN = EIGEN_SYCL_LOCAL_THREAD_DIM1
static

◆ TileSizeDimK

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::TileSizeDimK = TSDK
static

◆ TileSizeDimM

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::TileSizeDimM = LocalThreadSizeM * WorkLoadPerThreadM
static

◆ TileSizeDimN

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::TileSizeDimN = LocalThreadSizeN * WorkLoadPerThreadN
static

◆ WorkLoadPerThreadM

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::WorkLoadPerThreadM = REG_SIZE_M
static

◆ WorkLoadPerThreadN

template<typename Scalar , typename StorageIndex , StorageIndex REG_SIZE_M, StorageIndex REG_SIZE_N, StorageIndex TSDK>
EIGEN_CONSTEXPR StorageIndex Eigen::TensorSycl::internal::TTPanelSize< Scalar, StorageIndex, REG_SIZE_M, REG_SIZE_N, TSDK >::WorkLoadPerThreadN = REG_SIZE_N
static

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