Classes | Enumerations | Functions
Eigen::TensorSycl::internal Namespace Reference

Classes

struct  BlockProperties
 BlockProperties is a template class that provides different characteristic of a block of each Tensor processed by each workgroup. More...
 
class  FullReductionKernelFunctor
 
struct  GeneralScalarContraction
 GeneralScalarContraction is a template class that provides the scalar value of Tensor -Tensor contraction operation, when all the dimensions are contracting dimensions. This Kernel reduces two tensors to an scalar. More...
 
struct  GeneralVectorTensor
 GeneralVectorTensor is a template class that provides Tensor -vector contraction operation, which is a special case of Tensor Tensor contraction. More...
 
class  GenericNondeterministicReducer
 
struct  OpDefiner
 
struct  OpDefiner< Eigen::internal::MeanReducer< CoeffReturnType >, CoeffReturnType, Index, false >
 
struct  OpDefiner< Eigen::internal::MeanReducer< CoeffReturnType >, CoeffReturnType, Index, true >
 
struct  PacketWrapper
 
struct  PartialReducerLauncher
 
struct  PartialReductionKernel
 
struct  ReductionPannel
 
struct  ScanAdjustmentKernelFunctor
 
struct  ScanInfo
 
struct  ScanKernelFunctor
 
struct  ScanLauncher_impl
 
struct  ScanParameters
 
struct  SecondStepFullReducer
 
struct  SecondStepPartialReduction
 
struct  SYCLAdjustBlockOffset
 
class  TensorContractionKernel
 TensorContractionKernel is a template class that provides Tensor -Tensor contraction operation. More...
 
struct  ThreadProperties
 ThreadProperties is a template class that provides each thread's properties within a workgroup. Please see the sycl-1.2.1 specification (https://www.khronos.org/registry/SYCL/specs/sycl-1.2.1.pdf) for the workgroup, work-items. More...
 
struct  TTPanelSize
 TTPanelSize, a template class used for setting the panel size required for launching General Tensor Tensor contraction kernel on various hardware devices. More...
 
struct  TVPanelSize
 TVPanelSize, a template class used for setting the panel size required for launching General TensorVector contraction kernel on various hardware devices. More...
 

Enumerations

enum  contraction_type { contraction_type::local, contraction_type::no_local }
 
enum  data_source { data_source::global_mem, data_source::local_mem, data_source::private_mem }
 
enum  reduction_dim { reduction_dim::inner_most, reduction_dim::outer_most }
 
enum  scan_step { scan_step::first, scan_step::second }
 

Functions

template<bool is_internal>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool check_boundary (bool)
 check_boundary: is used to check the edge condition for non-internal blocks. More...
 
template<>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool check_boundary< false > (bool cond)
 check_boundary: specialization of the check_boundary for non-internal blocks. More...
 
template<bool PacketLoad, bool , bool IsRhs, typename PacketType , typename TensorMapper , typename StorageIndex >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if<!PacketLoad, PacketType >::type read (const TensorMapper &tensorMapper, const StorageIndex &NCIndex, const StorageIndex &CIndex, const StorageIndex &)
 read, special overload of read function, when the read access is not vectorized More...
 
template<bool PacketLoad, bool is_coalesced_layout, bool , typename PacketType , typename TensorMapper , typename StorageIndex >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if< PacketLoad, PacketType >::type read (const TensorMapper &tensorMapper, const StorageIndex &NCIndex, const StorageIndex &CIndex, const StorageIndex &ld)
 read, a template function used for loading the data from global memory. This function is used to guarantee coalesced and vectorized load whenever possible More...
 
template<data_source dt, typename PacketType , typename DataScalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if< Eigen::internal::unpacket_traits< PacketType >::size !=1 &&dt==data_source::global_mem, void >::type write (PacketType &packet_data, DataScalar *ptr)
 Overloading the write function for storing the data to global memory, when vectorization enabled This function is used to guarantee coalesced and vectorized store whenever possible. More...
 
template<data_source dt, typename PacketType , typename DataScalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if< Eigen::internal::unpacket_traits< PacketType >::size==1 &&dt==data_source::global_mem, void >::type write (PacketType &packet_data, DataScalar *ptr)
 Overloading the write function for storing the data to global memory, when vectorization is disabled. More...
 
template<typename StorageIndex , StorageIndex ld, data_source dt, typename PacketType , typename DataScalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ::Eigen::internal::enable_if< dt !=data_source::global_mem, void >::type write (PacketType &packet_data, DataScalar ptr)
 write, a template function used for storing the data to local memory. This function is used to guarantee coalesced and vectorized store whenever possible. More...
 

Enumeration Type Documentation

◆ contraction_type

Enumerator
local 
no_local 

Definition at line 144 of file TensorContractionSycl.h.

◆ data_source

Enumerator
global_mem 
local_mem 
private_mem 

Definition at line 148 of file TensorContractionSycl.h.

◆ reduction_dim

