MemHolder this is a place holder struct for creating memory hierarchy in SYCL. Inside SYCL kernel it is not allowed to have dynamic memory allocation. While the local memory is created outside of the kernel and passed to the kernel as an accessor, the private memory can only allowed to be allocated statically. Since we are abstracting the TiledMemory for both local and private memory, the MemHolder structs is used as a helper to abstract out different type of memory needed when local/no_local memory computation is called.
More...
#include <TensorContractionSycl.h>
template<typename OutScalar, typename LhsScalar, typename RhsScalar, typename OutAccessor, typename LhsMapper, typename RhsMapper, typename StorageIndex, typename Properties, typename TripleDim, bool Vectorizable, typename input_mapper_properties, bool IsFinal, contraction_type contraction_tp>
template<contraction_type, StorageIndex>
struct Eigen::TensorSycl::internal::TensorContractionKernel< OutScalar, LhsScalar, RhsScalar, OutAccessor, LhsMapper, RhsMapper, StorageIndex, Properties, TripleDim, Vectorizable, input_mapper_properties, IsFinal, contraction_tp >::MemHolder< contraction_type, StorageIndex >
MemHolder this is a place holder struct for creating memory hierarchy in SYCL. Inside SYCL kernel it is not allowed to have dynamic memory allocation. While the local memory is created outside of the kernel and passed to the kernel as an accessor, the private memory can only allowed to be allocated statically. Since we are abstracting the TiledMemory for both local and private memory, the MemHolder structs is used as a helper to abstract out different type of memory needed when local/no_local memory computation is called.
- Template Parameters
-
contraction_type | it is an enum value representing whether the local memroy/no local memory implementation of the algorithm to be used |
the | private memory size |
- Parameters
-
ptr | the tile memory pointer type |
Definition at line 520 of file TensorContractionSycl.h.
◆ MemHolder()
template<typename OutScalar , typename LhsScalar , typename RhsScalar , typename OutAccessor , typename LhsMapper , typename RhsMapper , typename StorageIndex , typename Properties , typename TripleDim , bool Vectorizable, typename input_mapper_properties , bool IsFinal, contraction_type contraction_tp>
template<contraction_type , StorageIndex >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::TensorSycl::internal::TensorContractionKernel< OutScalar, LhsScalar, RhsScalar, OutAccessor, LhsMapper, RhsMapper, StorageIndex, Properties, TripleDim, Vectorizable, input_mapper_properties, IsFinal, contraction_tp >::MemHolder< contraction_type, StorageIndex >::MemHolder |
( |
local_ptr |
block_start_ptr | ) |
|
|
inline |
◆ ptr
template<typename OutScalar , typename LhsScalar , typename RhsScalar , typename OutAccessor , typename LhsMapper , typename RhsMapper , typename StorageIndex , typename Properties , typename TripleDim , bool Vectorizable, typename input_mapper_properties , bool IsFinal, contraction_type contraction_tp>
template<contraction_type , StorageIndex >
tile_ptr Eigen::TensorSycl::internal::TensorContractionKernel< OutScalar, LhsScalar, RhsScalar, OutAccessor, LhsMapper, RhsMapper, StorageIndex, Properties, TripleDim, Vectorizable, input_mapper_properties, IsFinal, contraction_tp >::MemHolder< contraction_type, StorageIndex >::ptr |
The documentation for this struct was generated from the following file: