kokkos-execution
0.0.1
Toggle main menu visibility
Loading...
Searching...
No Matches
continues_on.hpp
Go to the documentation of this file.
1
#ifndef KOKKOS_EXECUTION_IMPL_CONTINUES_ON_HPP
2
#define KOKKOS_EXECUTION_IMPL_CONTINUES_ON_HPP
3
4
#include "
kokkos-execution/impl/dependency.hpp
"
5
#include "
kokkos-execution/impl/empty.hpp
"
6
#include "
kokkos-execution/impl/get_exec.hpp
"
7
#include "
kokkos-execution/impl/submitted.hpp
"
8
9
namespace
Kokkos::Execution::Impl::ContinuesOn
{
10
11
template
<
typename
InnerOp,
typename
ExecTo>
12
struct
DependencyFor
{
13
using
type
=
Impl::Empty
;
14
};
15
16
template
<
typename
InnerOp,
typename
ExecTo>
17
requires
Impl::signals_submitted<InnerOp>
18
struct
DependencyFor
<InnerOp, ExecTo> {
19
using
type
=
Impl::Dependency<ExecTo, Impl::exec_of_t<InnerOp>
>;
20
};
21
22
template
<
typename
InnerOp,
typename
ExecTo>
23
using
dependency_for_t
=
typename
DependencyFor<InnerOp, ExecTo>::type
;
24
26
template
<
typename
InnerOp,
typename
ExecTo>
27
using
optional_dependency_for_t
= std::conditional_t<
28
Impl::empty<dependency_for_t<InnerOp, ExecTo>
>,
29
Impl::Empty
,
30
std::optional<dependency_for_t<InnerOp, ExecTo>>
31
>;
32
33
template
<
typename
InnerOp,
typename
ExecTo,
typename
Rcvr>
34
concept
signals_submitted
=
Impl::signals_submitted<InnerOp>
&& std::same_as<ExecTo, Impl::exec_of_t<InnerOp>>
35
&&
Impl::supports_submitted_order_on<Rcvr>
;
36
37
template
<
typename
InnerOp,
typename
ExecTo,
typename
Rcvr>
38
using
completion_signal_policy_t
= std::conditional_t<
39
ContinuesOn::signals_submitted<InnerOp, ExecTo, Rcvr>
,
40
Impl::SubmittedPolicy::OrderOnExec
,
41
Impl::SyncPolicy::InlineFenceExec
42
>;
43
44
}
// namespace Kokkos::Execution::Impl::ContinuesOn
45
46
#endif
// KOKKOS_EXECUTION_IMPL_CONTINUES_ON_HPP
Kokkos::Execution::Impl::ContinuesOn::signals_submitted
Definition
continues_on.hpp:34
Kokkos::Execution::Impl::empty
Definition
empty.hpp:11
Kokkos::Execution::Impl::signals_submitted
Definition
submitted.hpp:33
Kokkos::Execution::Impl::supports_submitted_order_on
Definition
submitted.hpp:19
dependency.hpp
empty.hpp
get_exec.hpp
Kokkos::Execution::Impl::ContinuesOn
Definition
continues_on.hpp:9
Kokkos::Execution::Impl::ContinuesOn::optional_dependency_for_t
std::conditional_t< Impl::empty< dependency_for_t< InnerOp, ExecTo > >, Impl::Empty, std::optional< dependency_for_t< InnerOp, ExecTo > > > optional_dependency_for_t
If no dependency is needed, return Impl::Empty so that [[no_unique_address]] can be used.
Definition
continues_on.hpp:27
Kokkos::Execution::Impl::ContinuesOn::dependency_for_t
typename DependencyFor< InnerOp, ExecTo >::type dependency_for_t
Definition
continues_on.hpp:23
Kokkos::Execution::Impl::ContinuesOn::completion_signal_policy_t
std::conditional_t< ContinuesOn::signals_submitted< InnerOp, ExecTo, Rcvr >, Impl::SubmittedPolicy::OrderOnExec, Impl::SyncPolicy::InlineFenceExec > completion_signal_policy_t
Definition
continues_on.hpp:38
Kokkos::Execution::Impl::ContinuesOn::DependencyFor< InnerOp, ExecTo >::type
Impl::Dependency< ExecTo, Impl::exec_of_t< InnerOp > > type
Definition
continues_on.hpp:19
Kokkos::Execution::Impl::ContinuesOn::DependencyFor
Definition
continues_on.hpp:12
Kokkos::Execution::Impl::ContinuesOn::DependencyFor::type
Impl::Empty type
Definition
continues_on.hpp:13
Kokkos::Execution::Impl::Dependency
This is the default implementation.
Definition
dependency.hpp:36
Kokkos::Execution::Impl::Empty
Definition
empty.hpp:8
Kokkos::Execution::Impl::SubmittedPolicy::OrderOnExec
Definition
completion_signal.hpp:167
Kokkos::Execution::Impl::SyncPolicy::InlineFenceExec
Definition
completion_signal.hpp:70
submitted.hpp
kokkos-execution
impl
continues_on.hpp
Generated on
for kokkos-execution by
1.18.0