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

Classes

struct  is_group_helper
 
struct  is_group_helper< group_with_scratchpad< Group, Extent > >
 
struct  HasArrowOperator
 
struct  HasArrowOperator< T, std::void_t< decltype(std::declval< T >().operator->())> >
 
class  device_global_base
 
struct  PropertyToKind< device_image_scope_key >
 
struct  PropertyToKind< host_access_key >
 
struct  PropertyToKind< init_mode_key >
 
struct  PropertyToKind< implement_in_csr_key >
 
struct  IsCompileTimeProperty< device_image_scope_key >
 
struct  IsCompileTimeProperty< host_access_key >
 
struct  IsCompileTimeProperty< init_mode_key >
 
struct  IsCompileTimeProperty< implement_in_csr_key >
 
struct  PropertyMetaInfo< device_image_scope_key::value_t >
 
struct  PropertyMetaInfo< host_access_key::value_t< Access > >
 
struct  PropertyMetaInfo< init_mode_key::value_t< Trigger > >
 
struct  PropertyMetaInfo< implement_in_csr_key::value_t< Enable > >
 
struct  spmd2simd
 
struct  spmd2simd< uniform< T >, N >
 
struct  spmd2simd< std::tuple< T... >, N >
 
struct  spmd2simd< T, N, std::enable_if_t< std::is_arithmetic_v< T > > >
 
struct  simd2spmd
 
struct  simd2spmd< uniform< T > >
 
struct  simd2spmd< simd< T, N > >
 
struct  simd2spmd< std::tuple< T... > >
 
struct  simd2spmd< T, std::enable_if_t< std::is_arithmetic_v< T > > >
 
struct  simd2spmd< void >
 
struct  simd_size
 
struct  simd_size< simd< T, N > >
 
struct  is_uniform_type
 
struct  is_uniform_type< uniform< T > >
 
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  all_uniform_types
 
struct  unwrap_uniform
 
struct  unwrap_uniform< uniform< T > >
 
struct  sg_size
 
struct  remove_ref_from_func_ptr_ref_type
 
struct  remove_ref_from_func_ptr_ref_type< Ret(__regcall *&)(Args...)>
 
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  AllNonZero
 
struct  AllNonZero< X, Xs... >
 
struct  PropertyToKind< work_group_size_key >
 
struct  PropertyToKind< work_group_size_hint_key >
 
struct  PropertyToKind< sub_group_size_key >
 
struct  PropertyToKind< device_has_key >
 
struct  IsCompileTimeProperty< work_group_size_key >
 
struct  IsCompileTimeProperty< work_group_size_hint_key >
 
struct  IsCompileTimeProperty< sub_group_size_key >
 
struct  IsCompileTimeProperty< device_has_key >
 
struct  PropertyMetaInfo< work_group_size_key::value_t< Dim0, Dims... > >
 
struct  PropertyMetaInfo< work_group_size_hint_key::value_t< Dim0, Dims... > >
 
struct  PropertyMetaInfo< sub_group_size_key::value_t< Size > >
 
struct  PropertyMetaInfo< device_has_key::value_t< Aspects... > >
 
struct  HasKernelPropertiesGetMethod
 
struct  HasKernelPropertiesGetMethod< T, std::void_t< decltype(std::declval< T >().get(std::declval< properties_tag >()))> >
 
struct  PropertyToKind< intel::experimental::latency_anchor_id_key >
 
struct  PropertyToKind< intel::experimental::latency_constraint_key >
 
struct  IsCompileTimeProperty< intel::experimental::latency_anchor_id_key >
 
struct  IsCompileTimeProperty< intel::experimental::latency_constraint_key >
 
struct  ContainsProperty
 
struct  ContainsProperty< PropT, std::tuple< T, Ts... > >
 
struct  ContainsProperty< PropT, std::tuple< PropT, Rest... > >
 
struct  ContainsProperty< PropT, std::tuple< property_value< PropT, PropValuesTs... >, Rest... > >
 
struct  FindCompileTimePropertyValueType
 
struct  FindCompileTimePropertyValueType< CTPropertyT, std::tuple< OtherProperty, Rest... > >
 
struct  FindCompileTimePropertyValueType< CTPropertyT, std::tuple< property_value< CTPropertyT, CTPropertyValueTs... >, Rest... > >
 
struct  RuntimePropertyStorage
 
struct  RuntimePropertyStorage< std::tuple< Ts... > >
 
struct  RuntimePropertyStorage< std::tuple< T, Ts... > >
 
