alpaka
Abstraction Library for Parallel Kernel Acceleration
AtomicUniformCudaHip.hpp File Reference
#include "alpaka/atomic/Op.hpp"
#include "alpaka/core/BoostPredef.hpp"
#include "alpaka/core/Positioning.hpp"
#include "alpaka/core/Utility.hpp"
#include <type_traits>

Go to the source code of this file.

Classes

class  alpaka::AtomicUniformCudaHipBuiltIn
 The GPU CUDA/HIP accelerator atomic ops. More...
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< TOp, T, THierarchy, TSfinae >
 Provide an interface to builtin atomic functions. More...
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicAdd, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicAdd_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicAdd, T, THierarchy, typename std::void_t< decltype(atomicAdd(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicAnd, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicAnd_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicAnd, T, THierarchy, typename std::void_t< decltype(atomicAnd(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicCas, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicCAS_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicCas, T, THierarchy, typename std::void_t< decltype(atomicCAS(alpaka::core::declval< T * >(), alpaka::core::declval< T >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicDec, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicDec_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicDec, T, THierarchy, typename std::void_t< decltype(atomicDec(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicExch, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicExch_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicExch, T, THierarchy, typename std::void_t< decltype(atomicExch(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicInc, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicInc_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicInc, T, THierarchy, typename std::void_t< decltype(atomicInc(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicMax, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicMax_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicMax, T, THierarchy, typename std::void_t< decltype(atomicMax(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicMin, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicMin_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicMin, T, THierarchy, typename std::void_t< decltype(atomicMin(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicOr, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicOr_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicOr, T, THierarchy, typename std::void_t< decltype(atomicOr(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicSub, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicSub_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicSub, T, THierarchy, typename std::void_t< decltype(atomicSub(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicXor, T, alpaka::hierarchy::Threads, typename std::void_t< decltype(atomicXor_block(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 
struct  alpakaGlobal::AlpakaBuiltInAtomic< alpaka::AtomicXor, T, THierarchy, typename std::void_t< decltype(atomicXor(alpaka::core::declval< T * >(), alpaka::core::declval< T >()))> >
 

Namespaces

 alpaka
 The alpaka accelerator library.
 
 alpakaGlobal
 These types must be in the global namespace for checking existence of respective functions in global namespace via SFINAE, so we use inline namespace.
 

Macros

#define CLANG_CUDA_PTX_WORKAROUND    (BOOST_COMP_CLANG && BOOST_LANG_CUDA && BOOST_ARCH_PTX < BOOST_VERSION_NUMBER(6, 0, 0))
 clang is providing a builtin for different atomic functions even if these is not supported for architectures < 6.0 More...
 

Macro Definition Documentation

◆ CLANG_CUDA_PTX_WORKAROUND

#define CLANG_CUDA_PTX_WORKAROUND    (BOOST_COMP_CLANG && BOOST_LANG_CUDA && BOOST_ARCH_PTX < BOOST_VERSION_NUMBER(6, 0, 0))

clang is providing a builtin for different atomic functions even if these is not supported for architectures < 6.0

Definition at line 38 of file AtomicUniformCudaHip.hpp.