|
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...
|
|
|
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...
|
|
template<bool PacketLoad, bool , bool IsRhs, typename PacketType , typename TensorMapper , typename StorageIndex >
read, special overload of read function, when the read access is not vectorized
- Template Parameters
-
PacketLoad | determines if the each element of this tensor block should be loaded in a packet mode |
- Parameters
-
is_coalesced_layout | determines 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
-
PacketType | determines the type of packet |
TensorMapper | determines the input tensor mapper type |
StorageIndex | determines the Index type |
- Parameters
-
tensorMapper | is the input tensor |
NCIndex | is the non-contracting dim index |
CIndex | is the contracting dim index |
Definition at line 207 of file TensorContractionSycl.h.
template<bool PacketLoad, bool is_coalesced_layout, bool , typename PacketType , typename TensorMapper , typename StorageIndex >
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
-
PacketLoad | determines if the each element of this tensor block should be loaded in a packet mode |
- Parameters
-
is_coalesced_layout | determines 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
-
PacketType | determines the type of packet |
TensorMapper | determines the input tensor mapper type |
StorageIndex | determines the Index type |
- Parameters
-
tensorMapper | is the input tensor |
NCIndex | is the non-contracting dim index |
CIndex | is the contracting dim index |
ld | is the leading dimension of the flattened tensor |
Definition at line 177 of file TensorContractionSycl.h.
template<typename StorageIndex , StorageIndex ld, data_source dt, typename PacketType , typename DataScalar >
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
-
StorageIndex | determines the Index type |
- Parameters
-
ld | is the leading dimension of the local memory. ld is a compile time value for the local memory |
- Template Parameters
-
data_source | an enum value representing if the location of the data in a memory hierarchy. |
PacketType | determines the type of packet |
DataScalar | determines the output data type |
- Parameters
-
packet_data | the data to be written in the local memory |
ptr | a pointer to the local memory |
CIndex | is the contracting dim index |
Definition at line 238 of file TensorContractionSycl.h.