|
kokkos-execution 0.0.1
|
Custom algorithm for the Kokkos::parallel_reduce construct.
More...
#include <parallel_reduce.hpp>
Public Types | |
| template<typename Functor, typename ExecPolicyOrIterSpace, typename Reducer, typename... Properties> | |
| using | parallel_reduce_data_t |
Public Member Functions | |
| template<typename Label, typename Functor, typename ExecPolicy, typename Reducer> requires (Impl::label<std::remove_cvref_t<Label>> && Kokkos::ExecutionPolicy<std::remove_cvref_t<ExecPolicy>>) | |
| constexpr auto | operator() (Label &&label, ExecPolicy &&policy, Functor &&functor, Reducer &&reducer) const noexcept(noexcept(stdexec::__closure(*this, std::forward< ExecPolicy >(policy), std::forward< Functor >(functor), std::forward< Reducer >(reducer), Impl::Label{std::forward< Label >(label)}))) -> decltype(stdexec::__closure(*this, std::forward< ExecPolicy >(policy), std::forward< Functor >(functor), std::forward< Reducer >(reducer), Impl::Label{std::forward< Label >(label)})) |
| template<typename ExecPolicyOrIterSpace, typename Functor, typename Reducer> requires Impl::execution_policy_or_iteration_space<std::remove_cvref_t<ExecPolicyOrIterSpace>> | |
| constexpr auto | operator() (ExecPolicyOrIterSpace &&policy_or_iter_space, Functor &&functor, Reducer &&reducer) const noexcept(noexcept(stdexec::__closure(*this, std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor), std::forward< Reducer >(reducer)))) -> decltype(stdexec::__closure(*this, std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor), std::forward< Reducer >(reducer))) |
| template<typename Label, typename Functor, std::integral T, typename Reducer> requires Impl::label<std::remove_cvref_t<Label>> | |
| constexpr auto | operator() (Label &&label, const T work_count, Functor &&functor, Reducer &&reducer) const noexcept(noexcept(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor), std::forward< Reducer >(reducer), Impl::Label{std::forward< Label >(label)}))) -> decltype(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor), std::forward< Reducer >(reducer), Impl::Label{std::forward< Label >(label)})) |
| template<typename Functor, std::integral T, typename Reducer> | |
| constexpr auto | operator() (const T work_count, Functor &&functor, Reducer &&reducer) const noexcept(noexcept(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor), std::forward< Reducer >(reducer)))) -> decltype(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor), std::forward< Reducer >(reducer))) |
| template<stdexec::sender Sndr, typename Functor, typename ExecPolicyOrIterSpace, typename Reducer, typename... Properties> requires Impl::execution_policy_or_iteration_space<std::remove_cvref_t<ExecPolicyOrIterSpace>> | |
| constexpr auto | operator() (Sndr &&sndr, ExecPolicyOrIterSpace &&policy_or_iter_space, Functor &&functor, Reducer &&reducer, Properties &&... properties) const noexcept(noexcept(Impl::ParallelReduceSender< Sndr, parallel_reduce_data_t< Functor, ExecPolicyOrIterSpace, Reducer, Properties... > >{{ parallel_reduce_t{}, parallel_reduce_data_t< Functor, ExecPolicyOrIterSpace, Reducer, Properties... >{ std::forward< Properties >(properties)..., std::forward< Functor >(functor), std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Reducer >(reducer)}, std::forward< Sndr >(sndr) }})) -> Impl::ParallelReduceSender< Sndr, parallel_reduce_data_t< Functor, ExecPolicyOrIterSpace, Reducer, Properties... > > |
Custom algorithm for the Kokkos::parallel_reduce construct.
Definition at line 51 of file parallel_reduce.hpp.
| using Kokkos::Execution::parallel_reduce_t::parallel_reduce_data_t |
Definition at line 93 of file parallel_reduce.hpp.
|
inlineconstexprnoexcept |
Definition at line 85 of file parallel_reduce.hpp.
References Kokkos::Execution::Impl::make_iter_space().
|
inlineconstexprnoexcept |
Definition at line 65 of file parallel_reduce.hpp.
|
inlineconstexprnoexcept |
Definition at line 76 of file parallel_reduce.hpp.
References Kokkos::Execution::label(), and Kokkos::Execution::Impl::make_iter_space().
|
inlineconstexprnoexcept |
Definition at line 55 of file parallel_reduce.hpp.
References Kokkos::Execution::label().
|
inlineconstexprnoexcept |
Definition at line 108 of file parallel_reduce.hpp.
References KOKKOS_EXECUTION_RETURNS_BRACED.