![]() |
alpaka
Abstraction Library for Parallel Kernel Acceleration
|
#include "alpaka/api/api.hpp"#include "alpaka/api/trait.hpp"#include "alpaka/core/common.hpp"#include "alpaka/onAcc/Acc.hpp"#include "alpaka/onAcc/internal/interface.hpp"#include "alpaka/onAcc/scope.hpp"#include "alpaka/operation.hpp"#include <type_traits>Go to the source code of this file.
Namespaces | |
| namespace | alpaka |
| main alpaka namespace. | |
| namespace | alpaka::onAcc |
| functionality which is usable on the accelerator compute device from within a kernel. | |
| namespace | alpaka::onAcc::atomic |
Functions | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicAdd (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic add operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicAnd (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic and operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicCas (auto const &acc, T *const addr, T const &compare, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic compare-and-swap operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicDec (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic decrement operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicExch (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic exchange operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicInc (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic increment operation. | |
| ALPAKA_FN_ACC void | alpaka::onAcc::atomic::atomicInvoke (auto &&fn, concepts::Acc auto const &acc, auto *inOut, auto &&... args) |
| Defines the equivalent of an atomic invoke for user defined functors. | |
| template<typename T> | |
| ALPAKA_FN_ACC void | alpaka::onAcc::atomic::atomicInvoke (std::plus< T >, concepts::Acc auto const &acc, auto *inOut, auto &&... args) |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicMax (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic max operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicMin (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic min operation. | |
| template<typename TOp, typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicOp (auto const &acc, T *const addr, T const &compare, T const &value, T_Scope const scope=T_Scope()) -> T |
| Executes the given operation atomically. | |
| template<typename TOp, typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicOp (auto const &acc, T *const addr, T const &value, T_Scope const scope=T_Scope()) -> T |
| Executes the given operation atomically. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicOr (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic or operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicSub (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic sub operation. | |
| template<typename T, typename T_Scope = scope::Device> | |
| constexpr auto | alpaka::onAcc::atomicXor (auto const &acc, T *const addr, T const &value, T_Scope const hier=T_Scope()) -> T |
| Executes an atomic xor operation. | |