10 #ifndef RAJA_policy_openmp_target_kernel_For_HPP
11 #define RAJA_policy_openmp_target_kernel_For_HPP
20 template<camp::idx_t ArgumentId,
23 typename... EnclosedStmts>
42 template<
typename InIndexType>
45 data.template assign_offset<ArgumentId>(i);
50 template<camp::idx_t ArgumentId,
52 typename... EnclosedStmts,
55 omp_target_parallel_for_exec<N>,
60 template<
typename Data>
61 static RAJA_INLINE
void exec(Data&& data)
69 auto len = segment_length<ArgumentId>(data);
70 using len_t = decltype(len);
72 auto r = resources::Omp::get_default();
75 RAJA::expt::get_empty_forall_param_pack());
setSegmentType< Types, Segment, camp::at_v< typename camp::decay< Data >::index_types_t, Segment > > setSegmentTypeFromData
Definition: LoopTypes.hpp:95
RAJA_INLINE void execute_statement_list(Data &&data)
Definition: StatementList.hpp:84
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.
Segment class representing a contiguous range of typed indices.
Definition: RangeSegment.hpp:100
Definition: privatizer.hpp:47
camp::decay< Data > data_t
Definition: For.hpp:26
RAJA_INLINE void operator()(InIndexType i)
Definition: For.hpp:43
constexpr RAJA_INLINE OpenMPTargetForWrapper(data_t &d)
Deferences data so that it can be mapped to the device.
Definition: For.hpp:34
RAJA_INLINE void exec()
Definition: For.hpp:37
data_t data
Definition: For.hpp:28
static RAJA_INLINE void exec(Data &&data)
Definition: For.hpp:61
Definition: Statement.hpp:48