#include <sycl/ext/oneapi/sub_group.hpp>
Public Types | |
using | id_type = id< 1 > |
using | range_type = range< 1 > |
using | linear_id_type = uint32_t |
template<typename T > | |
using | EnableIfIsScalarArithmetic = sycl::detail::enable_if_t< sycl::detail::is_scalar_arithmetic< T >::value, T > |
Public Member Functions | |
id_type | get_local_id () const |
linear_id_type | get_local_linear_id () const |
range_type | get_local_range () const |
range_type | get_max_local_range () const |
id_type | get_group_id () const |
linear_id_type | get_group_linear_id () const |
range_type | get_group_range () const |
template<typename T > | |
T | shuffle (T x, id_type local_id) const |
template<typename T > | |
T | shuffle_down (T x, uint32_t delta) const |
template<typename T > | |
T | shuffle_up (T x, uint32_t delta) const |
template<typename T > | |
T | shuffle_xor (T x, id_type value) const |
template<typename CVT , typename T = std::remove_cv_t<CVT>> | |
T | load (CVT *src) const |
template<typename CVT , access::address_space Space, typename T = std::remove_cv_t<CVT>> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value, T > | load (const multi_ptr< CVT, Space > cv_src) const |
template<typename CVT , access::address_space Space, typename T = std::remove_cv_t<CVT>> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value, T > | load (const multi_ptr< CVT, Space > cv_src) const |
template<int N, typename CVT , access::address_space Space, typename T = std::remove_cv_t<CVT>> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value, vec< T, N > > | load (const multi_ptr< CVT, Space > src) const |
template<int N, typename CVT , access::address_space Space, typename T = std::remove_cv_t<CVT>> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value, vec< T, N > > | load (const multi_ptr< CVT, Space > cv_src) const |
template<typename T > | |
void | store (T *dst, const T &x) const |
template<typename T , access::address_space Space> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value > | store (multi_ptr< T, Space > dst, const T &x) const |
template<typename T , access::address_space Space> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value > | store (multi_ptr< T, Space > dst, const T &x) const |
template<int N, typename T , access::address_space Space> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value > | store (multi_ptr< T, Space > dst, const vec< T, N > &x) const |
template<int N, typename T , access::address_space Space> | |
sycl::detail::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value > | store (multi_ptr< T, Space > dst, const vec< T, N > &x) const |
void | barrier () const |
sub_group ()=default | |
Static Public Attributes | |
static constexpr int | dimensions = 1 |
static constexpr sycl::memory_scope | fence_scope |
Friends | |
sub_group | experimental::this_sub_group () |
Definition at line 108 of file sub_group.hpp.
using cl::sycl::ext::oneapi::sub_group::EnableIfIsScalarArithmetic = sycl::detail::enable_if_t<sycl::detail::is_scalar_arithmetic<T>::value, T> |
Definition at line 185 of file sub_group.hpp.
using cl::sycl::ext::oneapi::sub_group::id_type = id<1> |
Definition at line 110 of file sub_group.hpp.
using cl::sycl::ext::oneapi::sub_group::linear_id_type = uint32_t |
Definition at line 112 of file sub_group.hpp.
Definition at line 111 of file sub_group.hpp.
|
default |
|
inline |
Definition at line 563 of file sub_group.hpp.
References __spirv_ControlBarrier(), __spv::MemorySemanticsMask::AcquireRelease, __spv::MemorySemanticsMask::CrossWorkgroupMemory, PI_INVALID_DEVICE, __spv::Scope::Subgroup, __spv::MemorySemanticsMask::SubgroupMemory, and __spv::MemorySemanticsMask::WorkgroupMemory.
|
inline |
Definition at line 155 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 164 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 173 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 119 of file sub_group.hpp.
References PI_INVALID_DEVICE.
Referenced by cl::sycl::detail::get_local_linear_id< ext::oneapi::sub_group >().
|
inline |
Definition at line 128 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 137 of file sub_group.hpp.
References PI_INVALID_DEVICE.
Referenced by cl::sycl::detail::get_local_linear_range< ext::oneapi::sub_group >().
|
inline |
Definition at line 146 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 283 of file sub_group.hpp.
References cl::sycl::multi_ptr< ElementType, Space >::get(), and PI_INVALID_DEVICE.
|
inline |
Definition at line 302 of file sub_group.hpp.
References cl::sycl::multi_ptr< ElementType, Space >::get(), and PI_INVALID_DEVICE.
|
inline |
Definition at line 394 of file sub_group.hpp.
References cl::sycl::multi_ptr< ElementType, Space >::get(), and PI_INVALID_DEVICE.
|
inline |
Definition at line 382 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 272 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 190 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 201 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 212 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 223 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 459 of file sub_group.hpp.
References cl::sycl::multi_ptr< ElementType, Space >::get(), and PI_INVALID_DEVICE.
|
inline |
Definition at line 477 of file sub_group.hpp.
References cl::sycl::multi_ptr< ElementType, Space >::get(), and PI_INVALID_DEVICE.
|
inline |
Definition at line 538 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
inline |
Definition at line 549 of file sub_group.hpp.
References cl::sycl::multi_ptr< ElementType, Space >::get(), and PI_INVALID_DEVICE.
|
inline |
Definition at line 448 of file sub_group.hpp.
References PI_INVALID_DEVICE.
|
friend |
|
staticconstexpr |
Definition at line 113 of file sub_group.hpp.
|
staticconstexpr |
Definition at line 114 of file sub_group.hpp.