alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
AtomicHierarchy.hpp
Go to the documentation of this file.
1/* Copyright 2020 Benjamin Worpitz, René Widera, Bernhard Manfred Gruber
2 * SPDX-License-Identifier: MPL-2.0
3 */
4
5#pragma once
6
10
11#include <tuple>
12
13namespace alpaka
14{
15 //! build a single class to inherit from different atomic implementations
16 //
17 // This implementation inherit from all three hierarchies.
18 // The multiple usage of the same type for different levels is allowed.
19 // The class provide the feature that each atomic operation can be focused
20 // to a hierarchy level in alpaka. A operation to a hierarchy is independent
21 // to the memory hierarchy.
22 //
23 // \tparam TGridAtomic atomic implementation for atomic operations between grids within a device
24 // \tparam TBlockAtomic atomic implementation for atomic operations between blocks within a grid
25 // \tparam TThreadAtomic atomic implementation for atomic operations between threads within a block
26 template<typename TGridAtomic, typename TBlockAtomic, typename TThreadAtomic>
28 TGridAtomic,
29 TBlockAtomic,
30 TThreadAtomic,
34} // namespace alpaka
typename detail::UniqueImpl< TList >::type Unique
Trait that returns a list with only unique (no equal) types (a set). Duplicates will be filtered out.
Definition Unique.hpp:40
The alpaka accelerator library.
Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is im...
Definition Interface.hpp:15