RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Namespaces | Classes | Typedefs | Functions
RAJA::internal Namespace Reference

Namespaces

 detail
 
 expt
 

Classes

struct  StripIndexTypeT
 
struct  StripIndexTypeT< FROM, typename std::enable_if< std::is_base_of< IndexValueBase, FROM >::value >::type >
 
class  has_privatizer
 
struct  GenericWrapperBase
 
struct  Privatizer
 
struct  StatementExecutor< statement::If< Condition, EnclosedStmts... >, Types >
 
struct  ForWrapper
 
struct  StatementExecutor< statement::For< ArgumentId, ExecPolicy, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::For< ArgumentId, seq_exec, EnclosedStmts... >, Types >
 
struct  ForICountWrapper
 
struct  StatementExecutor< statement::ForICount< ArgumentId, ParamId, ExecPolicy, EnclosedStmts... >, Types >
 
struct  HyperplaneInner
 
struct  StatementExecutor< statement::Hyperplane< HpArgumentId, HpExecPolicy, ArgList< Args... >, ExecPolicy, EnclosedStmts... >, Types >
 
struct  StatementExecutor< HyperplaneInner< HpArgumentId, ArgList< Args... >, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::InitLocalMem< RAJA::cpu_tile_mem, camp::idx_seq< Indices... >, EnclosedStmts... >, Types >
 
struct  ForList
 
struct  ForBase
 
struct  CollapseBase
 
struct  ForTraitBase
 
struct  iterable_difftype_getter
 
struct  iterable_value_type_getter
 
struct  LoopData
 
struct  GenericWrapper
 
struct  NestedPrivatizer
 
struct  LoopTypes
 
struct  LoopTypes< camp::list< SegmentTypes... >, camp::list< OffsetTypes... > >
 
struct  SetSegmentTypeHelper
 
struct  SetSegmentTypeHelper< Types, Segment, T, camp::idx_seq< SEQ... > >
 
struct  Statement
 
struct  StatementExecutor
 
struct  StatementListExecutor
 
struct  StatementListExecutor< num_statements, num_statements, StmtList, Types >
 
struct  lambda_arg_seg_t
 
struct  lambda_arg_param_t
 
struct  lambda_arg_offset_t
 
struct  lambda_arg_value_t
 
struct  LambdaArg
 
struct  LambdaSegExtractor
 
struct  LambdaOffsetExtractor
 
struct  LambdaArgSwitchboard
 
struct  LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_offset_t, id > >
 
struct  LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_seg_t, id > >
 
struct  LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_param_t, id > >
 
struct  LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_value_t< T >, value > >
 
struct  StatementExecutor< statement::Lambda< LambdaIndex, Args... >, Types >
 
struct  StatementExecutor< statement::Lambda< LambdaIndex >, Types >
 
struct  StatementExecutor< statement::Region< RegionPolicy, EnclosedStmts... >, Types >
 
struct  TileWrapper
 
struct  IterableTiler
 
struct  StatementExecutor< statement::Tile< ArgumentId, tile_fixed< ChunkSize >, EPol, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::Tile< ArgumentId, tile_dynamic< ArgumentId >, EPol, EnclosedStmts... >, Types >
 
struct  TileTCountWrapper
 
struct  StatementExecutor< statement::TileTCount< ArgumentId, ParamId, TPol, EPol, EnclosedStmts... >, Types >
 
struct  loop_data_has_reducers
 
struct  loop_data_has_reducers< LoopData< SegmentTuple, ParamTuple, Resource, Bodies... > >
 
struct  is_wrapper_with_reducers
 
struct  is_wrapper_with_reducers< ForWrapper< ArgumentId, Data, Types, EnclosedStmts... > >
 
struct  is_wrapper_with_reducers< ForICountWrapper< ArgumentId, ParamId, Data, Types, EnclosedStmts... > >
 
