RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Classes | Public Types | Public Member Functions | List of all members
RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args > Struct Template Reference

#include <WorkRunner.hpp>

Inheritance diagram for RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >:
RAJA::detail::WorkRunnerForallOrdered< RAJA::hip_exec_async< BLOCK_SIZE >, RAJA::hip_work< BLOCK_SIZE, Async >, RAJA::ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallOrdered< RAJA::cuda_exec_explicit_async< BLOCK_SIZE, BLOCKS_PER_SM >, RAJA::cuda_work_explicit< BLOCK_SIZE, BLOCKS_PER_SM, Async >, RAJA::ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallOrdered< RAJA::omp_target_parallel_for_exec_nt, RAJA::omp_target_work, RAJA::ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallOrdered< RAJA::seq_exec, RAJA::seq_work, RAJA::ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallOrdered< RAJA::omp_parallel_for_exec, RAJA::omp_work, RAJA::ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallReverse< RAJA::omp_target_parallel_for_exec_nt, RAJA::omp_target_work, RAJA::reverse_ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallReverse< RAJA::omp_parallel_for_exec, RAJA::omp_work, RAJA::reverse_ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallReverse< RAJA::seq_exec, RAJA::seq_work, RAJA::reverse_ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallReverse< RAJA::cuda_exec_explicit_async< BLOCK_SIZE, BLOCKS_PER_SM >, RAJA::cuda_work_explicit< BLOCK_SIZE, BLOCKS_PER_SM, Async >, RAJA::reverse_ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... > RAJA::detail::WorkRunnerForallReverse< RAJA::hip_exec_async< BLOCK_SIZE >, RAJA::hip_work< BLOCK_SIZE, Async >, RAJA::reverse_ordered, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args... >

Classes

struct  holder_type
 

Public Types

using exec_policy = EXEC_POLICY_T
 
using order_policy = ORDER_POLICY_T
 
using dispatch_policy = DISPATCH_POLICY_T
 
using Allocator = ALLOCATOR_T
 
using index_type = INDEX_T
 
using resource_type = typename resources::get_resource< FORALL_EXEC_POLICY >::type
 
using forall_exec_policy = FORALL_EXEC_POLICY
 
template<typename T >
using holder_type_t = typename holder_type::template type< T >
 
using dispatcher_exec_policy = RAJA::seq_work
 
using dispatcher_holder_policy = dispatcher_transform_types_t< dispatch_policy, holder_type >
 
using dispatcher_type = Dispatcher< Platform::host, dispatcher_holder_policy, void, resource_type, Args... >
 
using per_run_storage = int
 

Public Member Functions

 WorkRunnerForallOrdered_base ()=default
 
 WorkRunnerForallOrdered_base (WorkRunnerForallOrdered_base const &)=delete
 
WorkRunnerForallOrdered_baseoperator= (WorkRunnerForallOrdered_base const &)=delete
 
 WorkRunnerForallOrdered_base (WorkRunnerForallOrdered_base &&)=default
 
WorkRunnerForallOrdered_baseoperator= (WorkRunnerForallOrdered_base &&)=default
 
template<typename WorkContainer , typename segment_T , typename loop_T >
void enqueue (WorkContainer &storage, segment_T &&seg, loop_T &&loop)
 
void clear ()
 

Detailed Description

template<typename FORALL_EXEC_POLICY, typename EXEC_POLICY_T, typename ORDER_POLICY_T, typename DISPATCH_POLICY_T, typename ALLOCATOR_T, typename INDEX_T, typename... Args>
struct RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >

Base class describing storage for ordered runners using forall

Member Typedef Documentation

◆ exec_policy

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::exec_policy = EXEC_POLICY_T

◆ order_policy

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::order_policy = ORDER_POLICY_T

◆ dispatch_policy

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::dispatch_policy = DISPATCH_POLICY_T

◆ Allocator

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::Allocator = ALLOCATOR_T

◆ index_type

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::index_type = INDEX_T

◆ resource_type

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::resource_type = typename resources::get_resource<FORALL_EXEC_POLICY>::type

◆ forall_exec_policy

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::forall_exec_policy = FORALL_EXEC_POLICY

◆ holder_type_t

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
template<typename T >
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::holder_type_t = typename holder_type::template type<T>

◆ dispatcher_exec_policy

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::dispatcher_exec_policy = RAJA::seq_work

◆ dispatcher_holder_policy

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::dispatcher_holder_policy = dispatcher_transform_types_t<dispatch_policy, holder_type>

◆ dispatcher_type

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::dispatcher_type = Dispatcher<Platform::host, dispatcher_holder_policy, void, resource_type, Args...>

◆ per_run_storage

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
using RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::per_run_storage = int

Constructor & Destructor Documentation

◆ WorkRunnerForallOrdered_base() [1/3]

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::WorkRunnerForallOrdered_base ( )
default

◆ WorkRunnerForallOrdered_base() [2/3]

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::WorkRunnerForallOrdered_base ( WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args > const &  )
delete

◆ WorkRunnerForallOrdered_base() [3/3]

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::WorkRunnerForallOrdered_base ( WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args > &&  )
default

Member Function Documentation

◆ operator=() [1/2]

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
WorkRunnerForallOrdered_base& RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::operator= ( WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args > const &  )
delete

◆ operator=() [2/2]

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
WorkRunnerForallOrdered_base& RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::operator= ( WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args > &&  )
default

◆ enqueue()

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
template<typename WorkContainer , typename segment_T , typename loop_T >
void RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::enqueue ( WorkContainer &  storage,
segment_T &&  seg,
loop_T &&  loop 
)
inline

◆ clear()

template<typename FORALL_EXEC_POLICY , typename EXEC_POLICY_T , typename ORDER_POLICY_T , typename DISPATCH_POLICY_T , typename ALLOCATOR_T , typename INDEX_T , typename... Args>
void RAJA::detail::WorkRunnerForallOrdered_base< FORALL_EXEC_POLICY, EXEC_POLICY_T, ORDER_POLICY_T, DISPATCH_POLICY_T, ALLOCATOR_T, INDEX_T, Args >::clear ( )
inline

The documentation for this struct was generated from the following file: