17 namespace memory_scope
40 concept MemoryScope = std::derived_from<T, memory_scope::MemoryScopeTag>;
46 template<
typename TMemFence, MemoryOrder TMemOrder, MemoryScope TMemScope,
typename TSfinae =
void>
49 template<
typename TAcc>
52 template<
typename TAcc>
55 template<
typename TAcc>
79 template<
typename TMemFence, MemoryOrder TMemOrder, MemoryScope TMemScope>
83 if constexpr(std::is_same_v<TMemOrder, mem_order::Relaxed>)
100 template<
typename TMemFence, MemoryScope TMemScope>
104 mem_fence(fence, trait::MemFenceDefaultOrder_v<ImplementationBase>, scope);
#define ALPAKA_FN_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
#define ALPAKA_NO_HOST_ACC_WARNING
Disable nvcc warning: 'calling a host function from host device function.' Usage: ALPAKA_NO_HOST_ACC_...
typename detail::ImplementationBaseType< TInterface, TDerived >::type ImplementationBase
Returns the type that implements the given interface in the inheritance hierarchy.
typename MemFenceDefaultOrder< TAcc >::type MemFenceDefaultOrder_t
constexpr auto MemFenceDefaultOrder_v
The alpaka accelerator library.
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_ACC auto mem_fence(TMemFence const &fence, TMemOrder order, TMemScope const &scope) -> void
Issues memory fence instructions.
Memory fences are observed by all threads in the same block.
Memory fences are observed by all threads on the device.
Memory fences are observed by all threads in the same grid.