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

Classes

struct  all_uniform_types
 
struct  AllNonZero
 
struct  AllNonZero< X, Xs... >
 
struct  AllPropertyValues
 
struct  AllPropertyValues< std::tuple< T, Ts... > >
 
struct  AllPropertyValues< std::tuple< Ts... > >
 
struct  ContainsProperty
 
struct  ContainsProperty< PropT, std::tuple< property_value< PropT, PropValuesTs... >, Rest... > >
 
struct  ContainsProperty< PropT, std::tuple< PropT, Rest... > >
 
struct  ContainsProperty< PropT, std::tuple< T, Ts... > >
 
struct  ConvertToComp
 
struct  ConvertToComp< T, sorting_order::descending >
 
struct  declval< T >().operator->())> >
 
struct  DeducedProperties
 
struct  DeducedProperties< detail::properties_t< Args... > >
 
class  device_global_base
 
struct  ExtractProperties
 
struct  ExtractProperties< std::tuple< PropertiesTs... > >
 
struct  ExtractProperties< std::tuple< PropertyT, PropertiesTs... > >
 
struct  FindCompileTimePropertyValueType
 
struct  FindCompileTimePropertyValueType< CTPropertyT, std::tuple< OtherProperty, Rest... > >
 
struct  FindCompileTimePropertyValueType< CTPropertyT, std::tuple< property_value< CTPropertyT, CTPropertyValueTs... >, Rest... > >
 
struct  has_difference_type
 
struct  has_difference_type< T * >
 
struct  has_difference_type< T, sycl::detail::void_t< typename T::difference_type > >
 
struct  HasArrowOperator
 
struct  HasKernelPropertiesGetMethod
 
struct  HasKernelPropertiesGetMethod< T, sycl::detail::void_t< decltype(std::declval< T >().get(std::declval< properties_tag >()))> >
 
struct  HasSubscriptOperator
 
struct  HasValue
 
struct  HasValue< T, decltype((void) T::value, 0)>
 
struct  HeadSplit
 
struct  HeadSplit< std::tuple< T, Ts... >, true >
 
struct  HeadSplit< std::tuple< Ts... >, false >
 
struct  is_group_helper
 
struct  is_group_helper< group_with_scratchpad< Group, Extent > >
 
struct  is_instance_of_tmpl_int
 
struct  is_instance_of_tmpl_int< T< N >, Tmpl >
 
struct  is_instance_of_tmpl_int_bool
 
struct  is_instance_of_tmpl_int_bool< T< N, X >, Tmpl >
 
struct  is_simd_or_mask_type
 
struct  is_simd_or_mask_type< simd< T, N > >
 
struct  is_simd_or_mask_type< simd_mask< T, N > >
 
struct  is_sorter
 
struct  is_sorter_impl
 
struct  is_sorter_impl< Sorter, Group, Ptr, sycl::detail::void_t< typename has_difference_type< Ptr >::type > >
 
struct  is_uniform_type
 
struct  is_uniform_type< uniform< T > >
 
struct  IsCompileTimeProperty
 
struct  IsCompileTimeProperty< alignment_key >
 
struct  IsCompileTimeProperty< awidth_key >
 
struct  IsCompileTimeProperty< buffer_location_key >
 
struct  IsCompileTimeProperty< conduit_key >
 
struct  IsCompileTimeProperty< device_has_key >
 
struct  IsCompileTimeProperty< device_image_scope_key >
 
struct  IsCompileTimeProperty< dwidth_key >
 
struct  IsCompileTimeProperty< host_access_key >
 
struct  IsCompileTimeProperty< implement_in_csr_key >
 
struct  IsCompileTimeProperty< init_mode_key >
 
struct  IsCompileTimeProperty< intel::experimental::latency_anchor_id_key >
 
struct  IsCompileTimeProperty< intel::experimental::latency_constraint_key >
 
struct  IsCompileTimeProperty< intel::experimental::pipelined_key >
 
struct  IsCompileTimeProperty< intel::experimental::register_map_interface_key >
 
