DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::ext::intel::experimental::esimd::detail Namespace Reference

Classes

class  cache_hint_wrap
 
struct  lsc_bitcast_type
 
struct  lsc_expand_type
 

Enumerations

enum  lsc_vector_size : uint8_t {
  lsc_vector_size::n1 = 1, lsc_vector_size::n2 = 2, lsc_vector_size::n3 = 3, lsc_vector_size::n4 = 4,
  lsc_vector_size::n8 = 5, lsc_vector_size::n16 = 6, lsc_vector_size::n32 = 7, lsc_vector_size::n64 = 8
}
 
enum  lsc_data_order : uint8_t { lsc_data_order::nontranspose = 1, lsc_data_order::transpose = 2 }
 
enum  lsc_action { lsc_action::prefetch, lsc_action::load, lsc_action::store, lsc_action::atomic }
 
enum  block_2d_op { block_2d_op::prefetch, block_2d_op::load, block_2d_op::store }
 

Functions

template<lsc_vector_size VS>
constexpr void check_lsc_vector_size ()
 
template<typename T , lsc_data_size DS>
constexpr void check_lsc_data_size ()
 
template<lsc_vector_size VS>
constexpr uint8_t to_int ()
 
template<int VS>
constexpr lsc_vector_size to_lsc_vector_size ()
 
template<typename T , lsc_data_size DS>
constexpr lsc_data_size finalize_data_size ()
 
constexpr lsc_data_size expand_data_size (lsc_data_size DS)
 
constexpr bool are_both (cache_hint First, cache_hint Second, cache_hint Val)
 
template<lsc_action Action, cache_hint L1, cache_hint L3>
constexpr void check_lsc_cache_hint ()
 
template<typename T , int NBlocks, int Height, int Width, bool Transposed, bool Transformed>
constexpr int get_lsc_block_2d_data_size ()
 
template<typename RT , typename T , int N>
ESIMD_INLINE sycl::ext::intel::esimd::simd< RT, N > lsc_format_input (sycl::ext::intel::esimd::simd< T, N > Vals)
 
template<typename T , typename T1 , int N>
ESIMD_INLINE sycl::ext::intel::esimd::simd< T, N > lsc_format_ret (sycl::ext::intel::esimd::simd< T1, N > Vals)
 
template<sycl::ext::intel::esimd::native::lsc::atomic_op Op, typename T , int N, unsigned NumSrc>
constexpr void check_lsc_atomic ()
 Check the legality of lsc atomic call in terms of size and type. More...
 
template<cache_hint L1H = cache_hint::none, cache_hint L3H = cache_hint::none>
constexpr uint32_t get_lsc_load_cache_mask ()
 
template<cache_hint L1H = cache_hint::none, cache_hint L3H = cache_hint::none>
constexpr uint32_t get_lsc_store_cache_mask ()
 
template<typename T , int BlockWidth, int BlockHeight, int NBlocks, bool Transposed, bool Transformed, block_2d_op Op>
constexpr void check_lsc_block_2d_restrictions ()
 

Enumeration Type Documentation

◆ block_2d_op

Enumerator
prefetch 
load 
store 

Definition at line 2346 of file memory.hpp.

◆ lsc_action

Enumerator
prefetch 
load 
store 
atomic 

Definition at line 248 of file common.hpp.

◆ lsc_data_order

Enumerator
nontranspose 
transpose 

Definition at line 85 of file common.hpp.

◆ lsc_vector_size

Enumerator
n1 
n2 
n3 
n4 
n8 
n16 
n32 
n64 

Definition at line 74 of file common.hpp.

Function Documentation

◆ are_both()

constexpr bool sycl::_V1::ext::intel::experimental::esimd::detail::are_both ( cache_hint  First,
cache_hint  Second,
cache_hint  Val 
)
constexpr

Definition at line 244 of file common.hpp.

Referenced by check_lsc_cache_hint().

◆ check_lsc_atomic()

template<sycl::ext::intel::esimd::native::lsc::atomic_op Op, typename T , int N, unsigned NumSrc>
constexpr void sycl::_V1::ext::intel::experimental::esimd::detail::check_lsc_atomic ( )
constexpr

Check the legality of lsc atomic call in terms of size and type.

Definition at line 481 of file memory.hpp.

References sycl::_V1::ext::intel::esimd::detail::isPowerOf2().

◆ check_lsc_block_2d_restrictions()

template<typename T , int BlockWidth, int BlockHeight, int NBlocks, bool Transposed, bool Transformed, block_2d_op Op>
constexpr void sycl::_V1::ext::intel::experimental::esimd::detail::check_lsc_block_2d_restrictions ( )
constexpr

◆ check_lsc_cache_hint()

◆ check_lsc_data_size()

◆ check_lsc_vector_size()

template<lsc_vector_size VS>
constexpr void sycl::_V1::ext::intel::experimental::esimd::detail::check_lsc_vector_size ( )
constexpr

Definition at line 90 of file common.hpp.

References n1, n16, n2, n3, n32, n4, n64, and n8.

◆ expand_data_size()

◆ finalize_data_size()

template<typename T , lsc_data_size DS>
constexpr lsc_data_size sycl::_V1::ext::intel::experimental::esimd::detail::finalize_data_size ( )
constexpr

◆ get_lsc_block_2d_data_size()

template<typename T , int NBlocks, int Height, int Width, bool Transposed, bool Transformed>
constexpr int sycl::_V1::ext::intel::experimental::esimd::detail::get_lsc_block_2d_data_size ( )
constexpr

Definition at line 443 of file memory.hpp.

◆ get_lsc_load_cache_mask()

template<cache_hint L1H = cache_hint::none, cache_hint L3H = cache_hint::none>
constexpr uint32_t sycl::_V1::ext::intel::experimental::esimd::detail::get_lsc_load_cache_mask ( )
constexpr

◆ get_lsc_store_cache_mask()

template<cache_hint L1H = cache_hint::none, cache_hint L3H = cache_hint::none>
constexpr uint32_t sycl::_V1::ext::intel::experimental::esimd::detail::get_lsc_store_cache_mask ( )
constexpr

◆ lsc_format_input()

template<typename RT , typename T , int N>
ESIMD_INLINE sycl::ext::intel::esimd::simd<RT, N> sycl::_V1::ext::intel::experimental::esimd::detail::lsc_format_input ( sycl::ext::intel::esimd::simd< T, N >  Vals)

Definition at line 453 of file memory.hpp.

◆ lsc_format_ret()

template<typename T , typename T1 , int N>
ESIMD_INLINE sycl::ext::intel::esimd::simd<T, N> sycl::_V1::ext::intel::experimental::esimd::detail::lsc_format_ret ( sycl::ext::intel::esimd::simd< T1, N >  Vals)

Definition at line 468 of file memory.hpp.

◆ to_int()

template<lsc_vector_size VS>
constexpr uint8_t sycl::_V1::ext::intel::experimental::esimd::detail::to_int ( )
constexpr

Definition at line 122 of file common.hpp.

References n1, n16, n2, n3, n32, n4, n64, and n8.

◆ to_lsc_vector_size()

template<int VS>
constexpr lsc_vector_size sycl::_V1::ext::intel::experimental::esimd::detail::to_lsc_vector_size ( )
constexpr

Definition at line 146 of file common.hpp.

References n1, n16, n2, n3, n32, n4, n64, and n8.