1#ifndef KOKKOS_EXECUTION_GRAPH_BULK_HPP
2#define KOKKOS_EXECUTION_GRAPH_BULK_HPP
6#if defined(KOKKOS_EXECUTION_ENABLE_DEBUG_LOGGING)
10#include "Kokkos_Graph.hpp"
24 template <
typename Env,
typename Data,
typename Sndr>
29 Kokkos::RangePolicy<Impl::exec_of_t<Sndr, Env>>
32 template <
typename Env, Kokkos::Execution::Impl::has_parallel_policy Data,
typename Sndr>
33 requires stdexec::__sends<stdexec::set_value_t, Sndr, Env>
39 noexcept(std::is_nothrow_constructible_v<
45 auto& [parallel_policy, shape, functor] = data;
47 auto schd = stdexec::get_completion_scheduler<stdexec::set_value_t>(stdexec::get_env(sndr), env);
51 {.node_props = Kokkos::Experimental::node_props(
53 Kokkos::Experimental::get_device_handle(schd.state->exec)),
54 .functor = stdexec::__forward_like<Data>(functor),
55 .policy = Kokkos::RangePolicy<Impl::exec_of_t<Sndr, Env>>(0, shape)},
56 .sndr = std::forward<Sndr>(sndr)
Concept for a sender whose completion scheduler is Kokkos::Execution::GraphImpl::Scheduler.
auto no_graph_scheduler_in_env() noexcept
Show a better compile diagnostic when there is no Kokkos::Execution::GraphImpl::Scheduler found.
BulkTraits< std::remove_cvref_t< Data > > bulk_traits
typename completion_scheduler_of_t< stdexec::set_value_t, Sndr, Env... >::execution_space exec_of_t
Type of the execution space extracted from a sender's completion scheduler.
consteval std::string_view dispatch_label() noexcept
View the dispatch label as a std::string_view.
ParallelForClosure< Label, Functor, ExecPolicy > closure_t