struct  IsCompileTimeProperty< intel::experimental::streaming_interface_key >
 
struct  IsCompileTimeProperty< latency_key >
 
struct  IsCompileTimeProperty< maxburst_key >
 
struct  IsCompileTimeProperty< read_write_mode_key >
 
struct  IsCompileTimeProperty< register_map_key >
 
struct  IsCompileTimeProperty< stable_key >
 
struct  IsCompileTimeProperty< sub_group_size_key >
 
struct  IsCompileTimeProperty< wait_request_key >
 
struct  IsCompileTimeProperty< work_group_size_hint_key >
 
struct  IsCompileTimeProperty< work_group_size_key >
 
struct  IsCompileTimePropertyValue
 
struct  IsCompileTimePropertyValue< property_value< PropertyT, PropertyValueTs... > >
 
struct  IsProperty
 
struct  IsPropertyValue
 
struct  IsRuntimeProperty
 
struct  IsRuntimeProperty< intel::experimental::cache_config_key >
 
struct  IsSorted
 
struct  IsSorted< std::tuple< T > >
 
struct  IsSorted< std::tuple< Ts... > >
 
struct  IsTuple
 
struct  IsTuple< std::tuple< Ts... > >
 
struct  merged_properties
 
struct  merged_properties< properties_t< LHSPropertiesTs... >, properties_t< RHSPropertiesTs... > >
 
struct  PrependTuple
 
struct  PrependTuple< T, std::tuple< Ts... > >
 
struct  PropertyID
 
struct  PropertyID< property_value< PropertyT, PropertyValueTs... > >
 
struct  PropertyMetaInfo
 
struct  PropertyMetaInfo< alignment_key::value_t< N > >
 
struct  PropertyMetaInfo< awidth_key::value_t< W > >
 
struct  PropertyMetaInfo< buffer_location_key::value_t< N > >
 
struct  PropertyMetaInfo< conduit_key::value_t >
 
struct  PropertyMetaInfo< device_has_key::value_t< Aspects... > >
 
struct  PropertyMetaInfo< device_image_scope_key::value_t >
 
struct  PropertyMetaInfo< dwidth_key::value_t< W > >
 
struct  PropertyMetaInfo< host_access_key::value_t< Access > >
 
struct  PropertyMetaInfo< implement_in_csr_key::value_t< Enable > >
 
struct  PropertyMetaInfo< init_mode_key::value_t< Trigger > >
 
struct  PropertyMetaInfo< intel::experimental::pipelined_key::value_t< Value > >
 
struct  PropertyMetaInfo< intel::experimental::register_map_interface_key::value_t< Wait > >
 
struct  PropertyMetaInfo< intel::experimental::streaming_interface_key::value_t< Stall > >
 
struct  PropertyMetaInfo< latency_key::value_t< N > >
 
struct  PropertyMetaInfo< maxburst_key::value_t< N > >
 
struct  PropertyMetaInfo< read_write_mode_key::value_t< Mode > >
 
struct  PropertyMetaInfo< register_map_key::value_t >
 
struct  PropertyMetaInfo< stable_key::value_t >
 
struct  PropertyMetaInfo< sub_group_size_key::value_t< Size > >
 
struct  PropertyMetaInfo< wait_request_key::value_t< Enable > >
 
struct  PropertyMetaInfo< work_group_size_hint_key::value_t< Dim0, Dims... > >
 
struct  PropertyMetaInfo< work_group_size_key::value_t< Dim0, Dims... > >
 
struct  PropertyToKind
 
struct  PropertyToKind< alignment_key >
 
struct  PropertyToKind< awidth_key >
 
struct  PropertyToKind< buffer_location_key >
 
struct  PropertyToKind< conduit_key >
 
struct  PropertyToKind< device_has_key >
 
struct  PropertyToKind< device_image_scope_key >
 
struct  PropertyToKind< dwidth_key >
 
struct  PropertyToKind< host_access_key >
 
struct  PropertyToKind< implement_in_csr_key >
 
struct  PropertyToKind< init_mode_key >
 
struct  PropertyToKind< intel::experimental::cache_config_key >
 
struct  PropertyToKind< intel::experimental::latency_anchor_id_key >
 
struct  PropertyToKind< intel::experimental::latency_constraint_key >
 
struct  PropertyToKind< intel::experimental::pipelined_key >
 
struct  PropertyToKind< intel::experimental::register_map_interface_key >
 
struct  PropertyToKind< intel::experimental::streaming_interface_key >
 
struct  PropertyToKind< latency_key >
 
struct  PropertyToKind< maxburst_key >
 
struct  PropertyToKind< read_write_mode_key >
 
struct  PropertyToKind< register_map_key >
 
struct  PropertyToKind< stable_key >
 
struct  PropertyToKind< sub_group_size_key >
 
struct  PropertyToKind< wait_request_key >
 
struct  PropertyToKind< work_group_size_hint_key >
 
struct  PropertyToKind< work_group_size_key >
 
struct  PropertyValueBase
 
struct  PropertyValueBase< T >
 
struct  remove_ref_from_func_ptr_ref_type
 
struct  remove_ref_from_func_ptr_ref_type< Ret(__regcall *&)(Args...)>
 
struct  RuntimePropertyStorage
 
struct  RuntimePropertyStorage< std::tuple< T, Ts... > >
 
struct  RuntimePropertyStorage< std::tuple< Ts... > >
 
struct  SelectNonVoid
 
struct  SelectNonVoid< LHS, void >
 
struct  SelectNonVoid< void, RHS >
 
struct  sg_size
 
struct  simd2spmd
 
struct  simd2spmd< simd< T, N > >
 
struct  simd2spmd< simd_mask< T, N > >
 
struct  simd2spmd< std::tuple< T... > >
 
struct  simd2spmd< T, std::enable_if_t< std::is_arithmetic_v< T > > >
 
struct  simd2spmd< uniform< T > >
 
struct  simd2spmd< void >
 
struct  simd_size
 
struct  simd_size< simd< T, N > >
 
struct  SingleNontypePropertyValueBase
 
struct  SingleNontypePropertyValueBase< T, std::enable_if_t< HasValue< T >::value > >
 
struct  SortByPropertyId
 
struct  Sorted
 
struct  spmd2simd
 
struct  spmd2simd< bool, N >
 
struct  spmd2simd< std::tuple< T... >, N >
 
struct  spmd2simd< T, N, std::enable_if_t< std::is_arithmetic_v< T > > >
 
struct  spmd2simd< uniform< T >, N >
 
struct  unwrap_uniform
 
struct  unwrap_uniform< uniform< T > >
 

Typedefs

template<int N, class SimdCallable , class... SpmdArgs>
using SimdRetType = std::invoke_result_t< SimdCallable, typename spmd2simd< SpmdArgs, N >::type... >
 
template<int N, class SimdCallable , class... SpmdArgs>
using SpmdRetType = typename simd2spmd< SimdRetType< N, SimdCallable, SpmdArgs... > >::type
 
template<typename T >
using remove_ref_from_func_ptr_ref_type_t = typename remove_ref_from_func_ptr_ref_type< T >::type
 
using empty_properties_t = properties< std::tuple<> >
 
template<typename... PropertyValueTs>
using properties_t = properties< std::tuple< PropertyValueTs... > >
 
template<typename LHSPropertiesT , typename RHSPropertiesT >
using merged_properties_t = typename merged_properties< LHSPropertiesT, RHSPropertiesT >::type
 
template<typename... Ts>
using GetFirstType = typename std::tuple_element< 0, std::tuple< Ts... > >::type
 

Enumerations

enum  PropKind : uint32_t {
  DeviceImageScope = 0, HostAccess = 1, InitMode = 2, ImplementInCSR = 3,
  LatencyAnchorID = 4, LatencyConstraint = 5, WorkGroupSize = 6, WorkGroupSizeHint = 7,
  SubGroupSize = 8, DeviceHas = 9, StreamingInterface = 10, RegisterMapInterface = 11,
  Pipelined = 12, RegisterMap = 13, Conduit = 14, Stable = 15,
  BufferLocation = 16, AddrWidth = 17, DataWidth = 18, Latency = 19,
  RWMode = 20, MaxBurst = 21, WaitRequest = 22, Alignment = 23,
  CacheConfig = 24, PropKindSize = 25
}
 

