24namespace alpaka::onAcc::warp::internal
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>
38 constexpr auto operator()(T_Acc
const&, T_Api)
const
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>
51 constexpr auto operator()(T_Acc
const&, T_Api)
const
53 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp GetLaneIdx implementation for the accelerator.");
60 constexpr uint32_t getLaneIdx(alpaka::onAcc::concepts::Acc
auto const& acc)
64 return GetLaneIdx::Op<Acc, Api>{}(acc, Api{});
69 template<alpaka::onAcc::concepts::Acc T_Acc, alpaka::concepts::Api T_Api>
72 constexpr auto operator()(T_Acc
const&, T_Api)
const
74 static_assert(
sizeof(T_Acc) &&
false,
"Missing warp GetWarpIdx implementation for the accelerator.");
81 constexpr uint32_t getWarpIdx(alpaka::onAcc::concepts::Acc
auto const& acc)
85 return GetWarpIdx::Op<Acc, Api>{}(acc, Api{});
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.
constexpr uint32_t getSize()
Return the warp size.