DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
cl::sycl::atomic< T, addressSpace > Class Template Reference

#include <CL/sycl/atomic.hpp>

Public Member Functions

template<typename pointerT >
 atomic (multi_ptr< pointerT, addressSpace > ptr)
 
void store (T Operand, memory_order Order=memory_order::relaxed)
 
T load (memory_order Order=memory_order::relaxed) const
 
T exchange (T Operand, memory_order Order=memory_order::relaxed)
 
bool compare_exchange_strong (T &Expected, T Desired, memory_order SuccessOrder=memory_order::relaxed, memory_order FailOrder=memory_order::relaxed)
 
T fetch_add (T Operand, memory_order Order=memory_order::relaxed)
 
T fetch_sub (T Operand, memory_order Order=memory_order::relaxed)
 
T fetch_and (T Operand, memory_order Order=memory_order::relaxed)
 
T fetch_or (T Operand, memory_order Order=memory_order::relaxed)
 
T fetch_xor (T Operand, memory_order Order=memory_order::relaxed)
 
T fetch_min (T Operand, memory_order Order=memory_order::relaxed)
 
T fetch_max (T Operand, memory_order Order=memory_order::relaxed)
 

Friends

class atomic< T, access::address_space::global_space >
 

Detailed Description

template<typename T, access::address_space addressSpace = access::address_space::global_space>
class cl::sycl::atomic< T, addressSpace >

Definition at line 171 of file atomic.hpp.

Constructor & Destructor Documentation

◆ atomic()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
template<typename pointerT >
cl::sycl::atomic< T, addressSpace >::atomic ( multi_ptr< pointerT, addressSpace >  ptr)
inline

Definition at line 189 of file atomic.hpp.

Member Function Documentation

◆ compare_exchange_strong()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
bool cl::sycl::atomic< T, addressSpace >::compare_exchange_strong ( T Expected,
T  Desired,
memory_order  SuccessOrder = memory_order::relaxed,
memory_order  FailOrder = memory_order::relaxed 
)
inline

◆ exchange()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::exchange ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ fetch_add()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::fetch_add ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ fetch_and()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::fetch_and ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ fetch_max()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::fetch_max ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ fetch_min()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::fetch_min ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ fetch_or()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::fetch_or ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ fetch_sub()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::fetch_sub ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ fetch_xor()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::fetch_xor ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

◆ load()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
T cl::sycl::atomic< T, addressSpace >::load ( memory_order  Order = memory_order::relaxed) const
inline

◆ store()

template<typename T , access::address_space addressSpace = access::address_space::global_space>
void cl::sycl::atomic< T, addressSpace >::store ( T  Operand,
memory_order  Order = memory_order::relaxed 
)
inline

Friends And Related Function Documentation

◆ atomic< T, access::address_space::global_space >

template<typename T , access::address_space addressSpace = access::address_space::global_space>
friend class atomic< T, access::address_space::global_space >
friend

Definition at line 172 of file atomic.hpp.


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