stdgpu/atomic.cuh File Reference

stdgpu/atomic.cuh File Reference#

stdgpu: stdgpu/atomic.cuh File Reference
stdgpu Latest
Efficient STL-like Data Structures on the GPU
atomic.cuh File Reference

Classes

class  stdgpu::atomic< T, Allocator >
 
class  stdgpu::atomic_ref< T >
 

Typedefs

using stdgpu::atomic_int = atomic< int >
 
using stdgpu::atomic_uint = atomic< unsigned int >
 
using stdgpu::atomic_ullong = atomic< unsigned long long int >
 

Enumerations

enum  stdgpu::memory_order {
  stdgpu::memory_order_relaxed , stdgpu::memory_order_consume , stdgpu::memory_order_acquire , stdgpu::memory_order_release ,
  stdgpu::memory_order_acq_rel , stdgpu::memory_order_seq_cst
}
 

Functions

template<typename T , typename Allocator >
STDGPU_DEVICE_ONLY bool stdgpu::atomic_compare_exchange_strong (atomic< T, Allocator > *obj, typename atomic< T, Allocator >::value_type *expected, const typename atomic< T, Allocator >::value_type desired) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLY bool stdgpu::atomic_compare_exchange_weak (atomic< T, Allocator > *obj, typename atomic< T, Allocator >::value_type *expected, const typename atomic< T, Allocator >::value_type desired) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_exchange (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::value_type desired) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_exchange_explicit (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::value_type desired, const memory_order order) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_add (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_add_explicit (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg, const memory_order order) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_and (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_and_explicit (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg, const memory_order order) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_or (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_or_explicit (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg, const memory_order order) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_sub (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_sub_explicit (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg, const memory_order order) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_xor (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg) noexcept
 
template<typename T , typename Allocator >
STDGPU_DEVICE_ONLYstdgpu::atomic_fetch_xor_explicit (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::difference_type arg, const memory_order order) noexcept
 
template<typename T , typename Allocator >
STDGPU_HOST_DEVICE bool stdgpu::atomic_is_lock_free (const atomic< T, Allocator > *obj) noexcept
 
template<typename T , typename Allocator >
STDGPU_HOST_DEVICEstdgpu::atomic_load (const atomic< T, Allocator > *obj) noexcept
 
template<typename T , typename Allocator >
STDGPU_HOST_DEVICEstdgpu::atomic_load_explicit (const atomic< T, Allocator > *obj, const memory_order order) noexcept
 
STDGPU_DEVICE_ONLY void stdgpu::atomic_signal_fence (const memory_order order) noexcept
 
template<typename T , typename Allocator >
STDGPU_HOST_DEVICE void stdgpu::atomic_store (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::value_type desired) noexcept
 
template<typename T , typename Allocator >
STDGPU_HOST_DEVICE void stdgpu::atomic_store_explicit (atomic< T, Allocator > *obj, const typename atomic< T, Allocator >::value_type desired, const memory_order order) noexcept
 
STDGPU_DEVICE_ONLY void stdgpu::atomic_thread_fence (const memory_order order) noexcept