template<typename LHS, typename RHS, size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
struct visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >
The definition is in ParallelCopy file.
parallel copy is used to allocate the partial result of the right- hand side expression (RHS) to the (partial block of) left hand side expression LHS is always a leaf node.
It can be used for PointOP, NeighbourOP, and GlobalNeighbourOP. template parameters:
- Template Parameters
-
LHS | is the output leafNode |
RHS | is the right-hand side expression |
Cols | determines the column size of the output |
Rows | determines the row size of the output |
OffsetColIn | starting column offset for RHS result |
OffsetRowIn | starting Row offset for RHS result |
OffsetColOut | starting column offset for LHS node |
OffsetRowOut | starting Row offset for LHS node |
LfType | determines the type of the leafNode {Buffer2D, Buffer1D, Host, Image} |
LVL | the level of the node in the expression tree |
Definition at line 51 of file parallel_copy.hpp.
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename TmpLHS , typename TmpRHS >
using visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::ExprExchange = internal::ParallelCopy<TmpLHS, TmpRHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL> |
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::ParallelCopy |
( |
LHS |
lhsArg, |
|
|
RHS |
rhsArg |
|
) |
| |
|
inline |
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
Definition at line 91 of file parallel_copy.hpp.
References visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::lhs, visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::rhs, and visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::subexpr_execution_reseter.
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<bool ForcedToExec, size_t LC, size_t LR, size_t LCT, size_t LRT, typename DeviceT >
LHS visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::sub_expression_evaluation |
( |
const DeviceT & |
dev | ) |
|
|
inline |
sub_expression_evaluation
This function is used to break the expression tree whenever necessary. The decision for breaking the tree will be determined based on the static parameter called SubExpressionEvaluationNeeded. When this is set to true, the sub_expression_evaluation is called recursively from the root of the tree. Each node based on their parent decision will decide to launch a kernel for itself. Also, they decide for each of their children whether or not to launch a kernel separately. template parameters:
- Template Parameters
-
ForcedToExec | : a boolean value representing the decision made by the parent of this node for launching a kernel. |
LC | is the column size of local memory required by Filter2D and DownSmplOP |
LR | is the row size of local memory required by Filter2D and DownSmplOP |
LCT | is the column size of workgroup |
LRT | is the row size of workgroup function parameters: |
- Parameters
-
dev | : the selected device for executing the expression |
- Returns
- LeafNode
Definition at line 119 of file parallel_copy.hpp.
References visioncpp::internal::tools::tuple::get(), visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::Level, visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::lhs, and visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::rhs.
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
Initial value:=
internal::tools::IfConst<internal::tools::IfNode<RHS>::Is_LeafNode, Cols,
RHS::CThread>::Value
Definition at line 59 of file parallel_copy.hpp.
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
constexpr size_t visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::LeafType = Type::LeafType |
|
staticconstexpr |
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
Definition at line 85 of file parallel_copy.hpp.
Referenced by visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::reset(), and visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::sub_expression_evaluation().
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
Definition at line 86 of file parallel_copy.hpp.
Referenced by visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::reset(), and visioncpp::internal::ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >::sub_expression_evaluation().
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>
Initial value:=
internal::tools::IfConst<internal::tools::IfNode<RHS>::Is_LeafNode, Rows,
RHS::RThread>::Value
Definition at line 56 of file parallel_copy.hpp.
template<typename LHS , typename RHS , size_t Cols, size_t Rows, size_t OffsetColIn, size_t OffsetRowIn, size_t OffsetColOut, size_t OffsetRowOut, size_t LfType, size_t LVL>