DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder > Class Template Reference

#include <sycl/ext/oneapi/atomic_accessor.hpp>

Inheritance diagram for sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >:
Collaboration diagram for sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >:

Public Types

using value_type = DataT
 
using reference = atomic_ref< DataT, DefaultOrder, DefaultScope, AccessorT::AS >
 

Public Member Functions

template<typename T = DataT, int Dims = Dimensions, typename AllocatorT , memory_order Order, memory_scope Scope>
 atomic_accessor (buffer< T, Dims, AllocatorT > &BufferRef, order_tag_t< Order >, scope_tag_t< Scope >, const property_list &PropertyList={})
 
template<typename T = DataT, int Dims = Dimensions, typename AllocatorT , memory_order Order, memory_scope Scope>
 atomic_accessor (buffer< T, Dims, AllocatorT > &BufferRef, handler &CommandGroupHandler, order_tag_t< Order >, scope_tag_t< Scope >, const property_list &PropertyList={})
 
template<int Dims = Dimensions>
 operator typename detail::enable_if_t< Dims==0, reference > () const
 
template<int Dims = Dimensions>
detail::enable_if_t<(Dims > 0), referenceoperator[] (id< Dimensions > Index) const
 
template<int Dims = Dimensions>
detail::enable_if_t< Dims==1, referenceoperator[] (size_t Index) const
 

Detailed Description

template<typename DataT, int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
class sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >

Definition at line 42 of file atomic_accessor.hpp.

Member Typedef Documentation

◆ reference

template<typename DataT , int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
using sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >::reference = atomic_ref<DataT, DefaultOrder, DefaultScope, AccessorT::AS>

Definition at line 63 of file atomic_accessor.hpp.

◆ value_type

template<typename DataT , int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
using sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >::value_type = DataT

Definition at line 62 of file atomic_accessor.hpp.

Constructor & Destructor Documentation

◆ atomic_accessor() [1/2]

template<typename DataT , int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
template<typename T = DataT, int Dims = Dimensions, typename AllocatorT , memory_order Order, memory_scope Scope>
sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >::atomic_accessor ( buffer< T, Dims, AllocatorT > &  BufferRef,
order_tag_t< Order >  ,
scope_tag_t< Scope >  ,
const property_list PropertyList = {} 
)
inline

Definition at line 70 of file atomic_accessor.hpp.

◆ atomic_accessor() [2/2]

template<typename DataT , int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
template<typename T = DataT, int Dims = Dimensions, typename AllocatorT , memory_order Order, memory_scope Scope>
sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >::atomic_accessor ( buffer< T, Dims, AllocatorT > &  BufferRef,
handler CommandGroupHandler,
order_tag_t< Order >  ,
scope_tag_t< Scope >  ,
const property_list PropertyList = {} 
)
inline

Definition at line 76 of file atomic_accessor.hpp.

Member Function Documentation

◆ operator typename detail::enable_if_t< Dims==0, reference >()

template<typename DataT , int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
template<int Dims = Dimensions>
sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >::operator typename detail::enable_if_t< Dims==0, reference > ( ) const
inline

Definition at line 83 of file atomic_accessor.hpp.

References sycl::_V1::detail::getLinearIndex().

◆ operator[]() [1/2]

template<typename DataT , int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
template<int Dims = Dimensions>
detail::enable_if_t<(Dims > 0), reference> sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >::operator[] ( id< Dimensions Index) const
inline

Definition at line 90 of file atomic_accessor.hpp.

References sycl::_V1::detail::getLinearIndex().

◆ operator[]() [2/2]

template<typename DataT , int Dimensions, memory_order DefaultOrder, memory_scope DefaultScope, access::target AccessTarget = access::target::device, access::placeholder IsPlaceholder = access::placeholder::false_t>
template<int Dims = Dimensions>
detail::enable_if_t<Dims == 1, reference> sycl::_V1::ext::oneapi::atomic_accessor< DataT, Dimensions, DefaultOrder, DefaultScope, AccessTarget, IsPlaceholder >::operator[] ( size_t  Index) const
inline

Definition at line 97 of file atomic_accessor.hpp.

References sycl::_V1::detail::getLinearIndex().


The documentation for this class was generated from the following file: