|
| constexpr auto const & | asParent () const |
| ALPAKA_FN_INLINE constexpr auto | getReducer (onAcc::concepts::Acc auto const &, auto &&reduceOp) const |
| | Get the reducer functor.
|
| ALPAKA_FN_INLINE constexpr auto | getReducer (onAcc::concepts::Acc auto const &acc, auto &&reduceOp) const |
| template<uint32_t T_simdWidth, uint32_t T_numSimdPerFnCall, alpaka::concepts::Alignment T_MemAlignment> |
| ALPAKA_FN_INLINE ALPAKA_FN_ACC constexpr auto | reduceSimdPackExecution (auto const &acc, alpaka::concepts::Vector auto numElements, auto const &neutralElement, auto &&userReduceFunc, auto &&func, alpaka::concepts::IDataSource auto &&data0, alpaka::concepts::IDataSource auto &&... dataN) const |
|
| template<alpaka::concepts::Alignment T_MemAlignment, uint32_t T_width> |
| static ALPAKA_FN_INLINE constexpr auto | executeDoTransform (concepts::Acc auto const &acc, auto const &dataIdx, auto &&func, alpaka::concepts::IDataSource auto &&... data) |
| template<alpaka::concepts::Alignment T_MemAlignment, uint32_t T_width, uint32_t... T_repeat> |
| static ALPAKA_FN_INLINE constexpr auto | executeReduce (concepts::Acc auto const &acc, auto &iter, std::integer_sequence< uint32_t, T_repeat... >, auto &&reduceFunc, auto &&func, alpaka::concepts::IDataSource auto &&... data) |
| | Calls the transform functor T_repeat times and reduces the results with the given reduce function.
|
| template<alpaka::concepts::Alignment T_MemAlignment, uint32_t T_width, uint32_t... T_repeat> |
| static ALPAKA_FN_INLINE constexpr void | executeReduceInto (concepts::Acc auto const &acc, auto &iter, std::integer_sequence< uint32_t, T_repeat... >, auto &result, auto &&reduceFn, auto &&transformFn, alpaka::concepts::IDataSource auto &&... data) |
| | Reduce simdized packs into a single simdized pack with the given reduce function.
|
| template<uint32_t... T_idx> |
| ALPAKA_FN_INLINE static ALPAKA_FN_ACC constexpr auto | loadAncExecuteScalarOp (std::integer_sequence< uint32_t, T_idx... >, auto &&op, auto const &acc, auto &&func, auto &&... data) |
| template<uint32_t... T_repeat> |
| static ALPAKA_FN_INLINE constexpr auto | makeAdvanceIterators (auto &iter, std::integer_sequence< uint32_t, T_repeat... >) |
| | advance the iterator T_repeat times
|
| template<uint32_t T_simdWidth, uint32_t T_numSimdPerFnCall, alpaka::concepts::Alignment T_MemAlignment> |
| static ALPAKA_FN_INLINE constexpr void | reduceNextSimdized (auto const &acc, auto &iter, auto &tmpReturn, auto &&reduceFn, auto &&transformFn, alpaka::concepts::IDataSource auto &&data0, alpaka::concepts::IDataSource auto &&... dataN) |
| | Reduce T_numSimdPerFnCall simdized packs.
|
| ALPAKA_FN_INLINE static ALPAKA_FN_ACC constexpr decltype(auto) | wrapTransformFunc (auto &&transformFunc) |
template<typename T_Parent>
struct alpaka::onAcc::internal::SimdTransformReduce< T_Parent >
concurrent reduce implementation
Definition at line 28 of file SimdTransformReduce.hpp.
template<typename T_Parent>
template<uint32_t... T_repeat>
|
|
inlinestaticconstexprprivate |
advance the iterator T_repeat times
We do not check if the iterator points to a valid element, the caller must ensure that we can safely advance the iterator T_repeat time without jumping over iter.end().
- Template Parameters
-
| T_repeat | Number of time sthe iterator should be advanced. |
- Returns
- Tuple with T_repeat times iterators.
Definition at line 164 of file SimdTransformReduce.hpp.