20namespace alpaka::onAcc::internalCompute
25#if defined(__GNUC__) && !defined(__clang__)
26# pragma GCC diagnostic push
27# pragma GCC diagnostic ignored "-Wtsan"
30 constexpr void hostMemoryFenceImpl(
auto const&,
auto const scope, concepts::MemoryOrder
auto const order)
32 using ScopeT = std::remove_cvref_t<
decltype(
scope)>;
35 if constexpr(!std::same_as<ScopeT, scope::Block>)
37 std::atomic_thread_fence(MemOrderHost::get(order));
40#if defined(__GNUC__) && !defined(__clang__)
41# pragma GCC diagnostic pop
46 template<
typename T_Scope, concepts::MemoryOrder T_Order>
47 struct MemoryFence::Op<
api::Host, T_Scope, T_Order>
49 void operator()(onAcc::concepts::Acc<api::Host>
auto const& acc, T_Scope
const scope, T_Order
const order)
52 detail::hostMemoryFenceImpl(acc[object::exec], scope, order);
auto scope(concepts::Level auto logLvl, std::source_location const &location=std::source_location::current())
Log the entry and exit of a scope.