struct  is_wrapper_with_reducers< TileWrapper< ArgumentId, Data, Types, EnclosedStmts... > >
 
struct  is_wrapper_with_reducers< TileTCountWrapper< ArgumentId, Data, Types, EnclosedStmts... > >
 
struct  StripIndexTypeT< RAJA::expt::TensorIndex< IDX, VECTOR_TYPE, DIM > >
 
struct  LambdaSegExtractor< RAJA::expt::TensorIndex< IDX, TENSOR_TYPE, DIM >, id >
 
struct  LambdaOffsetExtractor< RAJA::expt::TensorIndex< IDX, TENSOR_TYPE, DIM >, id >
 
struct  CudaStatementExecutor< Data, statement::If< Conditional, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::DirectUnchecked, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::Direct, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::none, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, seq_exec, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::cuda_warp_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::cuda_warp_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::cuda_thread_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::For< ArgumentId, RAJA::cuda_thread_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::DirectUnchecked, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::Direct, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::cuda::cuda_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::none, IndexMapper >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, seq_exec, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::cuda_warp_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::cuda_warp_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::cuda_thread_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::cuda_thread_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::Hyperplane< HpArgumentId, seq_exec, ArgList< Args... >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::InitLocalMem< RAJA::cuda_shared_mem, camp::idx_seq< Indices... >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::InitLocalMem< RAJA::cuda_thread_mem, camp::idx_seq< Indices... >, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::Reduce< RAJA::cuda_block_reduce, ReduceOperator, ParamId, EnclosedStmts... >, Types >
 
struct  CudaStatementExecutor< Data, statement::Reduce< RAJA::cuda_warp_reduce, ReduceOperator, ParamId, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::If< Conditional, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::hip::hip_indexer< iteration_mapping::DirectUnchecked, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::hip::hip_indexer< iteration_mapping::Direct, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::hip::hip_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::policy::hip::hip_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::none, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, seq_exec, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::hip_warp_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::hip_warp_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::hip_thread_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::For< ArgumentId, RAJA::hip_thread_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::hip::hip_indexer< iteration_mapping::DirectUnchecked, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::hip::hip_indexer< iteration_mapping::Direct, sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::hip::hip_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::sync, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::policy::hip::hip_indexer< iteration_mapping::StridedLoop< named_usage::unspecified >, kernel_sync_requirement::none, IndexMapper >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, seq_exec, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::hip_warp_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::hip_warp_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::hip_thread_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::hip_thread_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::Hyperplane< HpArgumentId, seq_exec, ArgList< Args... >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::InitLocalMem< RAJA::hip_shared_mem, camp::idx_seq< Indices... >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::InitLocalMem< RAJA::hip_thread_mem, camp::idx_seq< Indices... >, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::Reduce< RAJA::hip_block_reduce, ReduceOperator, ParamId, EnclosedStmts... >, Types >
 
struct  HipStatementExecutor< Data, statement::Reduce< RAJA::hip_warp_reduce, ReduceOperator, ParamId, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::Collapse< omp_target_parallel_collapse_exec, ArgList< Arg0, Arg1 >, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::Collapse< omp_target_parallel_collapse_exec, ArgList< Arg0, Arg1, Arg2 >, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::Collapse< omp_target_parallel_collapse_exec, ArgList< Arg0, Arg1, Arg2, Arg3 >, EnclosedStmts... >, Types >
 
struct  OpenMPTargetForWrapper
 
struct  StatementExecutor< statement::For< ArgumentId, omp_target_parallel_for_exec< N >, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::Collapse< seq_exec, ArgList<>, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::Collapse< seq_exec, ArgList< Arg0, ArgRest... >, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::Reduce< seq_reduce, ReduceOperator, ParamId, EnclosedStmts... >, Types >
 
struct  TypeIsLambda
 
struct  TypeIsLambda< RAJA::statement::Lambda< BodyIdx, Args... > >
 
