kokkos-execution 0.0.1
Loading...
Searching...
No Matches
graph_fwd.hpp
Go to the documentation of this file.
1#ifndef KOKKOS_EXECUTION_GRAPH_GRAPH_FWD_HPP
2#define KOKKOS_EXECUTION_GRAPH_GRAPH_FWD_HPP
3
5
6#include "Kokkos_Macros.hpp"
7#ifdef KOKKOS_ENABLE_EXPERIMENTAL_CXX20_MODULES
8import kokkos.core;
9#else
10# include "Kokkos_Concepts.hpp"
11#endif
12
15
16namespace Kokkos::Execution {
17
18template <Kokkos::ExecutionSpace Exec>
19struct GraphContext;
20
21} // namespace Kokkos::Execution
22
24
25template <typename Tag>
27
28template <typename Tag>
30
31struct Domain;
32
33template <Kokkos::ExecutionSpace Exec>
34struct Scheduler;
35
36template <stdexec::operation_state OpState, Kokkos::ExecutionSpace Exec>
37struct GraphOperationStateFor : public std::false_type { };
38
39template <typename OpState, typename Exec>
40concept graph_operation_state_for = stdexec::operation_state<OpState> && Kokkos::ExecutionSpace<Exec>
42
43template <stdexec::operation_state OpState, Kokkos::ExecutionSpace Exec>
44struct RemainsOnGraphFor : public std::false_type {
45 static constexpr auto diagnose() noexcept {
46 return stdexec::__mexception<
47 stdexec::_WHAT_(OPERATION_STATE_DOES_NOT_REMAIN_ON_GRAPH),
50 >{};
51 }
52};
53
54template <typename OpState, typename Exec>
55concept remains_on_graph_for = stdexec::operation_state<OpState> && Kokkos::ExecutionSpace<Exec>
57
63template <typename Exec, typename Sndr, typename Rcvr>
64concept connect_result_remains_on_graph_for = Kokkos::ExecutionSpace<Exec> && stdexec::sender<Sndr>
65 && stdexec::receiver<Rcvr>
67
68} // namespace Kokkos::Execution::GraphImpl
69
70#endif // KOKKOS_EXECUTION_GRAPH_GRAPH_FWD_HPP
Execution context using Kokkos::Experimental::Graph under the hood.
Definition graph.hpp:123
static constexpr auto diagnose() noexcept
Definition graph_fwd.hpp:45
Scheduler for a Kokkos::Experimental::Graph.
Definition graph.hpp:30
Tag to be used to signal an execution space.