kokkos-execution 0.0.1
Loading...
Searching...
No Matches
Tests::GraphImpl Namespace Reference

Classes

class  BulkTest
class  BulkTest_bulk_schedule_Test
class  BulkTest_bulk_starts_on_Test
class  ContinuesOnTest
class  ContinuesOnTest_then_continues_on_single_thread_context_continues_on_then_Test
class  ContinuesOnTest_transition_to_another_graph_scheduler_instance_and_back_different_type_Test
class  ContinuesOnTest_transition_to_another_graph_scheduler_instance_and_back_same_type_Test
class  ContinuesOnTest_transition_to_another_graph_scheduler_instance_same_type_Test
class  ContinuesOnTest_transition_to_same_graph_scheduler_instance_Test
class  DomainTest
class  DomainTest_has_apply_sender_for_sync_wait_Test
class  DomainTest_has_transform_sender_for_bulk_Test
class  DomainTest_has_transform_sender_for_then_Test
class  DomainTest_not_default_domain_like_bulk_Test
class  DomainTest_not_default_domain_like_then_Test
class  EventsTest
class  EventsTest_create_and_add_nodes_Test
class  EventsTest_create_instantiate_and_submit_Test
class  GraphAddAggregateNodeEvent_streaming_operator_Test
class  GraphCreateEvent_streaming_operator_Test
struct  GraphEventDiscardMatcher
 Similar to EventDiscardMatcher, for graph-related events. More...
class  is_useless_Test
 Because we need at least one discoverable runtime test per unit. More...
class  ParallelForTest
class  ParallelForTest_parallel_for_schedule_tagged_operator_Test
class  ParallelForTest_parallel_for_schedule_Test
class  ParallelForTest_parallel_for_starts_on_Test
class  ParallelForTest_with_range_slice_Test
class  ParallelReduceTest
class  ParallelReduceTest_range_policy_into_rank_0_view_Test
class  ParallelReduceTest_range_policy_maxloc_reducer_Test
class  ParallelReduceTest_starts_on_parallel_region_Test
class  RemainsOnGraphForTest
class  RemainsOnGraphForTest_dependent_sender_partly_on_graph_domain_Test
class  RemainsOnGraphForTest_non_dependent_sender_in_when_all_mixed_branches_Test
class  RemainsOnGraphForTest_non_dependent_sender_in_when_all_Test
class  RemainsOnGraphForTest_non_dependent_sender_Test
class  RemainsOnGraphForTest_non_dependent_sender_with_continues_on_Test
class  RepeatEffectUntilTest
class  RepeatEffectUntilTest_works_Test
class  Scheduler_round_trip_property_Test
class  SyncWaitTest
class  ThenTest
class  ThenTest_forwarding_env_Test
class  ThenTest_then_schedule_node_type_Test
class  ThenTest_then_schedule_Test
class  ThenTest_then_starts_on_Test
class  WhenAllTest
class  WhenAllTest_forwarding_env_Test
class  WhenAllTest_schedule_sender_and_single_branch_Test
class  WhenAllTest_schedule_sender_Test
class  WhenAllTest_single_branch_Test
class  WhenAllTest_three_branches_some_starting_on_single_thread_context_Test
class  WhenAllTest_three_branches_starting_on_single_thread_context_Test
class  WhenAllTest_three_branches_Test
class  WhenAllTest_two_branches_Test
class  WhenAllTest_two_branches_with_schedule_senders_only_Test

Typedefs

using node_props_t = Kokkos::Impl::NodeCtorProps<Kokkos::Impl::DeviceHandle<TEST_EXECUTION_SPACE>, std::string>
template<typename Sndr, typename Exec, typename Label, typename Functor, typename Policy>
using pfor_generic_t
template<typename Sndr, typename Exec, typename Label, typename Functor, typename Policy>
using pfor_impl_t
template<typename Sndr, typename Exec, typename Label, typename Functor, typename Policy, typename Reducer>
using pred_generic_t
template<typename Sndr, typename Exec, typename Label, typename Functor, typename Policy, typename Reducer>
using pred_impl_t
using graph_context_t = Kokkos::Execution::GraphContext<TEST_EXECUTION_SPACE>
using graph_scheduler_t = Kokkos::Execution::GraphImpl::Scheduler<TEST_EXECUTION_SPACE>
using graph_schedule_sender_t = typename graph_scheduler_t::Sender
using graph_schedule_sender_attrs_t = typename graph_schedule_sender_t::Attributes