Functions

template<size_t N>
uint32_t to_uint32_t (sycl::marray< bfloat16, N > x, size_t start)
 
template<auto SgSize, typename SimdRet >
constexpr void verify_return_type_matches_sg_size ()
 
template<class SimdCallable , class... SpmdArgs>
static constexpr int get_sg_size ()
 
template<int N, class Callable , class... T>
__DPCPP_SYCL_EXTERNAL __regcall detail::SimdRetType< N, Callable, T... > simd_obj_call_helper (const void *obj_ptr, typename detail::spmd2simd< T, N >::type... simd_args)
 
template<int N, class Callable , class... T>
__DPCPP_SYCL_EXTERNAL __regcall detail::SimdRetType< N, Callable, T... > simd_func_call_helper (Callable f, typename detail::spmd2simd< T, N >::type... simd_args)
 
template<typename GroupHelper , typename T , typename BinaryOperation >
T reduce_over_group_impl (GroupHelper group_helper, T x, size_t num_elements, BinaryOperation binary_op)
 
template<typename CTPropertyT , bool HasProperty, typename PropertiesT = void>
static constexpr std::enable_if_t< HasProperty, typename FindCompileTimePropertyValueType< CTPropertyT, PropertiesT >::type > get_property ()
 
template<typename CTPropertyT , bool HasProperty, typename PropertiesT = void>
static constexpr std::enable_if_t<!HasProperty, void > get_property ()
 

Variables

template<class Callable >
static constexpr bool is_function_ptr_or_ref_v
 
template<class T , template< int > class Tmpl>
static constexpr bool is_instance_of_tmpl_int_v
 
template<class T , template< int, bool > class Tmpl>
static constexpr bool is_instance_of_tmpl_int_bool_v
 

Typedef Documentation

◆ empty_properties_t

Definition at line 204 of file properties.hpp.

◆ GetFirstType

template<typename... Ts>
using sycl::_V1::ext::oneapi::experimental::detail::GetFirstType = typedef typename std::tuple_element<0, std::tuple<Ts...> >::type

Definition at line 36 of file property_utils.hpp.

◆ merged_properties_t

template<typename LHSPropertiesT , typename RHSPropertiesT >
using sycl::_V1::ext::oneapi::experimental::detail::merged_properties_t = typedef typename merged_properties<LHSPropertiesT, RHSPropertiesT>::type

Definition at line 222 of file properties.hpp.

◆ properties_t

template<typename... PropertyValueTs>
class __SYCL_SPECIAL_CLASS sycl::_V1::ext::oneapi::experimental::detail::properties_t< Props... >
Initial value:
{
using property_list_t = detail::properties_t<Props...>

Definition at line 209 of file properties.hpp.

◆ remove_ref_from_func_ptr_ref_type_t

◆ SimdRetType

template<int N, class SimdCallable , class... SpmdArgs>
using sycl::_V1::ext::oneapi::experimental::detail::SimdRetType = typedef std::invoke_result_t<SimdCallable, typename spmd2simd<SpmdArgs, N>::type...>

Definition at line 235 of file invoke_simd.hpp.

◆ SpmdRetType

template<int N, class SimdCallable , class... SpmdArgs>
using sycl::_V1::ext::oneapi::experimental::detail::SpmdRetType = typedef typename simd2spmd<SimdRetType<N, SimdCallable, SpmdArgs...> >::type

Definition at line 240 of file invoke_simd.hpp.

Enumeration Type Documentation

◆ PropKind

Enumerator
DeviceImageScope 
HostAccess 
InitMode 
ImplementInCSR 
LatencyAnchorID 
LatencyConstraint 
WorkGroupSize 
WorkGroupSizeHint 
SubGroupSize 
DeviceHas 
StreamingInterface 
RegisterMapInterface 
Pipelined 
RegisterMap 
Conduit 
Stable 
BufferLocation 
AddrWidth 
DataWidth 
Latency 
RWMode 
MaxBurst 
WaitRequest 
Alignment 
CacheConfig 
PropKindSize 

Definition at line 165 of file property.hpp.

Function Documentation

◆ get_property() [1/2]

template<typename CTPropertyT , bool HasProperty, typename PropertiesT = void>
static constexpr std::enable_if_t< HasProperty, typename FindCompileTimePropertyValueType<CTPropertyT, PropertiesT>::type> sycl::_V1::ext::oneapi::experimental::detail::get_property ( )
staticconstexpr

Definition at line 63 of file properties.hpp.

◆ get_property() [2/2]

template<typename CTPropertyT , bool HasProperty, typename PropertiesT = void>
static constexpr std::enable_if_t<!HasProperty, void> sycl::_V1::ext::oneapi::experimental::detail::get_property ( )
staticconstexpr

Definition at line 68 of file properties.hpp.

◆ get_sg_size()

template<class SimdCallable , class... SpmdArgs>
static constexpr int sycl::_V1::ext::oneapi::experimental::detail::get_sg_size ( )
staticconstexpr

◆ reduce_over_group_impl()

template<typename GroupHelper , typename T , typename BinaryOperation >
T sycl::_V1::ext::oneapi::experimental::detail::reduce_over_group_impl ( GroupHelper  group_helper,
T  x,
size_t  num_elements,
BinaryOperation  binary_op 
)

◆ simd_func_call_helper()

template<int N, class Callable , class... T>
__DPCPP_SYCL_EXTERNAL __regcall detail:: SimdRetType<N, Callable, T...> sycl::_V1::ext::oneapi::experimental::detail::simd_func_call_helper ( Callable  f,
typename detail::spmd2simd< T, N >::type...  simd_args 
)

◆ simd_obj_call_helper()

template<int N, class Callable , class... T>
__DPCPP_SYCL_EXTERNAL __regcall detail:: SimdRetType<N, Callable, T...> sycl::_V1::ext::oneapi::experimental::detail::simd_obj_call_helper ( const void *  obj_ptr,
typename detail::spmd2simd< T, N >::type...  simd_args 
)

◆ to_uint32_t()

template<size_t N>
uint32_t sycl::_V1::ext::oneapi::experimental::detail::to_uint32_t ( sycl::marray< bfloat16, N >  x,
size_t  start 
)

◆ verify_return_type_matches_sg_size()

template<auto SgSize, typename SimdRet >
constexpr void sycl::_V1::ext::oneapi::experimental::detail::verify_return_type_matches_sg_size ( )
constexpr

Variable Documentation

◆ is_function_ptr_or_ref_v

template<class Callable >
constexpr bool sycl::_V1::ext::oneapi::experimental::detail::is_function_ptr_or_ref_v
staticconstexpr
Initial value:
=
std::is_function_v<std::remove_pointer_t<std::remove_reference_t<Callable>>>

Definition at line 314 of file invoke_simd.hpp.

◆ is_instance_of_tmpl_int_bool_v

template<class T , template< int, bool > class Tmpl>
constexpr bool sycl::_V1::ext::oneapi::experimental::detail::is_instance_of_tmpl_int_bool_v
inlinestaticconstexpr
Initial value:
=
is_instance_of_tmpl_int_bool<T, Tmpl>::value

Definition at line 65 of file uniform.hpp.

◆ is_instance_of_tmpl_int_v

template<class T , template< int > class Tmpl>
constexpr bool sycl::_V1::ext::oneapi::experimental::detail::is_instance_of_tmpl_int_v
inlinestaticconstexpr
Initial value:
=
is_instance_of_tmpl_int<T, Tmpl>::value

Definition at line 54 of file uniform.hpp.

sycl::_V1::ext::oneapi::experimental::detail::properties_t
properties< std::tuple< PropertyValueTs... > > properties_t
Definition: properties.hpp:209