|
kokkos-execution 0.0.1
|
Namespaces | |
| namespace | ContinuesOn |
| namespace | detail |
| namespace | ScheduleFrom |
| namespace | SyncWait |
Classes | |
| struct | ApplySender |
| struct | BulkTraits |
Extract the policy, shape and functor type of bulk data. More... | |
| struct | BulkTraits< stdexec::__bulk::__data< Policy, Shape, Functor > > |
| struct | Collapse |
| struct | Collapse< stdexec::__mlist< T > > |
| struct | CompileTimeOptional |
Compile-time optional value that holds a T when Enabled, is an empty type otherwise. More... | |
| struct | CompileTimeOptional< false, T > |
| struct | CompileTimeOptional< true, T > |
| struct | CompletionSignal |
| struct | CompletionSignal< SubmittedPolicy::DependOnEvent, Exec, Rcvr > |
| Create an event in the execution space instance, and pass a handle to the event to the receiver, thus deferring to the successor the responsibility to wait on the event. More... | |
| struct | CompletionSignal< SubmittedPolicy::OrderOnExec, Exec, Rcvr > |
| struct | CompletionSignal< SyncPolicy::InlineFenceExec, Exec, Rcvr > |
| Fence the execution space instance to complete the operation and then invoke the receiver. More... | |
| struct | CompletionSignal< SyncPolicy::ScheduleWaitEvent, Exec, Rcvr > |
| Create an event in the execution space instance, and schedule on the delegation scheduler a task that waits on this event and then invoke the receiver. More... | |
| struct | Dependency |
| This is the default implementation. More... | |
| struct | Dependency< Exec, Exec > |
| struct | Diagnose |
| struct | Diagnose< T > |
| struct | Empty |
| struct | Event |
| An event that can be recorded on an execution space instance. More... | |
| struct | Event< Kokkos::Cuda > |
| struct | Event< Kokkos::Experimental::HPX > |
| struct | Event< Kokkos::HIP > |
| struct | Event< Kokkos::SYCL > |
| struct | ExecOf |
| struct | ExecOf< Sndr, Env... > |
Type of the execution space extracted from Sndr completion scheduler. More... | |
| struct | ExecOf< T > |
Type of the execution space extracted from a get_exec_t query on T. More... | |
| struct | ExecutionSpaceRef |
Wrap a Kokkos execution space to make it cheap to copy/move in new environments. More... | |
| struct | FirstError |
| struct | FirstError< stdexec::__mlist< Ts... > > |
| struct | FirstErrorOf |
| struct | FirstErrorOf< T > |
| struct | FirstErrorOf< T, Ts... > |
| struct | FixedString |
Fixed-capacity string built from a char array. More... | |
| struct | ForwardingAttributes |
| Filter queries on a sender to allow forwarding queries only. More... | |
| struct | get_exec_t |
| struct | HasExecWaitEvent |
| struct | HasExecWaitEvent< Kokkos::Cuda > |
| struct | HasExecWaitEvent< Kokkos::Experimental::HPX > |
| struct | HasExecWaitEvent< Kokkos::HIP > |
| struct | HasExecWaitEvent< Kokkos::SYCL > |
| struct | HasNonBlockingDispatch |
Determine if the Kokkos backend has non-blocking dispatch. More... | |
| struct | HasNonBlockingDispatch< Kokkos::Cuda > |
| struct | HasNonBlockingDispatch< Kokkos::Experimental::HPX > |
| struct | HasNonBlockingDispatch< Kokkos::HIP > |
| struct | HasNonBlockingDispatch< Kokkos::SYCL > |
| struct | Immovable |
| Immovable type. More... | |
| struct | KeepErrors |
| struct | KeepErrors< stdexec::__mlist< Ts... > > |
| struct | Label |
| Label property. More... | |
| struct | make_policy_t |
Utility functions that wrap constructors of Kokkos execution policies. More... | |
| struct | MakeOpState |
| struct | OptionalRef |
A non-owning, nullable reference to a T. More... | |
| class | OptionalStorage |
Data structure that has an interface similar to std::optional but stores the value with stdexec::__manual_lifetime. More... | |
| struct | ParallelForData |
| struct | ParallelForSender |
| struct | ParallelReduceData |
| struct | ParallelReduceSender |
| struct | properties |
| Type list of properties. More... | |
| struct | queryable_for |
| struct | Receiver |
Receiver for an object parent_op that implements complete. More... | |
| struct | RecordEvent |
| Event to be sent to Kokkos::utils::callbacks::dispatch when calling record. More... | |
| struct | RequiresSync |
| struct | ScheduleWaitEventReceiver |
| struct | State |
| struct | SubmittedOperationStateTag |
| struct | SubmittedPolicy |
| struct | SubmittedPolicyTag |
| struct | SubmittedReceiverTag |
| struct | SyncPolicy |
| Under a sync policy, a terminal completion is propagated: in-flight operations must complete. More... | |
| struct | SyncPolicyTag |
| struct | TransformSender |
| struct | TryDiagnose |
| struct | TryDiagnose< T > |
| struct | WaitEvent |
| Event to be sent to Kokkos::utils::callbacks::dispatch when calling wait. More... | |
| struct | WITH_CHILDREN_ERRORS |
| Tag to be used to signal children errors. More... | |
| struct | WITH_EXECUTION_SPACE |
| Tag to be used to signal an execution space. More... | |
| struct | WITH_OPSTATE |
Concepts | |
| concept | dispatching_sender |
| Concept that constrains the type of a sender that dispatches a functor for execution. | |
| concept | empty |
| concept | event |
Constrain an EventType type to be a valid event type for Exec execution space type. | |
| concept | execution_policy_or_iteration_space |
| concept | extents |
| concept | has_exec_wait_event |
Determine if the Kokkos backend can enqueue a wait for an event into an execution space instance. | |
| concept | has_non_blocking_dispatch |
| concept | has_parallel_policy |
| See https://github.com/NVIDIA/stdexec/blob/16076a81efa4477513e6ede9c2741fd034ecef99/include/stdexec/__detail/__bulk.hpp#L100. | |
| concept | iteration_space |
| Concept that constrains types that may represent an iteration space. | |
| concept | label |
| Constrain the accepted label types. | |
| concept | labeled |
| concept | parallel_for_data |
| concept | parallel_reduce_data |
| concept | range_slice |
| concept | range_slice_with_default_stride |
| concept | signals_submitted |
| concept | submitted_policy |
| concept | supports_submitted |
| concept | supports_submitted_depend_on |
| concept | supports_submitted_order_on |
| concept | sync_policy |
| concept | updatable_to |
| Only the execution space instance, not its type, can be bound late. | |
Typedefs | |
| template<typename Data> | |
| using | bulk_traits = BulkTraits<std::remove_cvref_t<Data>> |
| template<Kokkos::ExecutionSpace Exec, typename Data> | |
| using | make_policy_for_bulk_t = Impl::make_policy_t<Exec, Kokkos::IndexType<typename Impl::bulk_traits<Data>::shape_t>> |
| template<typename Data> | |
| using | functor_for_bulk_t = typename Impl::bulk_traits<Data>::functor_t |
| template<typename Data> | |
| using | iter_space_for_bulk_t = Kokkos::dims<1, typename Impl::bulk_traits<Data>::shape_t> |
| template<stdexec::sender Sndr, stdexec::__valid_completion_signatures ExtraSigs, typename... Env> | |
| using | completion_signatures_add_t = decltype(completion_signatures_add<Sndr, ExtraSigs, Env...>()) |
| template<Kokkos::ExecutionSpace Exec> | |
| using | event_storage_t = std::optional<Event<Exec>> |
| template<Kokkos::ExecutionSpace Exec> | |
| using | OptionalConstEventRef = OptionalRef<const Event<Exec>> |
Optionally stores a reference to a const Impl::Event. | |
| template<typename... Args> | |
| using | exec_of_t = typename ExecOf<Args...>::type |
| template<typename MakePolicy, typename... Args> | |
| using | make_policy_result_t = std::invoke_result_t<const MakePolicy&, Args...> |
| template<typename Env> | |
| using | delegation_scheduler_of_t = stdexec::__query_result_t<const Env&, stdexec::get_delegation_scheduler_t> |
| template<typename Tag, stdexec::sender Sndr, typename... Env> | |
| using | completion_scheduler_of_t |
| Retrieve the completion scheduler for a given completion tag. | |
Diagnosis of @c T if it provides @c diagnose. @note It is considered @c stdexec::__msuccess otherwise. | |
| template<typename T> | |
| using | try_diagnose_t = typename TryDiagnose<T>::type |
Diagnose one or more types. | |
| template<typename... Ts> | |
| using | diagnose_t = typename Diagnose<Ts...>::type |
Keep the first encountered error, @c stdexec::__msuccess otherwise. | |
| template<typename T> | |
| using | first_error_t = typename FirstError<T>::type |
Collapse a one-item list to the item itself. | |
| template<typename T> | |
| using | collapse_t = typename Collapse<T>::type |
Filter-out anything that is not an error. | |
If no error is found, return | |
| template<typename T> | |
| using | keep_if_error_t = std::conditional_t<stdexec::__merror<T>, stdexec::__mlist<T>, stdexec::__mlist<>> |
| template<typename List> | |
| using | keep_errors_t = typename KeepErrors<List>::type |
Functions | |
| template<stdexec::sender Sndr, stdexec::__valid_completion_signatures ExtraSigs, typename... Env> | |
| consteval auto | completion_signatures_add () |
Concatenate Sndr completion signatures with ExtraSigs if Sndr sends on the value channel; otherwise return Sndr completion signatures unchanged. | |
| template<Kokkos::ExecutionSpace... ExecFrom> requires (std::same_as<ExecFrom, Kokkos::Cuda> && ...) | |
| void | impl_wait (const Kokkos::Cuda &exec, const Event< ExecFrom > &... events) |
| template<typename T> | |
| constexpr bool | mandate_or_explain () noexcept |
If T::value is false, diagnose. | |
| template<Kokkos::ExecutionSpace Exec, FixedString Suffix> | |
| consteval auto | dispatch_label () noexcept(noexcept(std::string_view{dispatch_label_v< Exec, Suffix >.data(), dispatch_label_v< Exec, Suffix >.size()})) -> decltype(std::string_view{dispatch_label_v< Exec, Suffix >.data(), dispatch_label_v< Exec, Suffix >.size()}) |
View the dispatch label as a std::string_view. | |
| template<Kokkos::ExecutionSpace Exec> | |
| void | record_event (const Exec &exec, uint64_t &event_id) |
| template<Kokkos::ExecutionSpace Exec> | |
| void | wait_event (const Event< Exec > &event) |
| template<Kokkos::ExecutionSpace ExecTo, Kokkos::ExecutionSpace ExecFrom> | |
| void | wait_event (const ExecTo &exec, const Event< ExecFrom > &event) |
| template<Kokkos::ExecutionSpace Exec> | |
| void | record (Event< Exec > &event, const Exec &exec) |
Record event on exec. | |
| template<Kokkos::ExecutionSpace... Exec> | |
| void | impl_wait (const Event< Exec > &... events) |
| template<Kokkos::ExecutionSpace... Exec> | |
| void | wait (const Event< Exec > &... events) |
Wait for events to complete. | |
| template<Kokkos::ExecutionSpace ExecTo, Kokkos::ExecutionSpace... ExecFrom> | |
| void | impl_wait (const ExecTo &, const Event< ExecFrom > &... events) |
| template<Kokkos::ExecutionSpace ExecTo, Kokkos::ExecutionSpace... ExecFrom> | |
| void | wait (const ExecTo &exec, const Event< ExecFrom > &... events) |
The operations enqueued from the calling thread into exec cannot start before the event events completes. | |
| template<Kokkos::ExecutionSpace... ExecFrom> requires (std::same_as<ExecFrom, Kokkos::HIP> && ...) | |
| void | impl_wait (const Kokkos::HIP &exec, const Event< ExecFrom > &... events) |
| template<Kokkos::ExecutionSpace... Exec> requires (std::same_as<Exec, Kokkos::Experimental::HPX> && ...) | |
| void | impl_wait (const Event< Kokkos::Experimental::HPX > &event, const Event< Exec > &... events) |
| template<Kokkos::ExecutionSpace... ExecFrom> requires (std::same_as<ExecFrom, Kokkos::Experimental::HPX> && ...) | |
| void | impl_wait (const Kokkos::Experimental::HPX &exec, const Event< ExecFrom > &... events) |
| template<std::integral T> | |
| constexpr auto | make_iter_space (const T work_count) noexcept -> Kokkos::dims< 1, T > |
| Make a valid iteration space from a work count. | |
| template<typename T> requires std::convertible_to<T, std::string> | |
| constexpr auto | as_convertible_to_string (T &&value) noexcept(noexcept(std::forward< T >(value))) -> decltype(std::forward< T >(value)) |
Convert to a value usable as a std::string. | |
| template<typename T> requires (!std::convertible_to<T, std::string>) | |
| constexpr auto | as_convertible_to_string (T &&value) noexcept(noexcept(static_cast< std::string >(std::forward< T >(value)))) -> decltype(static_cast< std::string >(std::forward< T >(value))) |
| template<typename Data, typename Property> | |
| consteval bool | has_property () |
Return true when Data derives from the property Property. | |
| template<typename Data, template< typename... > typename Property> | |
| consteval bool | has_property () |
Return true when Data derives from the templated property Property. | |
| template<typename Property, typename Data> requires (has_property<std::remove_cvref_t<Data>, Property>()) | |
| constexpr decltype(auto) | get_property (Data &&data) noexcept |
| template<template< typename... > typename Property, typename Data> requires (has_property<std::remove_cvref_t<Data>, Property>()) | |
| constexpr decltype(auto) | get_property (Data &&data) noexcept |
| template<Kokkos::ExecutionSpace... ExecFrom> requires (std::same_as<ExecFrom, Kokkos::SYCL> && ...) | |
| void | impl_wait (const Kokkos::SYCL &exec, const Event< ExecFrom > &... events) |
| template<typename T> | |
| constexpr auto | display_string_of () noexcept -> std::string_view |
CTAD for @ref Label. | |
| template<std::convertible_to< std::string > T> | |
| Label (T) -> Label< std::string > | |
| template<typename T> | |
| Label (T) -> Label< T > | |
Variables | |
| template<Kokkos::ExecutionSpace Exec, FixedString Suffix> | |
| constexpr auto | dispatch_label_v = detail::dispatch_label<Exec, Suffix>() |
Get the dispatch label from Exec and Suffix. | |
| static constexpr auto | invalid_dev_id = Kokkos::Experimental::finite_max_v<uint32_t> |
| static constexpr auto | invalid_event_id = Kokkos::Experimental::finite_max_v<uint64_t> |
| template<typename T> | |
| constexpr bool | is_fixed_string_v = false |
| template<std::size_t N> | |
| constexpr bool | is_fixed_string_v< FixedString< N > > = true |
| constexpr get_exec_t | get_exec {} |
| template<Kokkos::ExecutionSpace Exec, typename... Properties> | |
| constexpr make_policy_t< Exec, Properties... > | make_policy {} |
Rebinds the template arguments of @p From onto the template @p To. | |
| template<template< typename... > class To, typename From> | |
| using | rebind_t = decltype(rebind<To>(static_cast<From*>(nullptr))) |
| template<template< typename... > class To, template< typename... > class From, typename... As> | |
| auto | rebind (From< As... > *) -> To< As... > |
| using Kokkos::Execution::Impl::bulk_traits = BulkTraits<std::remove_cvref_t<Data>> |
| using Kokkos::Execution::Impl::collapse_t = typename Collapse<T>::type |
Definition at line 105 of file diagnostics.hpp.
| using Kokkos::Execution::Impl::completion_scheduler_of_t |
Retrieve the completion scheduler for a given completion tag.
It is heavily inspired, yet different from https://github.com/NVIDIA/stdexec/blob/45c0f5803c190366a8529833901d1f6340b40d2e/include/stdexec/__detail/__schedulers.hpp#L395-L398.
While stdexec::__completion_scheduler_of_t is constrained to a sender that "sends", this version does not and returns what a genuine call to stdexec::get_completion_scheduler would.
Definition at line 18 of file sender_introspection.hpp.
| using Kokkos::Execution::Impl::completion_signatures_add_t = decltype(completion_signatures_add<Sndr, ExtraSigs, Env...>()) |
Definition at line 29 of file completion_signatures.hpp.
| using Kokkos::Execution::Impl::delegation_scheduler_of_t = stdexec::__query_result_t<const Env&, stdexec::get_delegation_scheduler_t> |
Definition at line 9 of file schedulers.hpp.
| using Kokkos::Execution::Impl::diagnose_t = typename Diagnose<Ts...>::type |
Definition at line 67 of file diagnostics.hpp.
| using Kokkos::Execution::Impl::event_storage_t = std::optional<Event<Exec>> |
| using Kokkos::Execution::Impl::exec_of_t = typename ExecOf<Args...>::type |
Definition at line 42 of file get_exec.hpp.
| using Kokkos::Execution::Impl::first_error_t = typename FirstError<T>::type |
Definition at line 91 of file diagnostics.hpp.
| using Kokkos::Execution::Impl::functor_for_bulk_t = typename Impl::bulk_traits<Data>::functor_t |
| using Kokkos::Execution::Impl::iter_space_for_bulk_t = Kokkos::dims<1, typename Impl::bulk_traits<Data>::shape_t> |
| using Kokkos::Execution::Impl::keep_errors_t = typename KeepErrors<List>::type |
Definition at line 130 of file diagnostics.hpp.
| using Kokkos::Execution::Impl::keep_if_error_t = std::conditional_t<stdexec::__merror<T>, stdexec::__mlist<T>, stdexec::__mlist<>> |
Definition at line 117 of file diagnostics.hpp.
| using Kokkos::Execution::Impl::make_policy_for_bulk_t = Impl::make_policy_t<Exec, Kokkos::IndexType<typename Impl::bulk_traits<Data>::shape_t>> |
According to https://eel.is/c++draft/exec#bulk-4, the callable is invoked using an index whose type is the same as the stdexec::bulk_t shape argument type.
| using Kokkos::Execution::Impl::make_policy_result_t = std::invoke_result_t<const MakePolicy&, Args...> |
Definition at line 77 of file make_policy.hpp.
| using Kokkos::Execution::Impl::OptionalConstEventRef = OptionalRef<const Event<Exec>> |
Optionally stores a reference to a const Impl::Event.
| using Kokkos::Execution::Impl::rebind_t = decltype(rebind<To>(static_cast<From*>(nullptr))) |
Definition at line 32 of file diagnostics.hpp.
| using Kokkos::Execution::Impl::try_diagnose_t = typename TryDiagnose<T>::type |
Definition at line 49 of file diagnostics.hpp.
|
constexprnoexcept |
Definition at line 79 of file label.hpp.
References as_convertible_to_string().
|
constexprnoexcept |
Convert to a value usable as a std::string.
If value is (implicitly) convertible to a std::string, it is forwarded as-is.
Kokkos::parallel_for allows for convertible-to std::string labels, Kokkos::parallel_reduce does not. See also:
Definition at line 75 of file label.hpp.
References as_convertible_to_string().
|
consteval |
Concatenate Sndr completion signatures with ExtraSigs if Sndr sends on the value channel; otherwise return Sndr completion signatures unchanged.
References:
Definition at line 18 of file completion_signatures.hpp.
References completion_signatures_add().
|
constevalnoexcept |
View the dispatch label as a std::string_view.
Definition at line 47 of file dispatch_label.hpp.
References dispatch_label(), and dispatch_label_v.
|
constexprnoexcept |
Definition at line 20 of file type_info.hpp.
References display_string_of().
|
constexprnoexcept |
Definition at line 86 of file properties.hpp.
References Kokkos::Execution::Impl::detail::as_base(), and get_property().
|
constexprnoexcept |
Definition at line 80 of file properties.hpp.
References Kokkos::Execution::Impl::detail::as_base(), and get_property().
|
consteval |
Return true when Data derives from the templated property Property.
Definition at line 74 of file properties.hpp.
References Kokkos::Execution::Impl::detail::deduce_from_base(), and has_property().
|
consteval |
Return true when Data derives from the property Property.
Definition at line 68 of file properties.hpp.
References has_property().
| void Kokkos::Execution::Impl::impl_wait | ( | const Event< Exec > &... | events | ) |
Definition at line 151 of file event.hpp.
References impl_wait(), and Kokkos::Execution::Impl::Event< Exec >::wait().
| void Kokkos::Execution::Impl::impl_wait | ( | const ExecTo & | , |
| const Event< ExecFrom > &... | events ) |
Definition at line 163 of file event.hpp.
References impl_wait(), and Kokkos::Execution::Impl::Event< Exec >::wait().
| void Kokkos::Execution::Impl::impl_wait | ( | const Kokkos::Cuda & | exec, |
| const Event< ExecFrom > &... | events ) |
Definition at line 60 of file event.hpp.
References impl_wait().
| void Kokkos::Execution::Impl::impl_wait | ( | const Kokkos::Experimental::HPX & | exec, |
| const Event< ExecFrom > &... | events ) |
| void Kokkos::Execution::Impl::impl_wait | ( | const Kokkos::HIP & | exec, |
| const Event< ExecFrom > &... | events ) |
Definition at line 60 of file event.hpp.
References impl_wait().
| void Kokkos::Execution::Impl::impl_wait | ( | const Kokkos::SYCL & | exec, |
| const Event< ExecFrom > &... | events ) |
Definition at line 58 of file event.hpp.
References impl_wait().
| Kokkos::Execution::Impl::Label | ( | T | ) | -> Label< std::string > |
| Kokkos::Execution::Impl::Label | ( | T | ) | -> Label< T > |
|
constexprnoexcept |
Make a valid iteration space from a work count.
Definition at line 36 of file iteration_space.hpp.
References make_iter_space().
|
constexprnoexcept |
If T::value is false, diagnose.
Definition at line 135 of file diagnostics.hpp.
References mandate_or_explain().
| auto Kokkos::Execution::Impl::rebind | ( | From< As... > * | ) | -> To< As... > |
References rebind().
| void Kokkos::Execution::Impl::record | ( | Event< Exec > & | event, |
| const Exec & | exec ) |
Record event on exec.
Definition at line 145 of file event.hpp.
References record(), and record_event().
| void Kokkos::Execution::Impl::record_event | ( | const Exec & | exec, |
| uint64_t & | event_id ) |
Definition at line 71 of file event.hpp.
References Kokkos::utils::callbacks::dispatch(), Kokkos::utils::callbacks::get_next_event_id(), and record_event().
| void Kokkos::Execution::Impl::wait | ( | const Event< Exec > &... | events | ) |
Wait for events to complete.
Definition at line 157 of file event.hpp.
References impl_wait(), wait(), and wait_event().
| void Kokkos::Execution::Impl::wait | ( | const ExecTo & | exec, |
| const Event< ExecFrom > &... | events ) |
The operations enqueued from the calling thread into exec cannot start before the event events completes.
Definition at line 173 of file event.hpp.
References impl_wait(), wait(), and wait_event().
| void Kokkos::Execution::Impl::wait_event | ( | const Event< Exec > & | event | ) |
Definition at line 92 of file event.hpp.
References Kokkos::utils::callbacks::dispatch(), invalid_dev_id, and wait_event().
| void Kokkos::Execution::Impl::wait_event | ( | const ExecTo & | exec, |
| const Event< ExecFrom > & | event ) |
Definition at line 99 of file event.hpp.
References Kokkos::utils::callbacks::dispatch(), and wait_event().
|
constexpr |
Get the dispatch label from Exec and Suffix.
Definition at line 43 of file dispatch_label.hpp.
|
inlineconstexpr |
Definition at line 24 of file get_exec.hpp.
|
staticconstexpr |
|
staticconstexpr |
|
constexpr |
Definition at line 48 of file fixed_string.hpp.
|
constexpr |
Definition at line 51 of file fixed_string.hpp.
|
inlineconstexpr |
Definition at line 73 of file make_policy.hpp.