struct  ExtractProperties
 
struct  ExtractProperties< std::tuple< PropertiesTs... > >
 
struct  ExtractProperties< std::tuple< PropertyT, PropertiesTs... > >
 
struct  merged_properties
 
struct  merged_properties< properties_t< LHSPropertiesTs... >, properties_t< RHSPropertiesTs... > >
 
struct  PropertyToKind
 
struct  PropertyID
 
struct  IsRuntimeProperty
 
struct  IsCompileTimeProperty
 
struct  PropertyMetaInfo
 
struct  IsTuple
 
struct  IsTuple< std::tuple< Ts... > >
 
struct  PrependTuple
 
struct  PrependTuple< T, std::tuple< Ts... > >
 
struct  HasValue
 
struct  HasValue< T, decltype((void) T::value, 0)>
 
struct  IsCompileTimePropertyValue
 
struct  IsProperty
 
struct  IsPropertyValue
 
struct  AllPropertyValues
 
struct  AllPropertyValues< std::tuple< Ts... > >
 
struct  AllPropertyValues< std::tuple< T, Ts... > >
 
struct  HeadSplit
 
struct  HeadSplit< std::tuple< T, Ts... >, true >
 
struct  HeadSplit< std::tuple< Ts... >, false >
 
struct  SelectNonVoid
 
struct  SelectNonVoid< LHS, void >
 
struct  SelectNonVoid< void, RHS >
 
struct  Merge
 
struct  Merge< std::tuple< LTs... >, std::tuple<> >
 
struct  Merge< std::tuple<>, std::tuple< RTs... > >
 
struct  Merge< std::tuple< LTs... >, std::tuple< RTs... > >
 
struct  CreateTuplePairs
 
struct  CreateTuplePairs< T >
 
struct  CreateTuplePairs< L, R, Rest... >
 
struct  MergePairs
 
struct  MergePairs< std::tuple< std::pair< std::tuple< LTs... >, std::tuple< RTs... > >, Rest... > >
 
struct  MergePairs< std::tuple< std::pair< std::tuple< LLTs... >, std::tuple< LRTs... > >, std::pair< std::tuple< RLTs... >, std::tuple< RRTs... > >, Rest... > >
 
struct  MergeAll
 
struct  MergeAll< std::tuple< Ts... > >
 
struct  MergeAll< std::tuple< std::pair< std::tuple< Ts... >, std::tuple<> > > >
 
struct  MergeAll< std::tuple< T, Ts... > >
 
struct  Sorted
 
struct  IsSorted
 
struct  IsSorted< std::tuple< Ts... > >
 
struct  IsSorted< std::tuple< T > >
 
struct  SingleNontypePropertyValueBase
 
struct  SingleNontypePropertyValueBase< T, std::enable_if_t< HasValue< T >::value > >
 
struct  PropertyValueBase
 
struct  PropertyValueBase< T >
 
struct  PropertyID< property_value< PropertyT, PropertyValueTs... > >
 
struct  IsCompileTimePropertyValue< property_value< PropertyT, PropertyValueTs... > >
 

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 , PropKindSize = 10
}
 

Functions

template<size_t N>
uint32_t to_uint32_t (sycl::marray< bfloat16, N > x, size_t start)
 
template<class SimdCallable , class... SpmdArgs>
static constexpr int get_sg_size ()
 
template<int N, class Callable , class... T>
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>
SYCL_EXTERNAL __regcall detail::SimdRetType< N, Callable, T... > simd_func_call_helper (Callable f, typename detail::spmd2simd< T, N >::type... simd_args)
 
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 205 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 37 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>
using sycl::_V1::ext::oneapi::experimental::detail::properties_t = typedef properties<std::tuple<PropertyValueTs...> >

Definition at line 210 of file properties.hpp.

◆ remove_ref_from_func_ptr_ref_type_t

Definition at line 308 of file invoke_simd.hpp.

◆ 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 210 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 216 of file invoke_simd.hpp.

Enumeration Type Documentation

◆ PropKind

Enumerator
DeviceImageScope 
HostAccess 
InitMode 
ImplementInCSR 
LatencyAnchorID 
LatencyConstraint 
WorkGroupSize 
WorkGroupSizeHint 
SubGroupSize 
DeviceHas 
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 65 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 70 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

◆ simd_func_call_helper()

template<int N, class Callable , class... T>
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>
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 
)

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 291 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 69 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 58 of file uniform.hpp.