20 #ifndef RAJA_pattern_kernel_TileTCount_HPP
21 #define RAJA_pattern_kernel_TileTCount_HPP
23 #include "RAJA/config.hpp"
26 #include <type_traits>
28 #include "camp/camp.hpp"
29 #include "camp/concepts.hpp"
30 #include "camp/tuple.hpp"
47 template<camp::idx_t ArgumentId,
51 typename... EnclosedStmts>
54 static_assert(std::is_base_of<RAJA::expt::detail::ParamBase, ParamId>::value,
55 "Inappropriate ParamId, ParamId must be of type "
56 "RAJA::Statement::Param< # >");
72 template<camp::idx_t ArgumentId,
76 typename... EnclosedStmts>
84 template<
typename InSegmentIndexType>
88 camp::get<ArgumentId>(
Base::data.segment_tuple) = si.s;
91 Base::data.template assign_param<ParamId>(si.i);
103 template<camp::idx_t ArgumentId,
107 typename... EnclosedStmts,
110 statement::TileTCount<ArgumentId, ParamId, TPol, EPol, EnclosedStmts...>,
115 template<
typename Data>
116 static RAJA_INLINE
void exec(Data& data)
119 auto const& segment = camp::get<ArgumentId>(data.segment_tuple);
122 auto chunk_size = TPol::chunk_size;
126 IterableTiler<decltype(segment)> tiled_iterable(segment, chunk_size);
134 forall_impl(r, EPol {}, tiled_iterable, tile_wrapper,
135 RAJA::expt::get_empty_forall_param_pack());
138 camp::get<ArgumentId>(data.segment_tuple) = tiled_iterable.
it;
Header file for common RAJA internal macro definitions.
RAJA_INLINE void forall_impl(MultiPolicy< Selector, Policies... > p, Iterable &&iter, Body &&body)
Definition: MultiPolicy.hpp:96
Definition: AlignedRangeIndexSetBuilders.cpp:35
Header file for loop kernel internals.
Definition: LoopData.hpp:196
data_t & data
Definition: LoopData.hpp:199
RAJA_INLINE void exec()
Definition: LoopData.hpp:205
value_type it
Definition: Tile.hpp:222
Definition: LoopData.hpp:216
static RAJA_INLINE void exec(Data &data)
Definition: TileTCount.hpp:116
Definition: Statement.hpp:48
Definition: Statement.hpp:35
Definition: TileTCount.hpp:78
RAJA_INLINE void operator()(InSegmentIndexType si)
Definition: TileTCount.hpp:85
Definition: IndexSet.hpp:70
Definition: resource.hpp:48
Definition: TileTCount.hpp:53
TilePolicy tile_policy_t
Definition: TileTCount.hpp:57
Header file for RAJA type definitions.