24 template<
typename T_Api,
typename T_Scope, concepts::MemoryOrder T_Order>
25 requires std::same_as<T_Api, api::Hip>
29 onAcc::concepts::Acc
auto const&,
31 [[maybe_unused]] T_Order
const order)
const
35 if constexpr(std::is_same_v<T_Scope, scope::Block>)
37 __builtin_amdgcn_fence(MemOrderHip::get(order),
"workgroup");
39 else if constexpr(std::is_same_v<T_Scope, scope::Device>)
41 __builtin_amdgcn_fence(MemOrderHip::get(order),
"agent");
43 else if constexpr(std::is_same_v<T_Scope, scope::System>)
46 __builtin_amdgcn_fence(MemOrderHip::get(order),
"");
#define ALPAKA_FN_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
constexpr void operator()(T_Acc const &acc, T_MemoryOrder const order, T_Scope const scope) const