24 #ifndef VISIONCPP_INCLUDE_FRAMEWORK_EVALUATOR_EVALUATOR_HPP_
25 #define VISIONCPP_INCLUDE_FRAMEWORK_EVALUATOR_EVALUATOR_HPP_
34 template <
size_t Halo,
size_t DimSize>
45 else if (val >= DimSize)
53 template <
size_t DimSize>
61 return ((index < DimSize) ? index : DimSize - 1);
71 template <
size_t Halo,
size_t DimSize>
88 template <
typename Expr,
typename Loc,
typename... Params>
95 template <
typename elementType,
int dimensions,
96 cl::sycl::access::mode accessMode,
97 cl::sycl::access::target accessTarget>
99 cl::sycl::accessor<elementType, dimensions, accessMode, accessTarget>> {
101 static constexpr
int Dim = dimensions;
105 template <
typename T>
118 template <
size_t N,
size_t Indx,
size_t LeafType,
size_t Sc>
120 static constexpr
size_t Index = Indx;
123 template <
size_t N,
size_t Indx,
size_t Sc>
130 template <
size_t N,
size_t Indx,
size_t LeafType>
193 template <
size_t OPT,
size_t Output_Index,
size_t Offset,
size_t LC,
size_t LR,
194 typename Expr,
typename Loc,
typename... Params>
251 template <
typename Expr,
typename Loc,
typename... Params>
264 template <
bool IsRoot,
size_t OutOffset>
266 static constexpr
size_t ID = OutOffset;
270 template <
size_t OutOffset>
272 static constexpr
size_t ID = 0;
275 template <
size_t Halo_Top,
size_t Halo_Left,
size_t Halo_Butt,
276 size_t Halo_Right,
size_t Offset,
size_t LC,
size_t LR,
size_t Sc,
277 typename Expr,
typename Loc,
typename... Params>
282 template <
size_t Offset,
size_t LC,
size_t LR,
typename Expr,
typename Loc,
289 Evaluator<Expr::Operation_type, Index, Offset, LC, LR, Expr, Loc,
290 Params...>
::eval(cOffset, t);
This file contains the specialisation of the Evaluator struct for assign when it is a root struct.
This file contains the specialisation of the Evaluator struct for assign when it is a root struct.
This file contains a collection of headers that required for eval_expression.
static size_t get_global_range(size_t index)
template deduction function for get_global_range template parameters:
static void fill_local_neighbour(Loc &cOffset, const internal::tools::tuple::Tuple< Params... > &t)
template deduction for Fill struct.
void eval(Loc &cOffset, const tools::tuple::Tuple< Params... > &t)
deduction function for Evaluator struct.
static constexpr size_t Const
static constexpr ScopeType Constant
static constexpr ScopeType Global
this file contains the partial specialisation of the Fill for LeafNode
The definition can be found in ConstMemory.
this struct is used to convert the sycl target to visioncpp target
eval_global_neighbour function:
the root of the expression tree.
The Fill is used to load a rectangle neighbour area from global memory to local memory.
static size_t get_global_range(size_t index)
function get_global_range checks the range and pass the correct value as an index parameters:
GetGlobalRange is used to check the range when the halo is applied template parameters.
static size_t get_global_range(size_t index)
function get_global_range checks the range and pass the correct value as an index parameters:
is used to find the index required to access the accessor inside the buffer.
static constexpr size_t Index
is used to count the total number of local memory for the subxpression.
This is used to find whether a node should use a global memory output or a local memory output is cre...
static constexpr size_t ID
This struct is used to trait the value type inside the accessor.