struct  Invoke_all_Lambda
 
struct  Invoke_all_Lambda< Types >
 
struct  Invoke_all_Lambda< Types, Statement, StatementRest... >
 
struct  StatementExecutor< statement::For< ArgumentId, RAJA::simd_exec, EnclosedStmts... >, Types >
 
struct  StatementExecutor< statement::ForICount< ArgumentId, ParamId, RAJA::simd_exec, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::If< Conditional, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::For< ArgumentId, RAJA::sycl_global_012< Dim, Local_Size >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::For< ArgumentId, RAJA::sycl_group_012_direct< Dim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::For< ArgumentId, RAJA::sycl_group_012_loop< Dim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::For< ArgumentId, RAJA::sycl_local_012_direct< Dim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::For< ArgumentId, RAJA::sycl_local_012_loop< Dim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::For< ArgumentId, RAJA::sycl_exec< Local_Size >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::For< ArgumentId, seq_exec, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::sycl_local_012_direct< ThreadDim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::sycl_local_masked_direct< Mask >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::sycl_local_masked_loop< Mask >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::sycl_local_012_loop< ThreadDim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::sycl_group_012_direct< BlockDim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, RAJA::sycl_group_012_loop< BlockDim >, EnclosedStmts... >, Types >
 
struct  SyclStatementExecutor< Data, statement::ForICount< ArgumentId, ParamId, seq_exec, EnclosedStmts... >, Types >
 
struct  IndexLayout_impl
 
struct  IndexLayout_impl< camp::idx_seq< RangeInts... >, IdxLin, IndexTypes... >
 
struct  StaticLayoutHelper
 
struct  StaticLayoutHelper< camp::idx_seq< Perm... >, SizeList< Sizes... > >
 
struct  OffsetLayout_impl
 
struct  OffsetLayout_impl< camp::idx_seq< RangeInts... >, IdxLin >
 
struct  CalcInversePermutationElem
 
struct  CalcInversePermutationElem< I, N, N, Perm >
 
struct  InversePermutationHelper
 
struct  InversePermutationHelper< camp::idx_seq< Range... >, camp::idx_seq< Perm... > >
 
struct  IndexToType
 
struct  SequenceToType
 
struct  SequenceToType< camp::idx_seq< Perm... >, T >
 
struct  add_offset
 
struct  add_offset< RAJA::TypedLayout< IdxLin, camp::tuple< DimTypes... > > >
 
struct  count_num_tensor_args
 
class  ViewBase
 
class  TypedViewBase
 
class  TypedViewBase< ValueType, PointerType, LayoutType, camp::list< IndexTypes... > >
 

Typedefs

template<typename Segments >
using difftype_list_from_segments = typename camp::transform< iterable_difftype_getter, Segments >::type
 
template<typename Segments >
using difftype_tuple_from_segments = typename camp::apply_l< camp::lambda< camp::tuple >, difftype_list_from_segments< Segments > >::type
 
template<typename Segments >
using value_type_list_from_segments = typename camp::transform< iterable_value_type_getter, Segments >::type
 
template<typename Segments >
using index_tuple_from_segments = typename camp::apply_l< camp::lambda< camp::tuple >, value_type_list_from_segments< Segments > >::type
 
template<typename Segments >
using index_types_from_segments = typename camp::apply_l< camp::lambda< camp::list >, value_type_list_from_segments< Segments > >::type
 
template<camp::idx_t ArgumentId, typename Data >
using segment_diff_type = typename std::iterator_traits< typename camp::at_v< typename Data::segment_tuple_t::TList, ArgumentId >::iterator >::difference_type
 
template<typename Data >
using makeInitialLoopTypes = LoopTypes< list_of_n< void, camp::tuple_size< typename Data::segment_tuple_t >::value >, list_of_n< void, camp::tuple_size< typename Data::segment_tuple_t >::value > >
 