Functions

consteval bool test_sndr_traits ()
consteval bool test_sndr_nothrow_transformable ()
consteval bool test_sndr_nothrow_connectable ()
consteval bool test_bulk_op_state_traits ()
consteval bool test_schedule_from_sndr_traits ()
consteval bool test_continues_on_sndr_traits ()
consteval bool test_noexcept ()
consteval bool test_node_props_t ()
consteval bool test_device_handle_of_t ()
consteval bool test_exec_of_t ()
template<template< typename... > class SndrAdptr, bool ExptIsDispatchingSender, template< typename > typename ExptTransformSenderType>
consteval bool test_sndr_traits ()
template<typename ViewType>
consteval bool test_closure_traits ()
consteval bool test_scheduler_schedule ()
consteval bool test_schedule_sender_attrs ()
consteval bool test_scheduler_queries ()
consteval bool test_schedule_sender_attrs_queries ()
consteval bool test_schedule_sender_completion_signatures ()
consteval bool test_schedule_sender_opstate ()
consteval bool test_then_op_state_traits ()
template<typename ExecA, typename ExecB>
consteval bool test_sndr_cannot_mix_execution_space_type ()
consteval bool test_count_is_empty_when_as_one ()
consteval bool test_when_all_remains_on_graph_for_two_branches ()
consteval bool test_when_all_does_not_remain_on_graph_for_two_branches ()
consteval bool test_when_all_does_not_remain_on_graph_for_three_branches ()

Typedef Documentation

◆ graph_context_t

Definition at line 26 of file test_scheduler.cpp.

◆ graph_schedule_sender_attrs_t

using Tests::GraphImpl::graph_schedule_sender_attrs_t = typename graph_schedule_sender_t::Attributes

Definition at line 29 of file test_scheduler.cpp.

◆ graph_schedule_sender_t

using Tests::GraphImpl::graph_schedule_sender_t = typename graph_scheduler_t::Sender

Definition at line 28 of file test_scheduler.cpp.

◆ graph_scheduler_t

Definition at line 27 of file test_scheduler.cpp.

◆ node_props_t

using Tests::GraphImpl::node_props_t = Kokkos::Impl::NodeCtorProps<Kokkos::Impl::DeviceHandle<TEST_EXECUTION_SPACE>, std::string>

Definition at line 19 of file test_node_props.cpp.

◆ pfor_generic_t

◆ pfor_impl_t

template<typename Sndr, typename Exec, typename Label, typename Functor, typename Policy>
using Tests::GraphImpl::pfor_impl_t
Initial value:
Sndr,
Functor,
Policy
>
typename Kokkos::Impl::NodeCtorProps< Kokkos::Impl::DeviceHandle< Exec >, Label >::uniform_type node_props_t

Definition at line 124 of file test_parallel_for.cpp.

◆ pred_generic_t

◆ pred_impl_t

template<typename Sndr, typename Exec, typename Label, typename Functor, typename Policy, typename Reducer>
using Tests::GraphImpl::pred_impl_t

Function Documentation

◆ test_bulk_op_state_traits()

bool Tests::GraphImpl::test_bulk_op_state_traits ( )
consteval
Test
Check that the stdexec::connect result is Kokkos::Execution::GraphImpl::OpState, and the Kokkos node types are hierarchical and fully typed on predecessors.

Definition at line 138 of file test_bulk.cpp.

References test_bulk_op_state_traits().

◆ test_closure_traits()

template<typename ViewType>
bool Tests::GraphImpl::test_closure_traits ( )
consteval

◆ test_continues_on_sndr_traits()

bool Tests::GraphImpl::test_continues_on_sndr_traits ( )
consteval
Test
Check traits of the sender created by the customized stdexec::continues_on.

Definition at line 78 of file test_continues_on.cpp.

References Tests::Utils::check_continues_on(), TEST_CATEGORY, and test_continues_on_sndr_traits().

◆ test_count_is_empty_when_as_one()

bool Tests::GraphImpl::test_count_is_empty_when_as_one ( )
consteval
Test
Check that when all branches remain on graph, Kokkos::Execution::GraphImpl::WhenAllOpState::count is empty.

Definition at line 199 of file test_when_all.cpp.

