20 #ifndef RAJA_policy_hip_kernel_Hyperplane_HPP
21 #define RAJA_policy_hip_kernel_Hyperplane_HPP
23 #include "RAJA/config.hpp"
26 #include <type_traits>
28 #include "camp/camp.hpp"
41 template<
typename Data,
42 camp::idx_t HpArgumentId,
44 typename... EnclosedStmts,
46 struct HipStatementExecutor<
49 Hyperplane<HpArgumentId, seq_exec, ArgList<Args...>, EnclosedStmts...>,
59 HipStatementListExecutor<Data, stmt_list_t, NewTypes>;
66 segment_length<HpArgumentId>(data) +
70 camp::get<Args>(data.offset_tuple)...);
73 auto i_len = segment_length<HpArgumentId>(data);
82 for (
int h = 0; h < hp_len; ++h)
91 data.template assign_offset<HpArgumentId>(i);
92 enclosed_stmts_t::exec(data, thread_active && (i >= 0 && i < i_len));
98 return enclosed_stmts_t::calculateDimensions(data);
Header file for common RAJA internal macro definitions.
#define RAJA_DEVICE
Definition: macros.hpp:66
setSegmentType< Types, Segment, camp::at_v< typename camp::decay< Data >::index_types_t, Segment > > setSegmentTypeFromData
Definition: LoopTypes.hpp:95
camp::list< Stmts... > StatementList
Definition: StatementList.hpp:41
Definition: AlignedRangeIndexSetBuilders.cpp:35
RAJA_HOST_DEVICE constexpr RAJA_INLINE auto foldl(Op &&RAJA_UNUSED_ARG(operation), Arg1 &&arg) -> typename detail::foldl_impl< Op, Arg1 >::Ret
Definition: foldl.hpp:104
Header file for hyperplane patern executor.
HipStatementListExecutor< Data, stmt_list_t, NewTypes > enclosed_stmts_t
Definition: Hyperplane.hpp:59
StatementList< EnclosedStmts... > stmt_list_t
Definition: Hyperplane.hpp:53
static LaunchDims calculateDimensions(Data const &data)
Definition: Hyperplane.hpp:96
setSegmentTypeFromData< Types, HpArgumentId, Data > NewTypes
Definition: Hyperplane.hpp:56
static RAJA_DEVICE void exec(Data &data, bool thread_active)
Definition: Hyperplane.hpp:61
Definition: Operators.hpp:367
Header file for RAJA type definitions.