NVBIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Functions
Atomics

Detailed Description

This module implements basic host/device atomic counters.

Classes

struct  nvbio::AtomicInt32
 an atomic integer class More...
 
struct  nvbio::AtomicInt64
 

Macros

#define ASM_ATOMICS
 

Functions

void nvbio::host_release_fence ()
 
void nvbio::host_acquire_fence ()
 
int32 nvbio::host_atomic_add (int32 *value, const int32 op)
 
uint32 nvbio::host_atomic_add (uint32 *value, const uint32 op)
 
int64 nvbio::host_atomic_add (int64 *value, const int64 op)
 
uint64 nvbio::host_atomic_add (uint64 *value, const uint64 op)
 
int32 nvbio::host_atomic_sub (int32 *value, const int32 op)
 
uint32 nvbio::host_atomic_sub (uint32 *value, const uint32 op)
 
int64 nvbio::host_atomic_sub (int64 *value, const int64 op)
 
uint64 nvbio::host_atomic_sub (uint64 *value, const uint64 op)
 
uint32 nvbio::host_atomic_or (uint32 *value, const uint32 op)
 
uint64 nvbio::host_atomic_or (uint64 *value, const uint64 op)
 
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE int32 
nvbio::atomic_add (int32 *value, const int32 op)
 
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
nvbio::atomic_add (uint32 *value, const uint32 op)
 
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint64 
nvbio::atomic_add (uint64 *value, const uint64 op)
 
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE int32 
nvbio::atomic_sub (int32 *value, const int32 op)
 
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
nvbio::atomic_sub (uint32 *value, const uint32 op)
 
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
nvbio::atomic_or (uint32 *value, const uint32 op)
 
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint64 
nvbio::atomic_or (uint64 *value, const uint64 op)
 
bool nvbio::operator== (const long a, const AtomicInt64 &b)
 comparisons More...
 
bool nvbio::operator!= (const long a, const AtomicInt64 &b)
 
bool nvbio::operator>= (const long a, const AtomicInt64 &b)
 
bool nvbio::operator<= (const long a, const AtomicInt64 &b)
 
bool nvbio::operator> (const long a, const AtomicInt64 &b)
 
bool nvbio::operator< (const long a, const AtomicInt64 &b)
 
bool nvbio::operator== (const int a, const AtomicInt32 &b)
 
bool nvbio::operator!= (const int a, const AtomicInt32 &b)
 
bool nvbio::operator>= (const int a, const AtomicInt32 &b)
 
bool nvbio::operator<= (const int a, const AtomicInt32 &b)
 
bool nvbio::operator> (const int a, const AtomicInt32 &b)
 
bool nvbio::operator< (const int a, const AtomicInt32 &b)
 

Macro Definition Documentation

#define ASM_ATOMICS

Definition at line 208 of file atomics.h.

Function Documentation

NVBIO_FORCEINLINE NVBIO_HOST_DEVICE int32 nvbio::atomic_add ( int32 *  value,
const int32  op 
)

Definition at line 75 of file atomics.h.

NVBIO_FORCEINLINE NVBIO_HOST_DEVICE uint32 nvbio::atomic_add ( uint32 *  value,
const uint32  op 
)

Definition at line 85 of file atomics.h.

NVBIO_FORCEINLINE NVBIO_HOST_DEVICE uint64 nvbio::atomic_add ( uint64 *  value,
const uint64  op 
)

Definition at line 95 of file atomics.h.

NVBIO_FORCEINLINE NVBIO_HOST_DEVICE uint32 nvbio::atomic_or ( uint32 *  value,
const uint32  op 
)

Definition at line 125 of file atomics.h.

NVBIO_FORCEINLINE NVBIO_HOST_DEVICE uint64 nvbio::atomic_or ( uint64 *  value,
const uint64  op 
)

Definition at line 135 of file atomics.h.

NVBIO_FORCEINLINE NVBIO_HOST_DEVICE int32 nvbio::atomic_sub ( int32 *  value,
const int32  op 
)

Definition at line 105 of file atomics.h.

NVBIO_FORCEINLINE NVBIO_HOST_DEVICE uint32 nvbio::atomic_sub ( uint32 *  value,
const uint32  op 
)

Definition at line 115 of file atomics.h.

void nvbio::host_acquire_fence ( )

Definition at line 57 of file atomics.cpp.

int32 nvbio::host_atomic_add ( int32 *  value,
const int32  op 
)

Definition at line 65 of file atomics.cpp.

uint32 nvbio::host_atomic_add ( uint32 *  value,
const uint32  op 
)

Definition at line 78 of file atomics.cpp.

int64 nvbio::host_atomic_add ( int64 *  value,
const int64  op 
)

Definition at line 91 of file atomics.cpp.

uint64 nvbio::host_atomic_add ( uint64 *  value,
const uint64  op 
)

Definition at line 104 of file atomics.cpp.

uint32 nvbio::host_atomic_or ( uint32 *  value,
const uint32  op 
)

Definition at line 171 of file atomics.cpp.

uint64 nvbio::host_atomic_or ( uint64 *  value,
const uint64  op 
)

Definition at line 184 of file atomics.cpp.

int32 nvbio::host_atomic_sub ( int32 *  value,
const int32  op 
)

Definition at line 117 of file atomics.cpp.

uint32 nvbio::host_atomic_sub ( uint32 *  value,
const uint32  op 
)

Definition at line 130 of file atomics.cpp.

int64 nvbio::host_atomic_sub ( int64 *  value,
const int64  op 
)

Definition at line 144 of file atomics.cpp.

uint64 nvbio::host_atomic_sub ( uint64 *  value,
const uint64  op 
)

Definition at line 157 of file atomics.cpp.

void nvbio::host_release_fence ( )

Definition at line 49 of file atomics.cpp.

bool nvbio::operator!= ( const long  a,
const AtomicInt64 &  b 
)
inline

Definition at line 451 of file atomics.h.

bool nvbio::operator!= ( const int  a,
const AtomicInt32 &  b 
)
inline

Definition at line 458 of file atomics.h.

bool nvbio::operator< ( const long  a,
const AtomicInt64 &  b 
)
inline

Definition at line 455 of file atomics.h.

bool nvbio::operator< ( const int  a,
const AtomicInt32 &  b 
)
inline

Definition at line 462 of file atomics.h.

bool nvbio::operator<= ( const long  a,
const AtomicInt64 &  b 
)
inline

Definition at line 453 of file atomics.h.

bool nvbio::operator<= ( const int  a,
const AtomicInt32 &  b 
)
inline

Definition at line 460 of file atomics.h.

bool nvbio::operator== ( const long  a,
const AtomicInt64 &  b 
)
inline

comparisons

Definition at line 450 of file atomics.h.

bool nvbio::operator== ( const int  a,
const AtomicInt32 &  b 
)
inline

Definition at line 457 of file atomics.h.

bool nvbio::operator> ( const long  a,
const AtomicInt64 &  b 
)
inline

Definition at line 454 of file atomics.h.

bool nvbio::operator> ( const int  a,
const AtomicInt32 &  b 
)
inline

Definition at line 461 of file atomics.h.

bool nvbio::operator>= ( const long  a,
const AtomicInt64 &  b 
)
inline

Definition at line 452 of file atomics.h.

bool nvbio::operator>= ( const int  a,
const AtomicInt32 &  b 
)
inline

Definition at line 459 of file atomics.h.