Public Types | Static Public Attributes | List of all members
Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType > Struct Template Reference

BlockProperties is a template class that provides different characteristic of a block of each Tensor processed by each workgroup. More...

#include <TensorContractionSycl.h>

Public Types

typedef Eigen::internal::unpacket_traits< PacketType >::type OutScalar
 
typedef Eigen::internal::conditional< packet_load, PacketType, OutScalar >::type OutType
 

Static Public Attributes

static EIGEN_CONSTEXPR int c_stride = (is_coalesced_layout ? 1 : elements_per_access)
 
static EIGEN_CONSTEXPR int elements_per_access = Eigen::internal::unpacket_traits<OutType>::size
 
static EIGEN_CONSTEXPR bool is_coalesced_layout = !(is_transposed ^ is_rhs)
 
static EIGEN_CONSTEXPR bool is_rhs = is_rhs_
 
static EIGEN_CONSTEXPR int nc_stride = (is_coalesced_layout ? elements_per_access : 1)
 
static EIGEN_CONSTEXPR bool packet_load = packet_load_
 

Detailed Description

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType>
struct Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >

BlockProperties is a template class that provides different characteristic of a block of each Tensor processed by each workgroup.

Template Parameters
is_transposediff true, determines whether or not the block of the Tensor is transposed
packet_load_determines if the each element of this tensor block should be loaded in a packet mode
PacketTypedetermines the type of packet
OutTypedetermines the type of each element for this block of tensor. If packet load is true, it will be packetType; Otherwise it will be scalar Type
Parameters
elements_per_accessdetermines the size of each element based on OutType
is_coalesced_layoutdetermines whether or not the Tensor data in a memory can be access coalesced and vectorized when possible. Coalesced memory access is a key factor in Kernel performance. When a tensor is 2d and the contracting dimension is 1, it is always possible to accessed tensor data coalesced and vectorized. This is the case when RHS(right hand side) Tensor is transposed or when LHS(left hand side) Tensor is not transposed.
nc_stridedetermines the stride of non-contracting dimension to access the next adjustment element within the Tensor Block for each workgroup
c_stridedetermines the stride of contracting dimension to access the next adjustment element within the Tensor Block for each workgroup

Definition at line 318 of file TensorContractionSycl.h.

Member Typedef Documentation

◆ OutScalar

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
typedef Eigen::internal::unpacket_traits<PacketType>::type Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::OutScalar

Definition at line 320 of file TensorContractionSycl.h.

◆ OutType

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
typedef Eigen::internal::conditional<packet_load, PacketType, OutScalar>::type Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::OutType

Definition at line 322 of file TensorContractionSycl.h.

Member Data Documentation

◆ c_stride

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
EIGEN_CONSTEXPR int Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::c_stride = (is_coalesced_layout ? 1 : elements_per_access)
static

Definition at line 326 of file TensorContractionSycl.h.

◆ elements_per_access

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
EIGEN_CONSTEXPR int Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::elements_per_access = Eigen::internal::unpacket_traits<OutType>::size
static

Definition at line 323 of file TensorContractionSycl.h.

◆ is_coalesced_layout

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
EIGEN_CONSTEXPR bool Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::is_coalesced_layout = !(is_transposed ^ is_rhs)
static

Definition at line 324 of file TensorContractionSycl.h.

◆ is_rhs

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
EIGEN_CONSTEXPR bool Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::is_rhs = is_rhs_
static

Definition at line 321 of file TensorContractionSycl.h.

◆ nc_stride

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
EIGEN_CONSTEXPR int Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::nc_stride = (is_coalesced_layout ? elements_per_access : 1)
static

Definition at line 325 of file TensorContractionSycl.h.

◆ packet_load

template<bool is_transposed, bool is_rhs_, bool packet_load_, typename PacketType >
EIGEN_CONSTEXPR bool Eigen::TensorSycl::internal::BlockProperties< is_transposed, is_rhs_, packet_load_, PacketType >::packet_load = packet_load_
static

Definition at line 319 of file TensorContractionSycl.h.


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


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:46:11