![]() |
Block-Structured AMR Software Framework
|
#include <AMReX_Config.H>#include <AMReX_GpuQualifiers.H>#include <AMReX_Functional.H>#include <AMReX_INT.H>#include <utility>Go to the source code of this file.
Classes | |
| struct | amrex::Gpu::AtomicAdd< T > |
| struct | amrex::Gpu::AtomicMin< T > |
| struct | amrex::Gpu::AtomicMax< T > |
| struct | amrex::Gpu::AtomicLogicalAnd< T > |
| struct | amrex::Gpu::AtomicLogicalOr< T > |
Namespaces | |
| namespace | amrex |
| namespace | amrex::Gpu |
| namespace | amrex::Gpu::Atomic |
| namespace | amrex::HostDevice |
| namespace | amrex::HostDevice::Atomic |
Functions | |
| template<class T > | |
| __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Add_device (T *const sum, T const value) noexcept |
| __device__ AMREX_FORCE_INLINE Long | amrex::Gpu::Atomic::Add_device (Long *const sum, Long const value) noexcept |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Add (T *sum, T value) noexcept |
| template<typename T , typename Op , typename Cond > requires (sizeof(T) == sizeof(unsigned int)) | |
| __device__ AMREX_FORCE_INLINE bool | amrex::Gpu::Atomic::If_device (T *const sum, T const value, Op &&op, Cond &&cond) noexcept |
| template<typename T , typename Op , typename Cond > requires (sizeof(T) == sizeof(unsigned long long)) | |
| __device__ AMREX_FORCE_INLINE bool | amrex::Gpu::Atomic::If_device (T *const sum, T const value, Op &&op, Cond &&cond) noexcept |
| template<class T , class Op , class Cond > | |
| __host__ __device__ AMREX_FORCE_INLINE bool | amrex::Gpu::Atomic::If (T *const add, T const value, Op &&op, Cond &&cond) noexcept |
| Conditionally perform an atomic operation. | |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE void | amrex::Gpu::Atomic::AddNoRet (T *sum, T value) noexcept |
| template<class T > | |
| __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Min_device (T *const m, T const value) noexcept |
| __device__ AMREX_FORCE_INLINE float | amrex::Gpu::Atomic::Min_device (float *const m, float const value) noexcept |
| __device__ AMREX_FORCE_INLINE double | amrex::Gpu::Atomic::Min_device (double *const m, double const value) noexcept |
| __device__ AMREX_FORCE_INLINE Long | amrex::Gpu::Atomic::Min_device (Long *const m, Long const value) noexcept |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Min (T *const m, T const value) noexcept |
| template<class T > | |
| __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Max_device (T *const m, T const value) noexcept |
| __device__ AMREX_FORCE_INLINE float | amrex::Gpu::Atomic::Max_device (float *const m, float const value) noexcept |
| __device__ AMREX_FORCE_INLINE double | amrex::Gpu::Atomic::Max_device (double *const m, double const value) noexcept |
| __device__ AMREX_FORCE_INLINE Long | amrex::Gpu::Atomic::Max_device (Long *const m, Long const value) noexcept |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Max (T *const m, T const value) noexcept |
| __host__ __device__ AMREX_FORCE_INLINE int | amrex::Gpu::Atomic::LogicalOr (int *const m, int const value) noexcept |
| __host__ __device__ AMREX_FORCE_INLINE int | amrex::Gpu::Atomic::LogicalAnd (int *const m, int const value) noexcept |
| template<typename T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Exch (T *address, T val) noexcept |
| template<typename T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::CAS (T *const address, T compare, T const val) noexcept |
| template<typename T > requires (sizeof(T) == sizeof(int)) | |
| __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Multiply_device (T *const prod, T const value) noexcept |
| template<typename T > requires (sizeof(T) == sizeof(unsigned long long)) | |
| __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Multiply_device (T *const prod, T const value) noexcept |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Multiply (T *const prod, T const value) noexcept |
| template<typename T > requires (sizeof(T) == sizeof(int)) | |
| __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Divide_device (T *const quot, T const value) noexcept |
| template<typename T > requires (sizeof(T) == sizeof(unsigned long long)) | |
| __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Divide_device (T *const quot, T const value) noexcept |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::Gpu::Atomic::Divide (T *const quot, T const value) noexcept |
| template<class T > | |
| AMREX_FORCE_INLINE void | amrex::HostDevice::Atomic::Add_Host (T *const sum, T const value) noexcept |
| template<class T > | |
| AMREX_FORCE_INLINE T | amrex::HostDevice::Atomic::FetchAdd_Host (T *const sum, T const value) noexcept |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE void | amrex::HostDevice::Atomic::Add (T *const sum, T const value) noexcept |
| template<class T > | |
| __host__ __device__ AMREX_FORCE_INLINE T | amrex::HostDevice::Atomic::FetchAdd (T *const sum, T const value) noexcept |