template<typename Types , camp::idx_t Segment, typename T >
using setSegmentType = typename SetSegmentTypeHelper< Types, Segment, T, camp::make_idx_seq_t< Types::s_num_segments > >::type
 
template<typename Types , camp::idx_t Segment, typename Data >
using setSegmentTypeFromData = setSegmentType< Types, Segment, camp::at_v< typename camp::decay< Data >::index_types_t, Segment > >
 
template<typename... Stmts>
using StatementList = camp::list< Stmts... >
 
template<typename T , camp::idx_t N>
using list_of_n = typename detail::ListOfNHelper< T, camp::make_idx_seq_t< N > >::type
 
template<typename T , camp::idx_t N>
using tuple_of_n = typename detail::TupleOfNHelper< T, camp::make_idx_seq_t< N > >::type
 
template<typename Perm , typename Sizes >
using getStaticLayoutType = typename StaticLayoutHelper< Perm, Sizes >::type
 
template<typename Perm >
using getDefaultIndexTypes = typename SequenceToType< Perm, RAJA::Index_type >::type
 
template<typename ElementType , typename PointerType , typename LinIdx , typename LayoutType , typename... Args>
using view_return_type_t = typename detail::ViewReturnHelper< camp::make_idx_seq_t< count_num_tensor_args< Args... >::value >, camp::list< Args... >, ElementType, PointerType, LinIdx, LayoutType >::return_type
 

Functions

template<typename TO , typename FROM >
constexpr RAJA_HOST_DEVICE RAJA_INLINE TO convertIndex_helper (FROM const val)
 
template<typename TO , typename FROM >
constexpr RAJA_HOST_DEVICE RAJA_INLINE TO convertIndex_helper (typename FROM::IndexValueType const val)
 
template<typename T , typename std::enable_if<!has_privatizer< T >::value >::type * = nullptr>
RAJA_HOST_DEVICE auto thread_privatize (const T &item) -> Privatizer< T >
 Create a private copy of the argument to be stored on the current thread's stack in a class of the Privatizer concept. More...
 
template<typename T , typename std::enable_if< has_privatizer< T >::value >::type * = nullptr>
RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE auto thread_privatize (const T &item) -> typename T::privatizer
 
template<camp::idx_t ArgumentId, typename Data >
RAJA_INLINE RAJA_HOST_DEVICE auto segment_length (Data const &data) -> segment_diff_type< ArgumentId, Data >
 
template<typename StmtList , typename Types , typename Data >
RAJA_INLINE void execute_statement_list (Data &&data)
 
template<camp::idx_t LoopIndex, typename Types , typename Data , typename... targLists>
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE void invoke_lambda_with_args (Data &&data, camp::list< targLists... > const &)
 
template<camp::idx_t LambdaIndex, typename Types , typename Data , camp::idx_t... SEGS, camp::idx_t... PARAMS>
RAJA_INLINE RAJA_HOST_DEVICE void invoke_lambda (Data &&data, camp::idx_seq< SEGS... > const &, camp::idx_seq< PARAMS... > const &)
 
template<class Tuple , camp::idx_t... I>
constexpr RAJA_INLINE auto make_wrapped_tuple_impl (Tuple &&t, camp::idx_seq< I... >) -> camp::tuple< RAJA::Span< typename camp::decay< camp::tuple_element_t< I, camp::decay< Tuple >>>::iterator, typename camp::decay< camp::tuple_element_t< I, camp::decay< Tuple >>>::IndexType >... >
 
template<typename ElementType , typename LinIdx , typename LayoutType , typename PointerType , typename... Args>
RAJA_INLINE constexpr RAJA_HOST_DEVICE view_return_type_t< ElementType, PointerType, LinIdx, LayoutType, Args... > view_make_return_value (LayoutType const &layout, PointerType const &data, Args const &... args)
 
