1#ifndef KOKKOS_EXECUTION_EXECUTION_SPACE_HPP
2#define KOKKOS_EXECUTION_EXECUTION_SPACE_HPP
6#include "Kokkos_Core.hpp"
30template <Kokkos::ExecutionSpace Exec>
37 template <stdexec::receiver Rcvr>
45 stdexec::set_value(std::move(
rcvr));
56 template <
typename... Env>
59 query(stdexec::get_completion_scheduler_t<stdexec::set_value_t>, Env...) const noexcept ->
Scheduler {
63 template <
typename... Env>
66 query(stdexec::get_completion_domain_t<stdexec::set_value_t>, Env...) const noexcept ->
Domain {
73 template <stdexec::receiver_of<completion_signatures> Rcvr>
76 return {std::move(rcvr)};
79 template <stdexec::receiver_of<completion_signatures> Rcvr>
82 return {std::move(rcvr)};
94 constexpr auto schedule() const noexcept -> Sender {
99 constexpr auto query(stdexec::get_completion_domain_t<stdexec::set_value_t>)
const noexcept ->
Domain {
104 constexpr auto query(stdexec::get_completion_scheduler_t<stdexec::set_value_t>)
const noexcept ->
Scheduler {
123template <Kokkos::ExecutionSpace Exec>
Impl::State< Exec > state_t
ExecutionSpaceContext(Exec exec)
auto get_scheduler() const noexcept -> ExecutionSpaceImpl::Scheduler< Exec >
stdexec::operation_state_tag operation_state_concept
See https://github.com/NVIDIA/stdexec/blob/5076be2b35de2e78330201b888d82c81b8cb428b/include/nvexec/st...
constexpr auto query(stdexec::get_completion_domain_t< stdexec::set_value_t >, Env...) const noexcept -> Domain
Impl::State< Exec > * state
constexpr auto query(stdexec::get_completion_scheduler_t< stdexec::set_value_t >, Env...) const noexcept -> Scheduler
OpState< Rcvr > connect(Rcvr rcvr) &&noexcept(std::is_nothrow_move_constructible_v< Rcvr >)
OpState< Rcvr > connect(Rcvr rcvr) const &noexcept(std::is_nothrow_move_constructible_v< Rcvr >)
constexpr auto get_env() const noexcept -> const Attributes &
stdexec::sender_tag sender_concept
stdexec::completion_signatures< stdexec::set_value_t()> completion_signatures
Scheduler for a Kokkos execution space.
stdexec::scheduler_t scheduler_concept
As per https://eel.is/c++draft/exec.sched#1.
friend bool operator==(const Scheduler &, const Scheduler &) noexcept=default
constexpr auto schedule() const noexcept -> Sender
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
Impl::State< Exec > * state