DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks > Class Template Reference

Container class to hold parameters for load2d/store2d functions More...

#include <sycl/ext/intel/experimental/esimd/memory.hpp>

Public Member Functions

 config_2d_mem_access ()
 Default constructor More...
 
 config_2d_mem_access (const config_2d_mem_access &other)
 Copy constructor More...
 
 config_2d_mem_access (const T *Ptr, uint32_t SurfaceWidth, uint32_t SurfaceHeight, uint32_t SurfacePitch, int32_t X, int32_t Y)
 Constructor More...
 
Tget_data_pointer () const
 Get a surface base address More...
 
uint32_t get_surface_width () const
 Get surface width More...
 
uint32_t get_surface_height () const
 Get surface height More...
 
uint32_t get_surface_pitch () const
 Get surface pitch More...
 
int32_t get_x () const
 Get top left corner X coordinate of the block More...
 
int32_t get_y () const
 Get top left corner Y coordinate of the block More...
 
constexpr int32_t get_width () const
 Get width of the block More...
 
constexpr int32_t get_height () const
 Get height of the block More...
 
constexpr int32_t get_number_of_blocks () const
 Get number of blocks More...
 
config_2d_mem_accessset_data_pointer (T *Ptr)
 Sets surface base address More...
 
config_2d_mem_accessset_surface_width (uint32_t SurfaceWidth)
 Sets surface width More...
 
config_2d_mem_accessset_surface_height (uint32_t SurfaceHeight)
 Sets surface height More...
 
config_2d_mem_accessset_surface_pitch (uint32_t SurfacePitch)
 Sets surface pitch More...
 
config_2d_mem_accessset_x (int32_t X)
 Sets top left corner X coordinate of the block More...
 
config_2d_mem_accessset_y (int32_t Y)
 Sets top left corner Y coordinate of the block More...
 

Friends

template<typename T1 , int BlockWidth1, int BlockHeight1, int NBlocks1, bool Transposed1, bool Transformed1, cache_hint L1H, cache_hint L3H, int N>
ESIMD_INLINE SYCL_ESIMD_FUNCTION sycl::ext::intel::esimd::simd< T1, N > lsc_load_2d (config_2d_mem_access< T1, BlockWidth1, BlockHeight1, NBlocks1 > &payload)
 
template<typename T1 , int BlockWidth1, int BlockHeight1, int NBlocks1, cache_hint L1H, cache_hint L3H, int N>
ESIMD_INLINE SYCL_ESIMD_FUNCTION void lsc_store_2d (config_2d_mem_access< T1, BlockWidth1, BlockHeight1, NBlocks1 > &payload, sycl::ext::intel::esimd::simd< T1, N > Data)
 
template<typename T1 , int BlockWidth1, int BlockHeight1, int NBlocks1, bool Transposed1, bool Transformed1, cache_hint L1H, cache_hint L3H, int N>
ESIMD_INLINE SYCL_ESIMD_FUNCTION void lsc_prefetch_2d (config_2d_mem_access< T1, BlockWidth1, BlockHeight1, NBlocks1 > &payload)
 

Detailed Description

template<typename T, int BlockWidth, int BlockHeight, int NBlocks>
class sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >

Container class to hold parameters for load2d/store2d functions

Template Parameters
TType of data to load/store
BlockWidththe block width in number of elements
BlockHeightblock height in number of elements
NBlocksNumber of blocks

Definition at line 2635 of file memory.hpp.

Constructor & Destructor Documentation

◆ config_2d_mem_access() [1/3]

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::config_2d_mem_access ( )
inline

Default constructor

Definition at line 2640 of file memory.hpp.

◆ config_2d_mem_access() [2/3]

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::config_2d_mem_access ( const config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks > &  other)
inline

Copy constructor

Definition at line 2648 of file memory.hpp.

◆ config_2d_mem_access() [3/3]

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::config_2d_mem_access ( const T Ptr,
uint32_t  SurfaceWidth,
uint32_t  SurfaceHeight,
uint32_t  SurfacePitch,
int32_t  X,
int32_t  Y 
)
inline

Constructor

Parameters
Ptrsurface base address
SurfaceWidthsurface width minus 1 in bytes
SurfaceHeightsurface height minus 1 in rows
SurfacePitchsurface pitch minus 1 in bytes
Xzero based X-coordinate of the left upper rectangle corner in number of elements
Yzero based Y-coordinate of the left upper rectangle corner in rows

Definition at line 2662 of file memory.hpp.

Member Function Documentation

◆ get_data_pointer()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
T* sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_data_pointer ( ) const
inline

Get a surface base address

Returns
surface base address

Definition at line 2679 of file memory.hpp.