template<typename Expected , typename Arg >
RAJA_HOST_DEVICE constexpr RAJA_INLINE detail::MatchTypedViewArgHelper< Expected, Arg >::type match_typed_view_arg (Arg const &arg)
 

Detailed Description

RAJA local array Holds a pointer and information necessary to allocate a static array.

Once intialized they can be treated as an N dimensional array on the CPU stack, CUDA thread private memory, or CUDA shared memory. Intialization occurs within the RAJA::Kernel statement ``InitLocalArray"

An accessor is provided to enable multi-dimensional indexing. Two versions are created below, a strongly typed version and a non-strongly typed version.

Typedef Documentation

◆ difftype_list_from_segments

template<typename Segments >
using RAJA::internal::difftype_list_from_segments = typedef typename camp::transform<iterable_difftype_getter, Segments>::type

◆ difftype_tuple_from_segments

template<typename Segments >
using RAJA::internal::difftype_tuple_from_segments = typedef typename camp::apply_l<camp::lambda<camp::tuple>, difftype_list_from_segments<Segments> >::type

◆ value_type_list_from_segments

template<typename Segments >
using RAJA::internal::value_type_list_from_segments = typedef typename camp::transform<iterable_value_type_getter, Segments>::type

◆ index_tuple_from_segments

template<typename Segments >
using RAJA::internal::index_tuple_from_segments = typedef typename camp::apply_l<camp::lambda<camp::tuple>, value_type_list_from_segments<Segments> >::type

◆ index_types_from_segments

template<typename Segments >
using RAJA::internal::index_types_from_segments = typedef typename camp::apply_l<camp::lambda<camp::list>, value_type_list_from_segments<Segments> >::type

◆ segment_diff_type

template<camp::idx_t ArgumentId, typename Data >
using RAJA::internal::segment_diff_type = typedef typename std::iterator_traits< typename camp::at_v<typename Data::segment_tuple_t::TList, ArgumentId>::iterator>::difference_type

◆ makeInitialLoopTypes

template<typename Data >
using RAJA::internal::makeInitialLoopTypes = typedef LoopTypes< list_of_n<void, camp::tuple_size<typename Data::segment_tuple_t>::value>, list_of_n<void, camp::tuple_size<typename Data::segment_tuple_t>::value> >

◆ setSegmentType

template<typename Types , camp::idx_t Segment, typename T >
using RAJA::internal::setSegmentType = typedef typename SetSegmentTypeHelper< Types, Segment, T, camp::make_idx_seq_t<Types::s_num_segments> >::type

◆ setSegmentTypeFromData

template<typename Types , camp::idx_t Segment, typename Data >
using RAJA::internal::setSegmentTypeFromData = typedef setSegmentType< Types, Segment, camp::at_v<typename camp::decay<Data>::index_types_t, Segment> >

◆ StatementList

template<typename... Stmts>
using RAJA::internal::StatementList = typedef camp::list<Stmts...>

◆ list_of_n

template<typename T , camp::idx_t N>
using RAJA::internal::list_of_n = typedef typename detail::ListOfNHelper<T, camp::make_idx_seq_t<N> >::type

◆ tuple_of_n

template<typename T , camp::idx_t N>
using RAJA::internal::tuple_of_n = typedef typename detail::TupleOfNHelper<T, camp::make_idx_seq_t<N> >::type

◆ getStaticLayoutType

template<typename Perm , typename Sizes >
using RAJA::internal::getStaticLayoutType = typedef typename StaticLayoutHelper<Perm, Sizes>::type

◆ getDefaultIndexTypes

template<typename Perm >
using RAJA::internal::getDefaultIndexTypes = typedef typename SequenceToType<Perm, RAJA::Index_type>::type

◆ view_return_type_t

template<typename ElementType , typename PointerType , typename LinIdx , typename LayoutType , typename... Args>
using RAJA::internal::view_return_type_t = typedef typename detail::ViewReturnHelper< camp::make_idx_seq_t<count_num_tensor_args<Args...>::value>, camp::list<Args...>, ElementType, PointerType, LinIdx, LayoutType>::return_type

