#include <sycl/sub_group.hpp>
Public Types | |
using | id_type = id< 1 > |
using | range_type = range< 1 > |
using | linear_id_type = uint32_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 CVT , typename T = std::remove_cv_t<CVT>> | |
T | load (CVT *src) const |
template<typename CVT , access::address_space Space, access::decorated IsDecorated, typename T = std::remove_cv_t<CVT>> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value, T > | load (const multi_ptr< CVT, Space, IsDecorated > cv_src) const |
template<typename CVT , access::address_space Space, access::decorated IsDecorated, typename T = std::remove_cv_t<CVT>> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value, T > | load (const multi_ptr< CVT, Space, IsDecorated > cv_src) const |
template<int N, typename CVT , access::address_space Space, access::decorated IsDecorated, typename T = std::remove_cv_t<CVT>> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value, vec< T, N > > | load (const multi_ptr< CVT, Space, IsDecorated > src) const |
template<int N, typename CVT , access::address_space Space, access::decorated IsDecorated, typename T = std::remove_cv_t<CVT>> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value, vec< T, N > > | load (const multi_ptr< CVT, Space, IsDecorated > cv_src) const |
template<typename T > | |
void | store (T *dst, const T &x) const |
template<typename T , access::address_space Space, access::decorated DecorateAddress> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value > | store (multi_ptr< T, Space, DecorateAddress > dst, const T &x) const |
template<typename T , access::address_space Space, access::decorated DecorateAddress> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value > | store (multi_ptr< T, Space, DecorateAddress > dst, const T &x) const |
template<int N, typename T , access::address_space Space, access::decorated DecorateAddress> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForGlobalLoadStore< T, Space >::value > | store (multi_ptr< T, Space, DecorateAddress > dst, const vec< T, N > &x) const |
template<int N, typename T , access::address_space Space, access::decorated DecorateAddress> | |
std::enable_if_t< sycl::detail::sub_group::AcceptableForLocalLoadStore< T, Space >::value > | store (multi_ptr< T, Space, DecorateAddress > dst, const vec< T, N > &x) const |
__SYCL_DEPRECATED ("Sub-group barrier with no arguments is deprecated." "Use sycl::group_barrier with the sub-group as the argument instead.") void barrier() const | |
__SYCL_DEPRECATED ("Sub-group barrier accepting fence_space is deprecated." "Use sycl::group_barrier with the sub-group as the argument instead.") void barrier(access | |
Static Public Attributes | |
static constexpr int | dimensions = 1 |
static constexpr sycl::memory_scope | fence_scope |
Protected Member Functions | |
sub_group ()=default | |
Friends | |
template<int dimensions> | |
class | sycl::nd_item |
bool | operator!= (const sub_group &lhs, const sub_group &rhs) |
sub_group | ext::oneapi::this_work_item::get_sub_group () |
Definition at line 133 of file sub_group.hpp.
using sycl::_V1::sub_group::id_type = id<1> |
Definition at line 135 of file sub_group.hpp.
using sycl::_V1::sub_group::linear_id_type = uint32_t |
Definition at line 137 of file sub_group.hpp.
using sycl::_V1::sub_group::range_type = range<1> |
Definition at line 136 of file sub_group.hpp.
|
protecteddefault |
|
inline |
Definition at line 567 of file sub_group.hpp.
References __spirv_ControlBarrier(), sycl::_V1::feature_not_supported, sycl::_V1::detail::getSPIRVMemorySemanticsMask(), sycl::_V1::make_error_code(), and __spv::Scope::Subgroup.
|
inline |
Definition at line 550 of file sub_group.hpp.
References __spirv_ControlBarrier(), __spv::MemorySemanticsMask::AcquireRelease, __spv::MemorySemanticsMask::CrossWorkgroupMemory, sycl::_V1::feature_not_supported, sycl::_V1::make_error_code(), __spv::Scope::Subgroup, __spv::MemorySemanticsMask::SubgroupMemory, and __spv::MemorySemanticsMask::WorkgroupMemory.
|
inline |
Definition at line 180 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, and sycl::_V1::make_error_code().
Referenced by get_group_linear_id().
|
inline |
Definition at line 189 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_group_id(), and sycl::_V1::make_error_code().
|
inline |
Definition at line 198 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, and sycl::_V1::make_error_code().
|
inline |
Definition at line 144 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, and sycl::_V1::make_error_code().
Referenced by get_local_linear_id(), load(), and store().
|
inline |
Definition at line 153 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_local_id(), and sycl::_V1::make_error_code().
Referenced by syclcompat::match_all_over_sub_group(), syclcompat::match_any_over_sub_group(), syclcompat::permute_sub_group_by_xor(), syclcompat::experimental::permute_sub_group_by_xor(), syclcompat::select_from_sub_group(), syclcompat::experimental::select_from_sub_group(), syclcompat::shift_sub_group_left(), syclcompat::experimental::shift_sub_group_left(), syclcompat::shift_sub_group_right(), and syclcompat::experimental::shift_sub_group_right().
|
inline |
Definition at line 162 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, and sycl::_V1::make_error_code().
|
inline |
Definition at line 171 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, and sycl::_V1::make_error_code().
|
inline |
Definition at line 254 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_local_id(), sycl::_V1::detail::GetUnqualMultiPtr(), and sycl::_V1::make_error_code().
|
inline |
Definition at line 274 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_local_id(), sycl::_V1::detail::GetUnqualMultiPtr(), and sycl::_V1::make_error_code().
|
inline |
Definition at line 372 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_local_id(), get_max_local_range(), sycl::_V1::detail::GetUnqualMultiPtr(), and sycl::_V1::make_error_code().
|
inline |
Definition at line 360 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, and sycl::_V1::make_error_code().
|
inline |
Definition at line 243 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, and sycl::_V1::make_error_code().
|
inline |
Definition at line 436 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_local_id(), sycl::_V1::make_error_code(), and sycl::_V1::x.
|
inline |
Definition at line 455 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_local_id(), sycl::_V1::make_error_code(), and sycl::_V1::x.
|
inline |
Definition at line 524 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, sycl::_V1::make_error_code(), and sycl::_V1::x.
|
inline |
Definition at line 536 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, get_local_id(), get_max_local_range(), sycl::_V1::make_error_code(), and sycl::_V1::x.
|
inline |
Definition at line 424 of file sub_group.hpp.
References sycl::_V1::feature_not_supported, sycl::_V1::make_error_code(), and sycl::_V1::x.
Definition at line 621 of file sub_group.hpp.
|
friend |
Definition at line 633 of file sub_group.hpp.
|
staticconstexpr |
Definition at line 138 of file sub_group.hpp.
|
staticconstexpr |
Definition at line 139 of file sub_group.hpp.