References TEST_CATEGORY, and test_count_is_empty_when_as_one().

◆ test_device_handle_of_t()

bool Tests::GraphImpl::test_device_handle_of_t ( )
consteval
Test
Check that Kokkos::Execution::GraphImpl::device_handle_of_t works as expected.

Definition at line 32 of file test_node_props.cpp.

References test_device_handle_of_t().

◆ test_exec_of_t()

bool Tests::GraphImpl::test_exec_of_t ( )
consteval
Test
Check that Kokkos::Execution::GraphImpl::exec_of_t works as expected.

Definition at line 44 of file test_node_props.cpp.

References test_exec_of_t().

◆ test_node_props_t()

bool Tests::GraphImpl::test_node_props_t ( )
consteval
Test
Check that Kokkos::Execution::GraphImpl::node_props_t works as expected.

Definition at line 22 of file test_node_props.cpp.

References test_node_props_t().

◆ test_noexcept()

◆ test_schedule_from_sndr_traits()

bool Tests::GraphImpl::test_schedule_from_sndr_traits ( )
consteval
Test
Check traits of the sender created by the customized stdexec::schedule_from.

Definition at line 64 of file test_continues_on.cpp.

References TEST_CATEGORY, and test_schedule_from_sndr_traits().

◆ test_schedule_sender_attrs()

bool Tests::GraphImpl::test_schedule_sender_attrs ( )
consteval

◆ test_schedule_sender_attrs_queries()

bool Tests::GraphImpl::test_schedule_sender_attrs_queries ( )
consteval

◆ test_schedule_sender_completion_signatures()

bool Tests::GraphImpl::test_schedule_sender_completion_signatures ( )
consteval

◆ test_schedule_sender_opstate()

bool Tests::GraphImpl::test_schedule_sender_opstate ( )
consteval
Test
Check that Kokkos::Execution::GraphImpl::Scheduler::OpState is not queryable for Kokkos::Execution::GraphImpl::get_node_t, even when the receiver provides provide the query.

For a receiver that does not provide the query, the operation state is instantiable, but not queryable for a graph node.

For a receiver that provides the query, the operation state is instantiable, but not queryable for a graph node.

Definition at line 127 of file test_scheduler.cpp.

References test_schedule_sender_opstate().

◆ test_scheduler_queries()

bool Tests::GraphImpl::test_scheduler_queries ( )
consteval
Test
Check Kokkos::Execution::GraphImpl::Scheduler queries.

Definition at line 71 of file test_scheduler.cpp.

References test_scheduler_queries().

◆ test_scheduler_schedule()

bool Tests::GraphImpl::test_scheduler_schedule ( )
consteval

◆ test_sndr_cannot_mix_execution_space_type()

template<typename ExecA, typename ExecB>
bool Tests::GraphImpl::test_sndr_cannot_mix_execution_space_type ( )
consteval
Test
Check that the customization properly rejects cases where the execution space types of the branches are not all the same.

Definition at line 162 of file test_when_all.cpp.

References Kokkos::Execution::GraphContext< Exec >::get_scheduler(), and test_sndr_cannot_mix_execution_space_type().

◆ test_sndr_nothrow_connectable()

bool Tests::GraphImpl::test_sndr_nothrow_connectable ( )
consteval
Test
Check that it cannot be nothrow-connected.
Test
Check that it cannot be nothrow-connected.
Test
Check that it cannot be nothrow-connected.

Upon stdexec::connect, the graph will be constructed.

Definition at line 123 of file test_bulk.cpp.

References test_sndr_nothrow_connectable().

◆ test_sndr_nothrow_transformable()

bool Tests::GraphImpl::test_sndr_nothrow_transformable ( )
consteval
Test
Our customization is not selected. No value channel is added, such that it is not sync-waitable.
Test
Check noexcept specification of sender transformation.
Test
Check noexcept specification of sender transformation.
Test
Our customization is not selected. No value channel is added, such that it is not sync-waitable.
Test
Check noexcept specification of sender transformation.
Test
Check noexcept specification of sender transformation.

Definition at line 90 of file test_bulk.cpp.

References test_sndr_nothrow_transformable().

◆ test_sndr_traits() [1/2]

