26 template<alpaka::onAcc::concepts::Acc T_Acc>
29 return T_Acc::getWarpSize();
35 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api>
40 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp Activemask implementation for the accelerator.");
48 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api>
53 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp GetLaneIdx implementation for the accelerator.");
69 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api>
74 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp GetWarpIdx implementation for the accelerator.");
90 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api>
93 constexpr bool operator()(T_Acc
const&, T_Api, int32_t predicate)
const
95 alpaka::unused(predicate);
96 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp All implementation for the accelerator.");
104 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api>
107 constexpr bool operator()(T_Acc
const&, T_Api, int32_t predicate)
const
109 alpaka::unused(predicate);
110 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp Any implementation for the accelerator.");
118 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api>
121 constexpr auto operator()(T_Acc
const&, T_Api, int32_t predicate)
const
123 alpaka::unused(predicate);
124 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp Ballot implementation for the accelerator.");
132 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api,
typename T>
135 constexpr T
operator()(T_Acc
const&, T_Api, T
const& value, uint32_t srcLane, uint32_t width)
const
137 alpaka::unused(value, srcLane, width);
138 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp Shfl implementation for the accelerator.");
146 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api,
typename T>
149 constexpr T
operator()(T_Acc
const&, T_Api, T
const& value, uint32_t delta, uint32_t width)
const
151 alpaka::unused(value, delta, width);
152 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp ShflDown implementation for the accelerator.");
160 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api,
typename T>
163 constexpr T
operator()(T_Acc
const&, T_Api, T
const& value, uint32_t delta, uint32_t width)
const
165 alpaka::unused(value, delta, width);
166 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp ShflUp implementation for the accelerator.");
174 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api,
typename T>
177 constexpr T
operator()(T_Acc
const&, T_Api, T
const& value, uint32_t laneMask, uint32_t width)
const
179 alpaka::unused(value, laneMask, width);
180 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp ShflXor implementation for the accelerator.");
#define ALPAKA_TYPEOF(...)
Get the type of instance.
Concept to check if a type is an accelerator.
constexpr uint32_t getWarpIdx(alpaka::onAcc::concepts::Acc auto const &acc)
Return the warp index within the block.
constexpr uint32_t getSize()
constexpr uint32_t getLaneIdx(alpaka::onAcc::concepts::Acc auto const &acc)
Return the lane index of the current thread within its warp.
constexpr auto operator()(T_Acc const &, T_Api) const
Retrieve a bit-mask describing which warp lanes are active.
constexpr bool operator()(T_Acc const &, T_Api, int32_t predicate) const
constexpr bool operator()(T_Acc const &, T_Api, int32_t predicate) const
constexpr auto operator()(T_Acc const &, T_Api, int32_t predicate) const
constexpr auto operator()(T_Acc const &, T_Api) const
constexpr auto operator()(T_Acc const &, T_Api) const
constexpr T operator()(T_Acc const &, T_Api, T const &value, uint32_t delta, uint32_t width) const
constexpr T operator()(T_Acc const &, T_Api, T const &value, uint32_t delta, uint32_t width) const
constexpr T operator()(T_Acc const &, T_Api, T const &value, uint32_t laneMask, uint32_t width) const
constexpr T operator()(T_Acc const &, T_Api, T const &value, uint32_t srcLane, uint32_t width) const