Fermat
Classes | Typedefs | Functions
Atomics Module

Detailed Description

This module implements basic host/device atomic counters.

Classes

struct  cugar::AtomicInt< intT >
 

Typedefs

typedef AtomicInt< int > cugar::AtomicInt32
 
typedef AtomicInt< int64 > cugar::AtomicInt64
 

Functions

void cugar::host_release_fence ()
 
void cugar::host_acquire_fence ()
 
int32 cugar::host_atomic_add (int32 *value, const int32 op)
 
uint32 cugar::host_atomic_add (uint32 *value, const uint32 op)
 
int64 cugar::host_atomic_add (int64 *value, const int64 op)
 
uint64 cugar::host_atomic_add (uint64 *value, const uint64 op)
 
int32 cugar::host_atomic_sub (int32 *value, const int32 op)
 
uint32 cugar::host_atomic_sub (uint32 *value, const uint32 op)
 
int64 cugar::host_atomic_sub (int64 *value, const int64 op)
 
uint64 cugar::host_atomic_sub (uint64 *value, const uint64 op)
 
uint32 cugar::host_atomic_or (uint32 *value, const uint32 op)
 
uint64 cugar::host_atomic_or (uint64 *value, const uint64 op)
 
CUGAR_API int32 cugar::host_atomic_increment (int32 *value)
 
CUGAR_API int64 cugar::host_atomic_increment (int64 *value)
 
CUGAR_API int32 cugar::host_atomic_decrement (int32 *value)
 
CUGAR_API int64 cugar::host_atomic_decrement (int64 *value)
 
CUGAR_API float cugar::host_atomic_add (float *value, const float op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE float cugar::atomic_add (float *value, const float op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_add (int32 *value, const int32 op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint32 cugar::atomic_add (uint32 *value, const uint32 op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint64 cugar::atomic_add (uint64 *value, const uint64 op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_sub (int32 *value, const int32 op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint32 cugar::atomic_sub (uint32 *value, const uint32 op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint32 cugar::atomic_or (uint32 *value, const uint32 op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint64 cugar::atomic_or (uint64 *value, const uint64 op)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_increment (int32 *value)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int64 cugar::atomic_increment (int64 *value)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_decrement (int32 *value)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int64 cugar::atomic_decrement (int64 *value)
 

Function Documentation

◆ atomic_add() [1/4]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE float cugar::atomic_add ( float *  value,
const float  op 
)

atomic add: returns the value BEFORE the addition

◆ atomic_add() [2/4]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_add ( int32 *  value,
const int32  op 
)

atomic add: returns the value BEFORE the addition

◆ atomic_add() [3/4]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint32 cugar::atomic_add ( uint32 *  value,
const uint32  op 
)

atomic add: returns the value BEFORE the addition

◆ atomic_add() [4/4]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint64 cugar::atomic_add ( uint64 *  value,
const uint64  op 
)

atomic add: returns the value BEFORE the addition

◆ atomic_decrement() [1/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_decrement ( int32 *  value)

atomic decrement: returns the value BEFORE the decrement

◆ atomic_decrement() [2/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int64 cugar::atomic_decrement ( int64 *  value)

atomic decrement: returns the value BEFORE the decrement

◆ atomic_increment() [1/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_increment ( int32 *  value)

atomic increment: returns the value BEFORE the increment

◆ atomic_increment() [2/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int64 cugar::atomic_increment ( int64 *  value)

atomic increment: returns the value BEFORE the increment

◆ atomic_or() [1/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint32 cugar::atomic_or ( uint32 *  value,
const uint32  op 
)

atomic OR: returns the value BEFORE the or

◆ atomic_or() [2/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint64 cugar::atomic_or ( uint64 *  value,
const uint64  op 
)

atomic OR: returns the value BEFORE the or

◆ atomic_sub() [1/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE int32 cugar::atomic_sub ( int32 *  value,
const int32  op 
)

atomic subtract: returns the value BEFORE the suctraction

◆ atomic_sub() [2/2]

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE uint32 cugar::atomic_sub ( uint32 *  value,
const uint32  op 
)

atomic subtract: returns the value BEFORE the suctraction