1#ifndef KOKKOS_EXECUTION_GRAPH_HPP
2#define KOKKOS_EXECUTION_GRAPH_HPP
6#include "Kokkos_Core.hpp"
23template <Kokkos::ExecutionSpace Exec>
30 template <stdexec::receiver Rcvr>
44 stdexec::set_value(std::move(
rcvr));
55 template <
typename... Env>
58 query(stdexec::get_completion_scheduler_t<stdexec::set_value_t>, Env...) const noexcept ->
Scheduler {
62 template <
typename... Env>
65 query(stdexec::get_completion_domain_t<stdexec::set_value_t>, Env...) const noexcept ->
Domain {
72 template <stdexec::receiver_of<completion_signatures> Rcvr>
75 return {.state =
env.state, .rcvr = std::move(rcvr)};
78 template <stdexec::receiver_of<completion_signatures> Rcvr>
81 return {.state =
env.state, .rcvr = std::move(rcvr)};
93 constexpr auto schedule() const noexcept -> Sender {
98 constexpr auto query(stdexec::get_completion_domain_t<stdexec::set_value_t>)
const noexcept ->
Domain {
103 constexpr auto query(stdexec::get_completion_scheduler_t<stdexec::set_value_t>)
const noexcept ->
Scheduler {
116template <Kokkos::ExecutionSpace Exec>
auto get_scheduler() const noexcept -> GraphImpl::Scheduler< Exec >
Impl::State< Exec > state_t
constexpr auto query(Impl::get_exec_t) const noexcept -> Impl::ExecutionSpaceRef< execution_space >
Impl::State< execution_space > * state
stdexec::operation_state_tag operation_state_concept
See https://github.com/NVIDIA/stdexec/blob/5076be2b35de2e78330201b888d82c81b8cb428b/include/nvexec/st...
Impl::State< Exec > * state
constexpr auto query(stdexec::get_completion_scheduler_t< stdexec::set_value_t >, Env...) const noexcept -> Scheduler
constexpr auto query(stdexec::get_completion_domain_t< stdexec::set_value_t >, Env...) const noexcept -> Domain
OpState< Rcvr > connect(Rcvr rcvr) &&noexcept(std::is_nothrow_move_constructible_v< Rcvr >)
constexpr auto get_env() const noexcept -> const Attributes &
stdexec::sender_tag sender_concept
OpState< Rcvr > connect(Rcvr rcvr) const &noexcept(std::is_nothrow_move_constructible_v< Rcvr >)
stdexec::completion_signatures< stdexec::set_value_t()> completion_signatures
Scheduler for a Kokkos::Experimental::Graph.
constexpr auto query(stdexec::get_completion_domain_t< stdexec::set_value_t >) const noexcept -> Domain
constexpr auto query(stdexec::get_completion_scheduler_t< stdexec::set_value_t >) const noexcept -> Scheduler
friend bool operator==(const Scheduler &, const Scheduler &) noexcept=default
Impl::State< Exec > * state
constexpr auto schedule() const noexcept -> Sender
stdexec::scheduler_t scheduler_concept
As per https://eel.is/c++draft/exec.sched#1.
Wrap a Kokkos execution space to make it cheap to copy/move in new environments.