20 #ifndef RAJA_policy_simd_kernel_For_HPP
21 #define RAJA_policy_simd_kernel_For_HPP
23 #include "RAJA/config.hpp"
26 #include <type_traits>
47 static const bool value =
false;
50 template<camp::idx_t BodyIdx,
typename... Args>
62 template<
typename Types,
class... Statements>
65 template<
typename Types>
69 template<
typename Data>
76 template<
typename Types,
class Statement,
class... StatementRest>
82 static_assert(value,
"Lambdas are only supported post RAJA::simd_exec");
85 template<
typename Data>
103 template<camp::idx_t ArgumentId,
typename... EnclosedStmts,
typename Types>
105 statement::For<ArgumentId, RAJA::simd_exec, EnclosedStmts...>,
109 template<
typename Data>
110 static RAJA_INLINE
void exec(Data&& data)
116 auto iter = get<ArgumentId>(data.segment_tuple);
117 auto begin = std::begin(
iter);
118 auto end = std::end(
iter);
119 auto distance = std::distance(begin, end);
122 for (decltype(distance) i = 0; i < distance; ++i)
131 private_data.template assign_offset<ArgumentId>(i);
value_type::device_call &[i_loop] iter
Definition: WorkRunner.hpp:216
setSegmentType< Types, Segment, camp::at_v< typename camp::decay< Data >::index_types_t, Segment > > setSegmentTypeFromData
Definition: LoopTypes.hpp:95
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 Pr...
Definition: privatizer.hpp:88
Definition: AlignedRangeIndexSetBuilders.cpp:35
auto privatizer
Definition: launch.hpp:176
Header file for kernel lambda executor.
Header file for loop kernel internals.
Header file containing RAJA simd policy definitions.
static RAJA_INLINE void lambda_special(Data &&data)
Definition: For.hpp:86
static RAJA_INLINE void lambda_special(Data &&)
Definition: For.hpp:70
static RAJA_INLINE void exec(Data &&data)
Definition: For.hpp:110
Definition: Statement.hpp:48
Definition: Statement.hpp:35
static const bool value
Definition: For.hpp:47
Definition: Lambda.hpp:128