Enumerator
inner_most 
outer_most 

Definition at line 289 of file TensorReductionSycl.h.

◆ scan_step

Enumerator
first 
second 

Definition at line 146 of file TensorScanSycl.h.

Function Documentation

◆ check_boundary()

template<bool is_internal>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool Eigen::TensorSycl::internal::check_boundary ( bool  )

check_boundary: is used to check the edge condition for non-internal blocks.

Template Parameters
is_internaldetermines if the block is internal

Definition at line 295 of file TensorContractionSycl.h.

◆ check_boundary< false >()

check_boundary: specialization of the check_boundary for non-internal blocks.

Parameters
condtrue when the data is in range. Otherwise false

Definition at line 305 of file TensorContractionSycl.h.

◆ read() [1/2]

template<bool PacketLoad, bool , bool IsRhs, typename PacketType , typename TensorMapper , typename StorageIndex >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if<!PacketLoad, PacketType>::type Eigen::TensorSycl::internal::read ( const TensorMapper &  tensorMapper,
const StorageIndex &  NCIndex,
const StorageIndex &  CIndex,
const StorageIndex &   
)
static

read, special overload of read function, when the read access is not vectorized

Template Parameters
PacketLoaddetermines if the each element of this tensor block should be loaded in a packet mode
Parameters
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.
Template Parameters
PacketTypedetermines the type of packet
TensorMapperdetermines the input tensor mapper type
StorageIndexdetermines the Index type
Parameters
tensorMapperis the input tensor
NCIndexis the non-contracting dim index
CIndexis the contracting dim index

Definition at line 207 of file TensorContractionSycl.h.

◆ read() [2/2]

template<bool PacketLoad, bool is_coalesced_layout, bool , typename PacketType , typename TensorMapper , typename StorageIndex >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if<PacketLoad, PacketType>::type Eigen::TensorSycl::internal::read ( const TensorMapper &  tensorMapper,
const StorageIndex &  NCIndex,
const StorageIndex &  CIndex,
const StorageIndex &  ld 
)
static

read, a template function used for loading the data from global memory. This function is used to guarantee coalesced and vectorized load whenever possible

Template Parameters
PacketLoaddetermines if the each element of this tensor block should be loaded in a packet mode
Parameters
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.
Template Parameters
PacketTypedetermines the type of packet
TensorMapperdetermines the input tensor mapper type
StorageIndexdetermines the Index type
Parameters
tensorMapperis the input tensor
NCIndexis the non-contracting dim index
CIndexis the contracting dim index
ldis the leading dimension of the flattened tensor

Definition at line 177 of file TensorContractionSycl.h.

◆ write() [1/3]

template<data_source dt, typename PacketType , typename DataScalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if< Eigen::internal::unpacket_traits<PacketType>::size != 1 && dt == data_source::global_mem, void>::type Eigen::TensorSycl::internal::write ( PacketType packet_data,
DataScalar *  ptr 
)
static

Overloading the write function for storing the data to global memory, when vectorization enabled This function is used to guarantee coalesced and vectorized store whenever possible.

Template Parameters
data_sourcean enum value representing if the location of the data in a memory hierarchy.
PacketTypedetermines the type of packet
DataScalardetermines the output data type
Parameters
packet_datathe data to be written in the local memory
ptra pointer to the local memory

Definition at line 265 of file TensorContractionSycl.h.

◆ write() [2/3]

template<data_source dt, typename PacketType , typename DataScalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ::Eigen::internal::enable_if< Eigen::internal::unpacket_traits<PacketType>::size == 1 && dt == data_source::global_mem, void>::type Eigen::TensorSycl::internal::write ( PacketType packet_data,
DataScalar *  ptr 
)
static

Overloading the write function for storing the data to global memory, when vectorization is disabled.

Template Parameters
data_sourcean enum value representing if the location of the data in a memory hierarchy.
PacketTypedetermines the type of packet
DataScalardetermines the output data type
Parameters
packet_datathe data to be written in the local memory
ptra pointer to the local memory

Definition at line 285 of file TensorContractionSycl.h.

◆ write() [3/3]

template<typename StorageIndex , StorageIndex ld, data_source dt, typename PacketType , typename DataScalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ::Eigen::internal::enable_if<dt != data_source::global_mem, void>::type Eigen::TensorSycl::internal::write ( PacketType packet_data,
DataScalar  ptr 
)
static

write, a template function used for storing the data to local memory. This function is used to guarantee coalesced and vectorized store whenever possible.

Template Parameters
StorageIndexdetermines the Index type
Parameters
ldis the leading dimension of the local memory. ld is a compile time value for the local memory
Template Parameters
data_sourcean enum value representing if the location of the data in a memory hierarchy.
PacketTypedetermines the type of packet
DataScalardetermines the output data type
Parameters
packet_datathe data to be written in the local memory
ptra pointer to the local memory
CIndexis the contracting dim index

Definition at line 238 of file TensorContractionSycl.h.



gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:15:05