bool Tests::GraphImpl::test_sndr_traits ( )
consteval
Test
Check traits of sender returned by stdexec::bulk when customized for Kokkos::Execution::GraphImpl::Domain.
Test
Check traits of sender returned by stdexec::then when customized for Kokkos::Execution::GraphImpl::Domain.
Test
Check traits of sender returned by stdexec::when_all when customized for Kokkos::Execution::GraphImpl::Domain.

Schedule sender.

Bulk sender.

Models the graph completing sender concept.

Does not model the dispatching sender concept.

Schedule sender.

Then sender.

Models the graph completing sender concept.

Does not model the dispatching sender concept.

Schedule sender.

stdexec::then sender.

stdexec::when_all sender.

Does not model the graph completing sender concept.

Does not model the dispatching sender concept.

Definition at line 57 of file test_bulk.cpp.

References test_sndr_traits().

◆ test_sndr_traits() [2/2]

template<template< typename... > class SndrAdptr, bool ExptIsDispatchingSender, template< typename > typename ExptTransformSenderType>
bool Tests::GraphImpl::test_sndr_traits ( )
consteval
Test
Check traits of sender returned by Kokkos::Execution::parallel_for either uncustomized or customized for Kokkos::Execution::GraphContext.
Test
Check traits of sender returned by Kokkos::Execution::parallel_reduce either uncustomized or customized for Kokkos::Execution::GraphContext.

Schedule sender.

Parallel for sender.

Models the graph completing sender concept.

Models the dispatching sender concept.

Has the expected completion signatures.

Has the expected completion domain.

Has the expected completion scheduler.

Is connectable.

It is not nothrow connectable.

Schedule sender.

Parallel reduce sender.

Models the graph completing sender concept.

Models the dispatching sender concept.

Has the expected completion signatures.

Has the expected completion domain.

Has the expected completion scheduler.

Is connectable.

It is not nothrow connectable.

Definition at line 64 of file test_parallel_for.cpp.

References TEST_CATEGORY, and test_sndr_traits().

◆ test_then_op_state_traits()

bool Tests::GraphImpl::test_then_op_state_traits ( )
consteval
Test
Check that the stdexec::connect result is Kokkos::Execution::GraphImpl::OpState, and the Kokkos node types are hierarchical and fully typed on predecessors.

Definition at line 141 of file test_then.cpp.

References test_then_op_state_traits().

◆ test_when_all_does_not_remain_on_graph_for_three_branches()

bool Tests::GraphImpl::test_when_all_does_not_remain_on_graph_for_three_branches ( )
consteval
Test
Check that Kokkos::Execution::GraphImpl::RemainsOnGraphFor can properly flag the resulting operation state as "not remains on the graph" with a useful diagnostic.

One branch out of the three remains on the graph.

This branch will not remain on the graph.

This branch will remain on the graph.

This branch will not remain on the graph.

The resulting stdexec::when_all operation is well formed, but does not remain on the graph.

The diagnosis is quite verbose, but reading it points exactly to which parts of the operation states are rejected.

Definition at line 737 of file test_when_all.cpp.

References TEST_CATEGORY, and test_when_all_does_not_remain_on_graph_for_three_branches().

◆ test_when_all_does_not_remain_on_graph_for_two_branches()

bool Tests::GraphImpl::test_when_all_does_not_remain_on_graph_for_two_branches ( )
consteval
Test
Check that Kokkos::Execution::GraphImpl::RemainsOnGraphFor can properly flag the resulting operation state as "not remains on the graph" with a useful diagnostic.

One branch out of the two remains on the graph.

This branch will not remain on the graph.

This branch will remain on the graph.

The resulting stdexec::when_all operation is well formed, but does not remain on the graph.

The diagnosis is quite verbose, but reading it points exactly to which parts of the operation states are rejected.

Definition at line 669 of file test_when_all.cpp.

References TEST_CATEGORY, and test_when_all_does_not_remain_on_graph_for_two_branches().

◆ test_when_all_remains_on_graph_for_two_branches()

bool Tests::GraphImpl::test_when_all_remains_on_graph_for_two_branches ( )
consteval
Test
Check that Kokkos::Execution::GraphImpl::RemainsOnGraphFor can properly flag the resulting operation state as "remains on the graph".

The resulting stdexec::when_all operation is well formed, and remains on the graph.

Definition at line 636 of file test_when_all.cpp.

References Kokkos::Execution::Impl::mandate_or_explain(), TEST_CATEGORY, and test_when_all_remains_on_graph_for_two_branches().