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

Namespaces

 detail
 
 simd_abi
 

Classes

class  uniform
 

Typedefs

template<class T , int N>
using simd = std::experimental::simd< T, simd_abi::native_fixed_size< T, N > >
 
template<class T , int N>
using simd_mask = std::experimental::simd_mask< T, simd_abi::native_fixed_size< T, N > >
 

Functions

template<class Callable , class... T>
 __attribute__ ((always_inline)) auto invoke_simd(sycl
 The invoke_simd free function invokes a SIMD function using all work-items in a sub_group. More...
 

Typedef Documentation

◆ simd

template<class T , int N>
using sycl::ext::oneapi::experimental::simd = typedef std::experimental::simd<T, simd_abi::native_fixed_size<T, N> >

Definition at line 85 of file invoke_simd.hpp.

◆ simd_mask

template<class T , int N>
using sycl::ext::oneapi::experimental::simd_mask = typedef std::experimental::simd_mask<T, simd_abi::native_fixed_size<T, N> >

This is basically an alias of the detail::simd_mask_impl class.

Definition at line 90 of file invoke_simd.hpp.

Function Documentation

◆ __attribute__()

template<class Callable , class... T>
sycl::ext::oneapi::experimental::__attribute__ ( (always_inline)  )

The invoke_simd free function invokes a SIMD function using all work-items in a sub_group.

The invoke_simd interface marshals data between the SPMD context of the calling kernel and the SIMD context of the callee, converting arguments and return values between scalar and SIMD types as appropriate.

Parameters
sgthe subgroup simd function is invoked from
frepresents the invoked simd function. Must be a C++ callable that can be invoked with the same number of arguments specified in the args parameter pack. Callable may be a function object, a lambda, or a function pointer (if the device supports SPV_INTEL_function_pointers). Callable must be an immutable callable with the same type and state for all work-items in the sub-group, otherwise behavior is undefined.
argsSPMD parameters to the invoked function, which undergo transformation before actual passing to the simd function, as described in the specification.

Definition at line 293 of file invoke_simd.hpp.

References sycl::ext::oneapi::experimental::detail::get_sg_size().

Referenced by cl::sycl::ext::oneapi::group_local_memory(), and cl::sycl::ext::oneapi::group_local_memory_for_overwrite().