kokkos-execution
0.0.1
Loading...
Searching...
No Matches
submitted.hpp
Go to the documentation of this file.
1
#ifndef KOKKOS_EXECUTION_IMPL_SUBMITTED_HPP
2
#define KOKKOS_EXECUTION_IMPL_SUBMITTED_HPP
3
4
#include "
kokkos-execution/stdexec.hpp
"
5
6
#include "
kokkos-execution/impl/completion_signal.hpp
"
7
#include "
kokkos-execution/impl/event.hpp
"
8
9
namespace
Kokkos::Execution::Impl
{
10
11
struct
SubmittedReceiverTag
:
public
stdexec::receiver_tag { };
12
13
template
<
typename
Rcvr>
14
concept
supports_submitted
=
15
stdexec::receiver<Rcvr>
16
&& std::derived_from<typename std::remove_cvref_t<Rcvr>::receiver_concept,
SubmittedReceiverTag
>;
17
18
template
<
typename
Rcvr>
19
concept
supports_submitted_order_on
=
supports_submitted<Rcvr>
&&
requires
(Rcvr&& rcvr) {
20
{ std::move(rcvr).submitted() }
noexcept
;
21
};
22
23
template
<
typename
Rcvr,
typename
... Execs>
24
concept
supports_submitted_depend_on
=
supports_submitted<Rcvr>
&& (Kokkos::ExecutionSpace<Execs> && ...)
25
&&
sizeof
...(Execs) > 0
26
&&
requires
(Rcvr&& rcvr,
OptionalConstEventRef<Execs>
... deps) {
27
{ std::move(rcvr).submitted(deps...) }
noexcept
;
28
};
29
30
struct
SubmittedOperationStateTag
:
public
stdexec::operation_state_tag { };
31
32
template
<
typename
Op>
33
concept
signals_submitted
=
34
stdexec::operation_state<Op>
35
&& std::derived_from<typename std::remove_cvref_t<Op>::operation_state_concept,
SubmittedOperationStateTag
>
36
&&
requires
{
typename
std::remove_cvref_t<Op>::completion_signal_policy_t; }
37
&&
submitted_policy<typename std::remove_cvref_t<Op>::completion_signal_policy_t
>;
38
39
}
// namespace Kokkos::Execution::Impl
40
41
#endif
// KOKKOS_EXECUTION_IMPL_SUBMITTED_HPP
completion_signal.hpp
Kokkos::Execution::Impl::signals_submitted
Definition
submitted.hpp:33
Kokkos::Execution::Impl::submitted_policy
Definition
completion_signal.hpp:171
Kokkos::Execution::Impl::supports_submitted_depend_on
Definition
submitted.hpp:24
Kokkos::Execution::Impl::supports_submitted_order_on
Definition
submitted.hpp:19
Kokkos::Execution::Impl::supports_submitted
Definition
submitted.hpp:14
event.hpp
stdexec.hpp
Kokkos::Execution::Impl
Definition
attributes.hpp:6
Kokkos::Execution::Impl::OptionalConstEventRef
OptionalRef< const Event< Exec > > OptionalConstEventRef
Optionally stores a reference to a const Impl::Event.
Definition
event.hpp:178
Kokkos::Execution::Impl::SubmittedOperationStateTag
Definition
submitted.hpp:30
Kokkos::Execution::Impl::SubmittedReceiverTag
Definition
submitted.hpp:11
kokkos-execution
impl
submitted.hpp
Generated on
for kokkos-execution by
1.15.0