◆ get_height()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
constexpr int32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_height ( ) const
inlineconstexpr

Get height of the block

Returns
Height of the block

Definition at line 2740 of file memory.hpp.

◆ get_number_of_blocks()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
constexpr int32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_number_of_blocks ( ) const
inlineconstexpr

Get number of blocks

Returns
Height of the block

Definition at line 2746 of file memory.hpp.

◆ get_surface_height()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
uint32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_surface_height ( ) const
inline

Get surface height

Returns
Surface Height

Definition at line 2698 of file memory.hpp.

◆ get_surface_pitch()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
uint32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_surface_pitch ( ) const
inline

Get surface pitch

Returns
Surface Pitch

Definition at line 2707 of file memory.hpp.

◆ get_surface_width()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
uint32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_surface_width ( ) const
inline

Get surface width

Returns
Surface Width

Definition at line 2689 of file memory.hpp.

◆ get_width()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
constexpr int32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_width ( ) const
inlineconstexpr

Get width of the block

Returns
Width of the block

Definition at line 2734 of file memory.hpp.

◆ get_x()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
int32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_x ( ) const
inline

Get top left corner X coordinate of the block

Returns
Top left corner X coordinate of the block

Definition at line 2716 of file memory.hpp.

◆ get_y()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
int32_t sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::get_y ( ) const
inline

Get top left corner Y coordinate of the block

Returns
Top left corner Y coordinate of the block

Definition at line 2725 of file memory.hpp.

◆ set_data_pointer()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
config_2d_mem_access& sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::set_data_pointer ( T Ptr)
inline

Sets surface base address

Parameters
Ptrsurface base address
Returns
Reference to the modified object

Definition at line 2753 of file memory.hpp.

◆ set_surface_height()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
config_2d_mem_access& sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::set_surface_height ( uint32_t  SurfaceHeight)
inline

Sets surface height

Parameters
SurfaceHeightSurface Height
Returns
Reference to the modified object

Definition at line 2774 of file memory.hpp.

◆ set_surface_pitch()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
config_2d_mem_access& sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::set_surface_pitch ( uint32_t  SurfacePitch)
inline

Sets surface pitch

Parameters
SurfacePitchSurface Pitch
Returns
Reference to the modified object

Definition at line 2784 of file memory.hpp.

◆ set_surface_width()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
config_2d_mem_access& sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::set_surface_width ( uint32_t  SurfaceWidth)
inline

Sets surface width

Parameters
SurfaceWidthSurface Width
Returns
Reference to the modified object

Definition at line 2764 of file memory.hpp.

◆ set_x()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
config_2d_mem_access& sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::set_x ( int32_t  X)
inline

Sets top left corner X coordinate of the block

Parameters
XTop left corner X coordinate of the block
Returns
Reference to the modified object

Definition at line 2794 of file memory.hpp.

◆ set_y()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
config_2d_mem_access& sycl::_V1::ext::intel::experimental::esimd::config_2d_mem_access< T, BlockWidth, BlockHeight, NBlocks >::set_y ( int32_t  Y)
inline

Sets top left corner Y coordinate of the block

Parameters
YTop left corner Y coordinate of the block
Returns
Reference to the modified object

Definition at line 2804 of file memory.hpp.

Friends And Related Function Documentation

◆ lsc_load_2d

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
template<typename T1 , int BlockWidth1, int BlockHeight1, int NBlocks1, bool Transposed1, bool Transformed1, cache_hint L1H, cache_hint L3H, int N>
ESIMD_INLINE SYCL_ESIMD_FUNCTION sycl::ext::intel::esimd::simd<T1, N> lsc_load_2d ( config_2d_mem_access< T1, BlockWidth1, BlockHeight1, NBlocks1 > &  payload)
friend

◆ lsc_prefetch_2d

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
template<typename T1 , int BlockWidth1, int BlockHeight1, int NBlocks1, bool Transposed1, bool Transformed1, cache_hint L1H, cache_hint L3H, int N>
ESIMD_INLINE SYCL_ESIMD_FUNCTION void lsc_prefetch_2d ( config_2d_mem_access< T1, BlockWidth1, BlockHeight1, NBlocks1 > &  payload)
friend

◆ lsc_store_2d

template<typename T , int BlockWidth, int BlockHeight, int NBlocks>
template<typename T1 , int BlockWidth1, int BlockHeight1, int NBlocks1, cache_hint L1H, cache_hint L3H, int N>
ESIMD_INLINE SYCL_ESIMD_FUNCTION void lsc_store_2d ( config_2d_mem_access< T1, BlockWidth1, BlockHeight1, NBlocks1 > &  payload,
sycl::ext::intel::esimd::simd< T1, N >  Data 
)
friend

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