Function Documentation

◆ convertIndex_helper() [1/2]

template<typename TO , typename FROM >
constexpr RAJA_HOST_DEVICE RAJA_INLINE TO RAJA::internal::convertIndex_helper ( FROM const  val)
constexpr

◆ convertIndex_helper() [2/2]

template<typename TO , typename FROM >
constexpr RAJA_HOST_DEVICE RAJA_INLINE TO RAJA::internal::convertIndex_helper ( typename FROM::IndexValueType const  val)
constexpr

◆ thread_privatize() [1/2]

template<typename T , typename std::enable_if<!has_privatizer< T >::value >::type * = nullptr>
RAJA_HOST_DEVICE auto RAJA::internal::thread_privatize ( const T &  item) -> Privatizer<T>

Create a private copy of the argument to be stored on the current thread's stack in a class of the Privatizer concept.

Parameters
itemdata to privatize
Returns
Privatizer<T>

This function will be invoked such that ADL can be used to extend its functionality. Anywhere it is called it should be invoked by:

using RAJA::internal::thread_privatize; thread_privatize()

This allows other namespaces to add new versions to support functionality that does not belong here.

◆ thread_privatize() [2/2]

template<typename T , typename std::enable_if< has_privatizer< T >::value >::type * = nullptr>
RAJA_SUPPRESS_HD_WARN RAJA_HOST_DEVICE auto RAJA::internal::thread_privatize ( const T &  item) -> typename T::privatizer

◆ segment_length()

template<camp::idx_t ArgumentId, typename Data >
RAJA_INLINE RAJA_HOST_DEVICE auto RAJA::internal::segment_length ( Data const &  data) -> segment_diff_type<ArgumentId, Data>

◆ execute_statement_list()

template<typename StmtList , typename Types , typename Data >
RAJA_INLINE void RAJA::internal::execute_statement_list ( Data &&  data)

◆ invoke_lambda_with_args()

template<camp::idx_t LoopIndex, typename Types , typename Data , typename... targLists>
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE void RAJA::internal::invoke_lambda_with_args ( Data &&  data,
camp::list< targLists... > const &   
)

◆ invoke_lambda()

template<camp::idx_t LambdaIndex, typename Types , typename Data , camp::idx_t... SEGS, camp::idx_t... PARAMS>
RAJA_INLINE RAJA_HOST_DEVICE void RAJA::internal::invoke_lambda ( Data &&  data,
camp::idx_seq< SEGS... > const &  ,
camp::idx_seq< PARAMS... > const &   
)

◆ make_wrapped_tuple_impl()

template<class Tuple , camp::idx_t... I>
constexpr RAJA_INLINE auto RAJA::internal::make_wrapped_tuple_impl ( Tuple &&  t,
camp::idx_seq< I... >   
) -> camp::tuple<RAJA::Span< typename camp::decay< camp::tuple_element_t<I, camp::decay<Tuple>>>::iterator, typename camp::decay< camp::tuple_element_t<I, camp::decay<Tuple>>>::IndexType>...>
constexpr

◆ view_make_return_value()

template<typename ElementType , typename LinIdx , typename LayoutType , typename PointerType , typename... Args>
RAJA_INLINE constexpr RAJA_HOST_DEVICE view_return_type_t<ElementType, PointerType, LinIdx, LayoutType, Args...> RAJA::internal::view_make_return_value ( LayoutType const &  layout,
PointerType const &  data,
Args const &...  args 
)
constexpr

◆ match_typed_view_arg()

template<typename Expected , typename Arg >
RAJA_HOST_DEVICE constexpr RAJA_INLINE detail::MatchTypedViewArgHelper<Expected, Arg>::type RAJA::internal::match_typed_view_arg ( Arg const &  arg)
constexpr