18 template<alpaka::onAcc::concepts::Acc T_Acc>
21 constexpr __device__
auto operator()(T_Acc
const&, api::Hip)
const
27 template<alpaka::onAcc::concepts::Acc T_Acc>
30 constexpr __device__
auto operator()(T_Acc
const&, api::Hip)
const
37 template<alpaka::onAcc::concepts::Acc T_Acc>
40 constexpr __device__ uint32_t
operator()(T_Acc
const& acc, api::Hip)
const
43 alpaka::concepts::Vector
auto blockThreadCount
44 = acc.getExtentsOf(onAcc::origin::block, onAcc::unit::threads);
45 alpaka::concepts::Vector
auto threadIdxInBlock
46 = acc.getIdxWithin(alpaka::onAcc::origin::block, alpaka::onAcc::unit::threads);
47 return linearize(blockThreadCount, threadIdxInBlock) / warpExtent;
51 template<alpaka::onAcc::concepts::Acc T_Acc>
54 constexpr __device__
bool operator()(T_Acc
const&, api::Hip, int32_t predicate)
const
56 return __all(
static_cast<int>(predicate)) != 0u;
60 template<alpaka::onAcc::concepts::Acc T_Acc>
63 constexpr __device__
bool operator()(T_Acc
const&, api::Hip, int32_t predicate)
const
65 return __any(
static_cast<int>(predicate)) != 0;
69 template<alpaka::onAcc::concepts::Acc T_Acc>
72 constexpr __device__
auto operator()(T_Acc
const&, api::Hip, int32_t predicate)
const
74 return __ballot(
static_cast<int>(predicate));
78 template<alpaka::onAcc::concepts::Acc T_Acc,
typename T>
81 constexpr __device__ T
82 operator()(T_Acc
const&, api::Hip, T
const& value, uint32_t srcLane, uint32_t width)
const
84 return __shfl(value,
static_cast<int>(srcLane),
static_cast<int>(width));
88 template<alpaka::onAcc::concepts::Acc T_Acc,
typename T>
91 constexpr __device__ T
operator()(T_Acc
const&, api::Hip, T
const& value, uint32_t delta, uint32_t width)
const
93 return __shfl_down(value,
static_cast<int>(delta),
static_cast<int>(width));
97 template<alpaka::onAcc::concepts::Acc T_Acc,
typename T>
100 constexpr __device__ T
operator()(T_Acc
const&, api::Hip, T
const& value, uint32_t delta, uint32_t width)
const
102 return __shfl_up(value,
static_cast<int>(delta),
static_cast<int>(width));
106 template<alpaka::onAcc::concepts::Acc T_Acc,
typename T>
109 constexpr __device__ T
110 operator()(T_Acc
const&, api::Hip, T
const& value, uint32_t laneMask, uint32_t width)
const
112 return __shfl_xor(value,
static_cast<int>(laneMask),
static_cast<int>(width));
constexpr uint32_t getSize()
constexpr T_IntegralType linearize(Vec< T_IntegralType, T_dim - 1u, T_Storage > const &dim, Vec< T_IntegralType, T_dim, T_OtherStorage > const &idx)
Give the linear index of an N-dimensional index within an N-dimensional index space.
constexpr auto operator()(T_Acc const &, T_Api) const
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