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... | |
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.
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.
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.
sg | the subgroup simd function is invoked from |
f | represents 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. |
args | SPMD 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().