kokkos-execution 0.0.1
Loading...
Searching...
No Matches
properties.hpp File Reference
#include "kokkos-execution/stdexec.hpp"
#include "Kokkos_Macros.hpp"
#include "Kokkos_Core.hpp"

Go to the source code of this file.

Classes

struct  Kokkos::Execution::Impl::properties< Properties >
 Type list of properties. More...

Namespaces

namespace  Kokkos
namespace  Kokkos::Execution
namespace  Kokkos::Execution::Impl
namespace  Kokkos::Execution::Impl::detail

Functions

template<template< typename... > typename T, typename... Args>
consteval void Kokkos::Execution::Impl::detail::deduce_from_base (const T< Args... > &)
template<template< typename... > typename T, typename... Args>
constexpr T< Args... > & Kokkos::Execution::Impl::detail::as_base (T< Args... > &base) noexcept
template<template< typename... > typename T, typename... Args>
constexpr const T< Args... > & Kokkos::Execution::Impl::detail::as_base (const T< Args... > &base) noexcept
template<typename Property, typename Data>
constexpr Property & Kokkos::Execution::Impl::detail::as_base (Data &data) noexcept
template<typename Property, typename Data>
constexpr const Property & Kokkos::Execution::Impl::detail::as_base (const Data &data) noexcept
template<typename Data, typename Property>
consteval bool Kokkos::Execution::Impl::has_property ()
 Return true when Data derives from the property Property.
template<typename Data, template< typename... > typename Property>
consteval bool Kokkos::Execution::Impl::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) Kokkos::Execution::Impl::get_property (Data &&data) noexcept
template<template< typename... > typename Property, typename Data>
requires (has_property<std::remove_cvref_t<Data>, Property>())
constexpr decltype(auto) Kokkos::Execution::Impl::get_property (Data &&data) noexcept

Detailed Description

This file contains utilities to operate on operation properties.

Do I need a property or stdexec::env?

If the property presence is "contextual" (e.g. it depends from where it runs, how the sender is connected, and so on), use stdexec::write_env and queries [3]. Such property could by a "dry-run" or a launch priority [1].

If the property presence is "intrinsic" to the operation (i.e. it describes the operation, whatever the context in which it will run), use a property attached to the sender object itself (such as Kokkos::Execution::Impl::ParallelForData). Such property is the label.

Any property that the Kokkos execution policies support should not be re-implemented. The rule is that Kokkos execution-policy-level knobs stay in the execution policy type.

Definition in file properties.hpp.