39 template<
typename TOp>
48 result +=
static_cast<int>(value);
58 result &=
static_cast<int>(value);
68 result |=
static_cast<int>(value);
73 template<
typename TOp>
88 ++blockSync.m_generation;
89 blockSync.m_result[blockSync.m_generation % 2u] = TOp::InitialValue;
92 auto const generationMod2(blockSync.m_generation % 2u);
93 int& result(blockSync.m_result[generationMod2]);
94 bool const predicateBool(predicate != 0);
103 return blockSync.m_result[generationMod2];
The OpenMP barrier block synchronization.
std::uint8_t m_generation
#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_...
The alpaka accelerator library.
The logical and function object.
The counting function object.
The logical or function object.
Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is im...
ALPAKA_NO_HOST_ACC_WARNING static ALPAKA_FN_ACC auto syncBlockThreadsPredicate(BlockSyncBarrierOmp const &blockSync, int predicate) -> int
The block synchronization and predicate operation trait.
static ALPAKA_FN_HOST auto syncBlockThreads(BlockSyncBarrierOmp const &) -> void
The block synchronization operation trait.
void operator()(int &result, bool value)
void operator()(int &result, bool value)
void operator()(int &result, bool value)