Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C. More...
#include <CL/sycl/atomic.hpp>
Public Types | |
using | element_type = detail::conditional_t< std::is_same< ElementType, half >::value, cl::sycl::detail::half_impl::BIsRepresentationT, ElementType > |
using | difference_type = std::ptrdiff_t |
using | pointer_t = typename detail::DecoratedType< ElementType, Space >::type * |
using | const_pointer_t = typename detail::DecoratedType< ElementType, Space >::type const * |
using | reference_t = typename detail::DecoratedType< ElementType, Space >::type & |
using | const_reference_t = typename detail::DecoratedType< ElementType, Space >::type & |
using | ReturnPtr = detail::const_if_const_AS< Space, ElementType > * |
using | ReturnRef = detail::const_if_const_AS< Space, ElementType > & |
using | ReturnConstRef = const ElementType & |
Public Member Functions | |
multi_ptr () | |
multi_ptr (const multi_ptr &rhs)=default | |
multi_ptr (multi_ptr &&)=default | |
multi_ptr (ElementType *pointer) | |
multi_ptr (std::nullptr_t) | |
~multi_ptr ()=default | |
multi_ptr & | operator= (const multi_ptr &)=default |
multi_ptr & | operator= (multi_ptr &&)=default |
multi_ptr & | operator= (ElementType *pointer) |
multi_ptr & | operator= (std::nullptr_t) |
ReturnRef | operator* () const |
ReturnPtr | operator-> () const |
ReturnRef | operator[] (difference_type index) |
ReturnConstRef | operator[] (difference_type index) const |
template<int dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename = typename detail::enable_if_t< _Space == Space && (Space == access::address_space::generic_space || Space == access::address_space::global_space || Space == access::address_space::global_device_space)>> | |
multi_ptr (accessor< ElementType, dimensions, Mode, access::target::device, isPlaceholder, PropertyListT > Accessor) | |
template<int dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename = typename detail::enable_if_t< _Space == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space)>> | |
multi_ptr (accessor< ElementType, dimensions, Mode, access::target::local, isPlaceholder, PropertyListT > Accessor) | |
template<int dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename = typename detail::enable_if_t< _Space == Space && Space == access::address_space::constant_space>> | |
multi_ptr (accessor< ElementType, dimensions, Mode, access::target::constant_buffer, isPlaceholder, PropertyListT > Accessor) | |
template<int dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename ET = ElementType, typename = typename detail::enable_if_t< _Space == Space && (Space == access::address_space::generic_space || Space == access::address_space::global_space || Space == access::address_space::global_device_space) && std::is_const<ET>::value && std::is_same<ET, ElementType>::value>> | |
multi_ptr (accessor< typename detail::remove_const_t< ET >, dimensions, Mode, access::target::device, isPlaceholder, PropertyListT > Accessor) | |
template<int dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename ET = ElementType, typename = typename detail::enable_if_t< _Space == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space) && std::is_const<ET>::value && std::is_same<ET, ElementType>::value>> | |
multi_ptr (accessor< typename detail::remove_const_t< ET >, dimensions, Mode, access::target::local, isPlaceholder, PropertyListT > Accessor) | |
template<int dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename ET = ElementType, typename = typename detail::enable_if_t< _Space == Space && Space == access::address_space::constant_space && std::is_const<ET>::value && std::is_same<ET, ElementType>::value>> | |
multi_ptr (accessor< typename detail::remove_const_t< ET >, dimensions, Mode, access::target::constant_buffer, isPlaceholder, PropertyListT > Accessor) | |
template<typename ET = ElementType> | |
multi_ptr (typename detail::enable_if_t< std::is_const< ET >::value &&std::is_same< ET, ElementType >::value, const multi_ptr< typename detail::remove_const_t< ET >, Space >> &ETP) | |
pointer_t | get () const |
operator ReturnPtr () const | |
template<typename ET = ElementType> | |
operator multi_ptr< typename detail::enable_if_t< std::is_same< ET, ElementType >::value &&!std::is_const< ET >::value, void >::type, Space > () const | |
template<typename ET = ElementType> | |
operator multi_ptr< typename detail::enable_if_t< std::is_same< ET, ElementType >::value &&std::is_const< ET >::value, const void >::type, Space > () const | |
operator multi_ptr< const ElementType, Space > () const | |
multi_ptr & | operator++ () |
multi_ptr | operator++ (int) |
multi_ptr & | operator-- () |
multi_ptr | operator-- (int) |
multi_ptr & | operator+= (difference_type r) |
multi_ptr & | operator-= (difference_type r) |
multi_ptr | operator+ (difference_type r) const |
multi_ptr | operator- (difference_type r) const |
template<access::address_space _Space = Space, typename = typename detail::enable_if_t< _Space == Space && Space == access::address_space::global_space>> | |
void | prefetch (size_t NumElements) const |
Static Public Attributes | |
static constexpr access::address_space | address_space = Space |
Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C.
Definition at line 32 of file atomic.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::const_pointer_t = typename detail::DecoratedType<ElementType, Space>::type const * |
Definition at line 41 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::const_reference_t = typename detail::DecoratedType<ElementType, Space>::type & |
Definition at line 45 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::difference_type = std::ptrdiff_t |
Definition at line 35 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::element_type = detail::conditional_t<std::is_same<ElementType, half>::value, cl::sycl::detail::half_impl::BIsRepresentationT, ElementType> |
Definition at line 34 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::pointer_t = typename detail::DecoratedType<ElementType, Space>::type * |
Definition at line 39 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::reference_t = typename detail::DecoratedType<ElementType, Space>::type & |
Definition at line 43 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::ReturnConstRef = const ElementType & |
Definition at line 108 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::ReturnPtr = detail::const_if_const_AS<Space, ElementType> * |
Definition at line 106 of file multi_ptr.hpp.
using cl::sycl::multi_ptr< ElementType, Space >::ReturnRef = detail::const_if_const_AS<Space, ElementType> & |
Definition at line 107 of file multi_ptr.hpp.
|
inline |
Definition at line 50 of file multi_ptr.hpp.
|
default |
|
default |
|
inline |
Definition at line 64 of file multi_ptr.hpp.
|
inline |
Definition at line 73 of file multi_ptr.hpp.
|
default |
|
inline |
Definition at line 135 of file multi_ptr.hpp.
|
inline |
Definition at line 148 of file multi_ptr.hpp.
|
inline |
Definition at line 159 of file multi_ptr.hpp.
|
inline |
Definition at line 185 of file multi_ptr.hpp.
|
inline |
Definition at line 200 of file multi_ptr.hpp.
|
inline |
Definition at line 213 of file multi_ptr.hpp.
|
inline |
Definition at line 226 of file multi_ptr.hpp.
|
inline |
Definition at line 232 of file multi_ptr.hpp.
Referenced by cl::sycl::group< 1 >::async_work_group_copy(), cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_load(), cl::sycl::ext::oneapi::experimental::matrix::joint_matrix_store(), cl::sycl::ext::oneapi::detail::joint_matrix_load_impl< T, Use, NumRows, NumCols, Layout, Space, typename std::enable_if_t< Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major||Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major > >::load(), cl::sycl::ext::oneapi::sub_group::load(), cl::sycl::operator<<(), cl::sycl::ext::oneapi::detail::joint_matrix_store_impl< T, NumRows, NumCols, Layout, Space, typename std::enable_if_t< Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::row_major||Layout==sycl::ext::oneapi::experimental::matrix::matrix_layout::col_major > >::store(), and cl::sycl::ext::oneapi::sub_group::store().
|
inline |
Definition at line 262 of file multi_ptr.hpp.
|
inline |
Definition at line 244 of file multi_ptr.hpp.
|
inline |
Definition at line 256 of file multi_ptr.hpp.
|
inline |
Definition at line 235 of file multi_ptr.hpp.
|
inline |
Definition at line 110 of file multi_ptr.hpp.
|
inline |
Definition at line 296 of file multi_ptr.hpp.
References cl::sycl::r.
|
inline |
Definition at line 270 of file multi_ptr.hpp.
|
inline |
Definition at line 274 of file multi_ptr.hpp.
|
inline |
Definition at line 288 of file multi_ptr.hpp.
References cl::sycl::r.
|
inline |
Definition at line 299 of file multi_ptr.hpp.
References cl::sycl::r.
|
inline |
Definition at line 279 of file multi_ptr.hpp.
|
inline |
Definition at line 283 of file multi_ptr.hpp.
|
inline |
Definition at line 292 of file multi_ptr.hpp.
References cl::sycl::r.
|
inline |
Definition at line 114 of file multi_ptr.hpp.
|
default |
|
inline |
Definition at line 94 of file multi_ptr.hpp.
|
default |
|
inline |
Definition at line 101 of file multi_ptr.hpp.
|
inline |
Definition at line 118 of file multi_ptr.hpp.
|
inline |
Definition at line 122 of file multi_ptr.hpp.
|
inline |
Definition at line 326 of file multi_ptr.hpp.
References __spirv_ocl_prefetch().
|
staticconstexpr |
Definition at line 47 of file multi_ptr.hpp.