kokkos-execution
0.0.1
Toggle main menu visibility
Loading...
Searching...
No Matches
bulk.hpp
Go to the documentation of this file.
1
#ifndef KOKKOS_EXECUTION_IMPL_BULK_HPP
2
#define KOKKOS_EXECUTION_IMPL_BULK_HPP
3
4
#include "
kokkos-execution/stdexec.hpp
"
5
6
#include "
kokkos-execution/impl/make_policy.hpp
"
7
8
namespace
Kokkos::Execution::Impl
{
9
11
template
<
typename
Data>
12
concept
has_parallel_policy
=
requires
(
const
Data& data) {
13
{ data.__pol_ } -> std::same_as<const stdexec::__bulk::__policy_wrapper<stdexec::parallel_policy>&>;
14
};
15
17
template
<
typename
...>
18
struct
BulkTraits
;
19
20
template
<
typename
Policy,
typename
Shape,
typename
Functor>
21
struct
BulkTraits<stdexec::__bulk::__data<Policy, Shape, Functor>
> {
22
using
policy_t
= Policy;
23
using
shape_t
= Shape;
24
using
functor_t
= Functor;
25
};
26
27
template
<
typename
Data>
28
using
bulk_traits
=
BulkTraits<std::remove_cvref_t<Data>
>;
29
36
template
<Kokkos::ExecutionSpace Exec,
typename
Data>
37
using
make_policy_for_bulk_t
=
Impl::make_policy_t<Exec, Kokkos::IndexType<typename Impl::bulk_traits<Data>::shape_t
>>;
38
39
template
<
typename
Data>
40
using
functor_for_bulk_t
=
typename
Impl::bulk_traits<Data>::functor_t
;
41
42
template
<
typename
Data>
43
using
iter_space_for_bulk_t
= Kokkos::dims<1, typename Impl::bulk_traits<Data>::shape_t>;
44
45
}
// namespace Kokkos::Execution::Impl
46
47
#endif
// KOKKOS_EXECUTION_IMPL_BULK_HPP
Kokkos::Execution::Impl::has_parallel_policy
See https://github.com/NVIDIA/stdexec/blob/16076a81efa4477513e6ede9c2741fd034ecef99/include/stdexec/_...
Definition
bulk.hpp:12
stdexec.hpp
make_policy.hpp
Kokkos::Execution::Impl
Definition
attributes.hpp:6
Kokkos::Execution::Impl::bulk_traits
BulkTraits< std::remove_cvref_t< Data > > bulk_traits
Definition
bulk.hpp:28
Kokkos::Execution::Impl::iter_space_for_bulk_t
Kokkos::dims< 1, typename Impl::bulk_traits< Data >::shape_t > iter_space_for_bulk_t
Definition
bulk.hpp:43
Kokkos::Execution::Impl::functor_for_bulk_t
typename Impl::bulk_traits< Data >::functor_t functor_for_bulk_t
Definition
bulk.hpp:40
Kokkos::Execution::Impl::make_policy_for_bulk_t
Impl::make_policy_t< Exec, Kokkos::IndexType< typename Impl::bulk_traits< Data >::shape_t > > make_policy_for_bulk_t
Definition
bulk.hpp:37
Kokkos::Execution::Impl::BulkTraits< stdexec::__bulk::__data< Policy, Shape, Functor > >::policy_t
Policy policy_t
Definition
bulk.hpp:22
Kokkos::Execution::Impl::BulkTraits< stdexec::__bulk::__data< Policy, Shape, Functor > >::functor_t
Functor functor_t
Definition
bulk.hpp:24
Kokkos::Execution::Impl::BulkTraits< stdexec::__bulk::__data< Policy, Shape, Functor > >::shape_t
Shape shape_t
Definition
bulk.hpp:23
Kokkos::Execution::Impl::BulkTraits
Extract the policy, shape and functor type of bulk data.
Definition
bulk.hpp:18
Kokkos::Execution::Impl::make_policy_t
Utility functions that wrap constructors of Kokkos execution policies.
Definition
make_policy.hpp:33
kokkos-execution
impl
bulk.hpp
Generated on
for kokkos-execution by
1.18.0