VisionCpp
0.0.1
|
Internal implementations. More...
Namespaces | |
element_category | |
two category of element exist : basic which is the primary types and struct which is user define types like F32C3, U8C3, ... | |
expr_category | |
this is used to define the type of nodes in an expression tree | |
mem_dim | |
Color / Row-major option. | |
ops_category | |
list of supported types of operations the operation type can be Point operation, neighbour operation | |
tools | |
Internal tools scope. | |
Classes | |
struct | DeviceSelector |
this class is used to define different types of device for sycl More... | |
struct | DeviceSelector< device::cpu > |
specialisation of the device_selector for sycl when the device type is cpu More... | |
struct | DeviceSelector< device::gpu > |
specialisation of the device_selector for sycl when the device type is gpu More... | |
struct | DeviceSelector< device::host > |
specialisation of the device_selector for sycl when the device type is host More... | |
struct | ExtractAccessor |
The extract accessor struct is used to extract the accessor from the leafnodes and pack them in a tuple by using the in-order traverse algorithm on the expression tree. More... | |
struct | ExtractAccessor< expr_category::Unary, LeafNode< RHS, LVL > > |
Specialisation of ExtractAccessor class where the expression node is LeafNode. More... | |
struct | ExtractAccessor< expr_category::Unary, Expr > |
Specialisation of ExtractAccessor class where the expression node has one child. More... | |
struct | ExtractAccessor< expr_category::Binary, Expr > |
Specialisation of ExtractAccessor class where the expression node has two children. More... | |
struct | ExtractAccessor< expr_category::Binary, Assign< LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > > |
Specialisation of ExtractAccessor class where the expression node is Assign. More... | |
struct | ExtractAccessor< expr_category::Binary, ParallelCopy< LHSExpr, RHSExpr, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LeafType, LVL > > |
Specialisation of ExtractAccessor class where the expression node is is a ParallelCopy (partial assign) More... | |
class | Device_< backend::sycl, dv > |
specialisation Device_ for sycl More... | |
struct | Evaluator< internal::ops_category::GlobalNeighbourOP, OutputIndex, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the Evaluator when the expression is an internal::Assign expression and the internal::ops_category is GlobalNeighbourOP. More... | |
struct | Evaluator< internal::ops_category::NeighbourOP, OutputIndex, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the Evaluator when the expression is an internal::Assign expression and the internal::ops_category is NeighbourOP. More... | |
struct | Evaluator< internal::ops_category::PointOP, Output_Index, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the Evaluator when the expression is an internal::Assign expression and the internal::ops_category is PointOP. More... | |
struct | Evaluator< ops_category::PointOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... > |
Partial specialisation of the Evaluator when the expression is an ParallelCopy expression and the ops_category is PointOP. More... | |
struct | Evaluator< ops_category::NeighbourOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... > |
Partial specialisation of the Evaluator when the expression is an ParallelCopy expression and the ops_category is NeighbourOP. More... | |
struct | Evaluator< ops_category::GlobalNeighbourOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... > |
Partial specialisation of the Evaluator when the expression is an ParallelCopy expression and the ops_category is GlobalNeighbourOP. More... | |
struct | EvalExpr< Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the EvalExpr when the expression is an Assign expression. More... | |
struct | EvalExpr< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... > |
Partial specialisation of the EvalExpr when the expression is an LeafNode expression and the internal::ops_category is NeighbourOP. More... | |
struct | EvalExpr< RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the EvalExpr when the expression is an RBiOP(binary operation) expression. More... | |
struct | EvalExpr< RUnOP< UN_OP, Nested, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the EvalExpr when the expression is an RUnOP(unary operation) expression. More... | |
struct | EvalExpr< RDCN< C_OP, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the EvalExpr when the expression is an RDCN(reduction operation) expression. More... | |
struct | EvalExpr< StnFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the EvalExpr when the expression is an StnFilt(stencil with filter operation) expression. More... | |
struct | EvalExpr< StnNoFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows, LfType, LVL >, Loc, Params... > |
Partial specialisation of the EvalExpr when the expression is an StnNoFilt(stencil without filter operation) expression. More... | |
struct | GetGlobalRange |
GetGlobalRange is used to check the range when the halo is applied template parameters. More... | |
struct | GetGlobalRange< 0, DimSize > |
specialisation of GetGlobalRange when the Halo is 0 More... | |
struct | Fill |
The Fill is used to load a rectangle neighbour area from global memory to local memory. More... | |
struct | Trait |
This struct is used to trait the value type inside the accessor. More... | |
struct | Trait< cl::sycl::accessor< elementType, dimensions, accessMode, accessTarget > > |
specialisation of the Trait class when the accessor is sycl accessor More... | |
struct | Trait< visioncpp::internal::ConstMemory< T > > |
specialisation of the Trait class when the accessor is on ConstMemory More... | |
struct | Index_Finder |
is used to find the index required to access the accessor inside the buffer. More... | |
struct | Index_Finder< N, Indx, memory_type::Const, Sc > |
specialisation of the Index_Finder when the memory_type is a constant variable More... | |
struct | Index_Finder< N, Indx, LeafType, scope::Constant > |
specialisation of the Index_Finder when the memory located on device constant memory More... | |
struct | Evaluator |
the root of the expression tree. More... | |
struct | EvalExpr |
eval_global_neighbour function: More... | |
struct | OutputLocation |
This is used to find whether a node should use a global memory output or a local memory output is created for that node. More... | |
struct | OutputLocation< true, OutOffset > |
specialisation of the OutputLocation when the node is the immediate child of the root node More... | |
struct | Fill< LeafNode< PlaceHolder< memory_type::Const, N, Cols, Rows, Sc >, LVL >, Loc, Params... > |
Partial specialisation of the Fill when the LeafNode contains the const variable. More... | |
struct | Fill< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, scope::Constant >, LVL >, Loc, Params... > |
Partial specialisation of the Fill when the LeafNode contains a sycl buffer created on constant memory. More... | |
struct | Fill< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... > |
Partial specialisation of the Fill when the LeafNode contains the sycl buffer on the global memory. More... | |
struct | FuseExpr |
the FuseExpr when the expression type is not a terminal node (leafNode). More... | |
struct | NoFuseExpr |
The NoFuseExpr struct is used to generate one device kernel per each non-terminal node in the expression. More... | |
struct | IfExprExecNeeded |
IfExprExecNeeded is used to decide: 1) the expression should force its children to launch a separate kernel and execute the code 2) the expression should create a new subexpression tree with the result of its children execution; execute the new sub expression and return the LeafNode as a result. More... | |
struct | Executor |
The Executor struct is used to specialise the execute function for different avaiable policies at compile time. More... | |
struct | Executor< policy::Fuse, LC, LR, LCT, LRT, Expr, DeviceT > |
specialisaton of Execute function when the policy is fuse. More... | |
struct | Executor< policy::NoFuse, LC, LR, LCT, LRT, Expr, DeviceT > |
struct | SubExprExecute |
it is used to statically determine whether or not a subexpression execution is needed. More... | |
struct | SubExprExecute< false, ExecPolicy, LC, LR, LCT, LRT, Expr, DeviceT > |
specialisation of the status of when there is no need for subexpression execution More... | |
struct | SubExprRes |
The definition is in SubExprRes file. More... | |
struct | SubExprRes< LC, LR, LCT, LRT, LVL1, internal::LeafNode< RHS, LVL2 >, DeviceT > |
specialisation of the SubExprRes when it is a LeafNode. More... | |
struct | ParentForcedExecute |
to check whether or not the parent of the Expr requires that the expr to be executed and the LeafNode as a result to be returned. More... | |
struct | ParentForcedExecute< true, Expr, DeviceT > |
specialisation of ParentForcedExecute when the condition is true More... | |
struct | ParentForcedExecute< false, Expr, DeviceT > |
specialisation of ParentForcedExecute when the condition is false More... | |
struct | IfExprExecNeeded< false, ParentConds, internal::expr_category::Unary, Expr, DeviceT > |
the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is false and the expression category is unary. More... | |
struct | IfExprExecNeeded< true, ParentConds, internal::expr_category::Unary, Expr, DeviceT > |
the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is true and the expression category is unary. More... | |
struct | IfExprExecNeeded< false, ParentConds, internal::expr_category::Binary, Expr, DeviceT > |
the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is false and the expression category is binary. More... | |
struct | IfExprExecNeeded< true, ParentConds, internal::expr_category::Binary, Expr, DeviceT > |
the specialisation of the IfExprExecNeeded when the decision for executing the children of the expression is true and the expression category is binary. More... | |
struct | FuseExpr< LC, LR, LCT, LRT, LeafNode< RHS, LVL >, DeviceT > |
specialisation of Fuse struct when the Expr is a terminal node (leafNode) More... | |
struct | NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Unary, LeafNode< RHS, LVL >, DeviceT > |
The specialisation of the NoFuseExpr for LeafNode. More... | |
struct | NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Unary, Expr, DeviceT > |
The specialisation of the NoFuseExpr for Expression node with one operand. More... | |
struct | NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Binary, Expr, DeviceT > |
The specialisation of the NoFuseExpr for Expression node with two operands. More... | |
struct | NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Binary, Assign< LHS, RHS, Cols, Rows, LeafType, LVL >, DeviceT > |
The specialisation of the NoFuseExpr for Assign where it is a root node and has its own lhs leaf node. More... | |
struct | PlaceHolder |
PlaceHolder is used to replace the Vision Memory in the LeafNode containing sycl buffer. More... | |
struct | LocalOutput |
LocalOutput:Local output is used for neighbour operation in order to create a local memory for the output of non-terminal nodes in the expression tree when the NeighbourOP is used. More... | |
struct | LeafCount |
is used to count the total number of leafNode in the expression tree. More... | |
struct | LocalMemCount |
is used to count the total number of local memory for the subxpression. More... | |
struct | MakePlaceHolderExprHelper |
it is used to create the PlaceHolder expression. More... | |
struct | LeafCount< expr_category::Unary, LeafNode< RHS, LVL > > |
specialisation of LeafCount when the node is a LeafNode template parameters: More... | |
struct | LeafCount< expr_category::Unary, Expr > |
specialisation of LeafCount when the node has one child template parameters: More... | |
struct | LeafCount< expr_category::Binary, Expr > |
specialisation of LeafCount when the node has two children template parameters: More... | |
struct | LocalMemCount< expr_category::Unary, LeafNode< PlaceHolder< memory_type::Const, N, Cols, Rows, scope::Global >, LVL > > |
Partial specialisation of the LocalmemCount when the LeafNode contains the const variable. More... | |
struct | LocalMemCount< expr_category::Unary, LeafNode< PlaceHolder< MemoryType, N, Cols, Rows, scope::Constant >, LVL > > |
Partial specialisation of the LocalmemCount when the LeafNode contains a sycl buffer created on constant memory. More... | |
struct | LocalMemCount< expr_category::Unary, LeafNode< RHSExpr, LVL > > |
specialisation of LocalmemCount when the node is a LeafNode template parameters: More... | |
struct | LocalMemCount< expr_category::Unary, Expr > |
template parameters: More... | |
struct | LocalMemCount< expr_category::Binary, Expr > |
specialisation of LocalmemCount when the node has two children template parameters: More... | |
struct | LocalMemCount< expr_category::Binary, Assign< LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > > |
Specialisation of ExtractAccessor class where the expression node is Assign. More... | |
struct | LocalMemCount< expr_category::Binary, ParallelCopy< LHSExpr, RHSExpr, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LeafType, LVL > > |
Specialisation of ExtractAccessor class where the expression node is is ParallelCopy (partial assign) More... | |
struct | OutputAccessor |
OutputAccessor struct is used to generate an accessor when the node is not root. More... | |
struct | OutputAccessor< false, LeafType, LC, LR, OutType > |
specialisation of OutputAccessor when a node is not a root node. More... | |
struct | LocalOutput< false, IsRoot, LC, LR, LeafNode< VisionMemory< in, element_category, memory_type::Const, Sclr, Width, Height, Sclr, 1, scope::Global, LVL >, LVL > > |
specialisation of the LocalOutput for leaf node when the vision memory is a const variable. More... | |
struct | LocalOutput< false, IsRoot, LC, LR, LeafNode< VisionMemory< in, element_category, Memory_Type, Scalar, Width, Height, ElementTp, Elements, scope::Constant, LVL >, LVL > > |
specialisation of the LocalOutput for leaf node when the vision memory is a constant buffer. More... | |
struct | LocalOutput< false, IsRoot, LC, LR, LeafNode< RHS, LVL > > |
LocalOutput specialisation for leaf node it creates the local accessor that contains the data of the leaf node from global memory. More... | |
struct | LocalOutput< false, IsRoot, LC, LR, RUnOP< OP, RHSExpr, Cols, Rows, LeafType, LVL > > |
LocalOutput specialisation for unary operation(RUnOP) it creates the local accessor to store the output of unary operation which is going to be used as an output for its parent. More... | |
struct | LocalOutput< false, IsRoot, LC, LR, RBiOP< OP, LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > > |
LocalOutput specialisation for binary operation(RBiOP) it creates the local accessor to store the output of binary operation which is going to be used as an output for its parent. More... | |
struct | LocalOutput< false, IsRoot, LC, LR, StnFilt< OP, Halo_T, Halo_L, Halo_B, Halo_R, LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > > |
LocalOutput specialisation for binary neighbour operation(StnFilt). More... | |
struct | LocalOutput< false, IsRoot, LC, LR, StnNoFilt< OP, Halo_T, Halo_L, Halo_B, Halo_R, RHSExpr, Cols, Rows, LeafType, LVL > > |
LocalOutput specialisation for unary neighbour operation(StnNoFilt). More... | |
struct | LocalOutput< false, IsRoot, LC, LR, RDCN< OP, RHSExpr, Cols, Rows, LeafType, LVL > > |
LocalOutput specialisation for reduction neighbour operation(RDCN). More... | |
struct | LocalOutput< false, IsRoot, LC, LR, ParallelCopy< LHSExpr, RHSExpr, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LeafType, LVL > > |
LocalOutput specialisation for point operation(ParallelCopy). More... | |
struct | LocalOutput< false, IsRoot, LC, LR, Assign< LHSExpr, RHSExpr, Cols, Rows, LeafType, LVL > > |
LocalOutput specialisation for point operation(Assign). More... | |
struct | MakePlaceHolderExprHelper< internal::expr_category::Unary, LeafNode< RHS, LVL >, N > |
specialisation of MakePlaceHolderExprHelper where the node is leaf node. More... | |
struct | MakePlaceHolderExprHelper< internal::expr_category::Unary, Expr, N > |
specialisation of MakePlaceHolderExprHelper where the operation of the node is unary (the node has one child). More... | |
struct | MakePlaceHolderExprHelper< internal::expr_category::Binary, Expr, N > |
specialisation of MakePlaceHolderExprHelper where the operation of the node is binary (the node has two children). More... | |
struct | LeafNode< PlaceHolder< Memory_Type, N, C, R, Sc >, LVL > |
The specialisation of LeafNode for the PlaceHolder. More... | |
struct | CreatePyramidTupleType |
CreatePyramidTupleType: This file is used to create each output element type for each downsampling output of the pyramid memory. More... | |
struct | CreatePyramidTuple |
CreatePyramidTuple. More... | |
struct | PyramidLeafNode |
struct | CreatePyramidTupleType< true, Cols, Rows, LeafType, Depth, CurrentDepth, LHS, ChildType... > |
specialisation of the CreatePyramidTupleType when the SatisfyingConds is true. More... | |
struct | CreatePyramidTuple< true, Cols, Rows, LeafType, Depth, CurrentDepth, LHS > |
specialisation of the CreatePyramidTuple when the SatisfyingConds is true. More... | |
struct | PyramidExecuteAutoMemGen |
here we execute the pyramid; automatically construct the output tuple based on the depth of the pyramid; and construct the kernels. More... | |
struct | PyramidExecuteAutoMemGen< true, Fltr2DOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, Fltr2D, PyramidMem, DeviceT > |
specialisation of the PyramidExecuteAutoMemGen when the SatisfyingConds is true. More... | |
struct | PyramidAutomemGen |
PyramidDownGen is used to construct a pyramid node in the expression tree with general Filter2D and general DownSmplOP functors. More... | |
struct | PyramidExecuteAutoMemSep |
here we execute the pyramid; automatically construct the output tuple based on the depth of the pyramid; and construct the kernels. More... | |
struct | PyramidExecuteAutoMemSep< true, SepFltrColOP, SepFltrRowOP, DownSmplOP, Cols, Rows, LeafType, OffsetCol, OffsetRow, LVL, LC, LR, LCT, LRT, Depth, CurrentDepth, LHS, RHS, SepFilterCol, SepFilterRow, PyramidMem, DeviceT > |
specialisation of the PyramidExecuteAutoMemSep when the SatisfyingConds is true. More... | |
struct | PyramidAutomemSep |
PyramidAutomemSep is used to construct a pyramid node in the expression tree with two separable Filter for row and column and general DownSmplOP functors. More... | |
struct | GlobalUnaryOp |
This class is used to encapsulate the global unary functor and the types of each operand in this functor. More... | |
struct | LocalUnaryOp |
This class is used to encapsulate the local unary functor and the types of each operand in this functor. More... | |
struct | LocalBinaryOp |
This class is used to encapsulate the local binary functor and the types of each operand in this functor. More... | |
struct | PixelUnaryOp |
This class is used to encapsulate the unary point operation functor and the types of each operand in this functor. More... | |
struct | PixelBinaryOp |
This class is used to encapsulate the binary point operation functor and the types of each operand in this functor. More... | |
struct | RDCN |
The definition is in RDCN file. More... | |
struct | StnNoFilt |
The definition is in StnNoFilt file. More... | |
struct | StnFilt |
The definition is in StnFilt file. More... | |
struct | Assign |
The definition is in Assign file. More... | |
struct | LeafNode |
the definition is in LeafNode. More... | |
struct | ParallelCopy |
The definition is in ParallelCopy file. More... | |
struct | InheritTypeBinary |
This struct is used to extract the output type of the binary operation from both input. More... | |
struct | OpTP |
This struct is used to determine the operation type for binary operation based on the operation type of its children. More... | |
struct | OpTP< false, internal::ops_category::PointOP, RhsOP > |
specialisation of the PointOP category where the two operation types are not equal and the lhs operation type is PointOp More... | |
struct | OpTP< false, LhsOP, internal::ops_category::PointOP > |
specialisation of the PointOP category where the two operation types are not equal and the rhs operation type is PointOp More... | |
struct | OpTP< true, OPType, OPType > |
specialisation of the PointOP category where the two operation types are equal More... | |
struct | RBiOP |
The definition is in RBiOP file. More... | |
struct | RUnOP |
The definition is in RUnOP file. More... | |
class | Device_ |
class used to implement the execution of the expression tree. More... | |
struct | VirtualMemory |
the definition is in VirtualMemory More... | |
struct | ConstMemory |
The definition can be found in ConstMemory. More... | |
struct | MemoryProperties |
This file is used to detect the ChannelType ElementCategory {basic or struct}, and the channel size of a row input data. More... | |
struct | MemoryProperties< unsigned char > |
Specialisation of the MemoryProperties when the output is unsigned char. More... | |
struct | MemoryProperties< char > |
Specialisation of the MemoryProperties when the output is char. More... | |
struct | MemoryProperties< unsigned short > |
Specialisation of the MemoryProperties when the output is unsigned short. More... | |
struct | MemoryProperties< short > |
Specialisation of the MemoryProperties when the output is short. More... | |
struct | MemoryProperties< unsigned int > |
Specialisation of the MemoryProperties when the output is unsigned int. More... | |
struct | MemoryProperties< int > |
Specialisation of the MemoryProperties when the output is int. More... | |
struct | MemoryProperties< float > |
Specialisation of the MemoryProperties when the output is float. More... | |
struct | VisionMemory |
Definition of VisionMemory. More... | |
struct | OutputMemory |
OutputMemory is used to deduce the output type of each node in the expression tree by using certain parameters from its child(ren). More... | |
struct | ImageProperties |
this file is used to create the image properties required to create opencl image for different types of pixel More... | |
struct | SyclRange |
This is used to determine the range for creating a syclbuffer based on the memory dimension template parameters: More... | |
struct | SyclRange< 2 > |
specialisation of the SyclRange when the dimension is 2 More... | |
struct | SyclRange< 1 > |
specialisation of the SyclRange when the dimension is 1 More... | |
struct | SyclScope |
determines the memory target on the device based on the memory type and suggested target. More... | |
struct | SyclScope< LeafType, scope::Global > |
struct | SyclScope< LeafType, scope::Host_Buffer > |
struct | SyclScope< LeafType, scope::Local > |
struct | SyclScope< LeafType, scope::Constant > |
struct | SyclScope< memory_type::Image, scope::Global > |
specialisation of the SyclScope when the memory type is Image More... | |
struct | ConvertToVisionScope |
this struct is used to convert the sycl target to visioncpp target More... | |
struct | ConvertToVisionScope< cl::sycl::access::target::global_buffer > |
specialisation of ConvertToVisionScope where the target is global_buffer More... | |
struct | ConvertToVisionScope< cl::sycl::access::target::host_buffer > |
specialisation of ConvertToVisionScope where the target is host_buffer More... | |
struct | ConvertToVisionScope< cl::sycl::access::target::local > |
specialisation of ConvertToVisionScope where the target is local More... | |
struct | ConvertToVisionScope< cl::sycl::access::target::constant_buffer > |
specialisation of ConvertToVisionScope where the target is constant_buffer More... | |
struct | ConvertToVisionScope< cl::sycl::access::target::image > |
specialisation of ConvertToVisionScope where the target is image More... | |
struct | SyclAccessor |
This struct is used to create a sycl accessor type based on access mode; dimension and memory type. More... | |
struct | SyclAccessor< memory_type::Image, Dim, AccMd, ElementType, Scalar, scope > |
specialisation of the SyclAccessor when the memory_type is Image More... | |
struct | SyclAccessor< memory_type::Const, Dim, AccMd, ElementType, Scalar, scope > |
specialisation of the SyclAccessor when the memory_type is constant variable More... | |
struct | SyclMem |
SyclMem is used to create VisionMemory data storage. More... | |
struct | SyclMem< true, LeafType, Dim, ElementType > |
specialisation of SyclMem when there is host memory allocated. More... | |
struct | SyclMem< false, LeafType, Dim, ElementType > |
specialisation of SyclMem when there is no host memory allocated. More... | |
struct | SyclMem< true, memory_type::Image, Dim, ElementType > |
specialisation of SyclMem when the memory_type is Image More... | |
struct | SyclMem< true, memory_type::Const, Dim, ElementType > |
specialisation of SyclMem when the memory_type is Constant variable More... | |
struct | SyclMem< false, memory_type::Image, Dim, ElementType > |
specialisation of the SyclMem when the memory_type is Image and no device pointer is allocated to the memory. More... | |
struct | MemDimension |
this is used to determine the dimension of the memory based on the memory type template parameters: More... | |
struct | MemDimension< memory_type::Buffer1D > |
specialisation of the MemDimension when the memory type is Buffer1D More... | |
struct | MemDimension< memory_type::Host > |
specialisation of the MemDimension when the memory type is Host More... | |
struct | MemDimension< memory_type::Const > |
specialisation of the MemDimension when the memory type is constant variable More... | |
struct | CreateSyclBuffer |
This class is used to instantiate the sycl memory based on the memory types. More... | |
struct | CreateSyclBuffer< memory_type::Image, ElemType, Scalar, VisionMem, RNG > |
specialisation of create CreateSyclBuffer when the memory type is image More... | |
struct | CreateSyclBuffer< memory_type::Const, ElemType, Scalar, VisionMem, RNG > |
specialisation of create CreateSyclBuffer when the memory type is constant variable More... | |
struct | BufferUpdate |
This is used to update the Vision Memory with new value update sycl buffer at the moment we use ptr.reset() because it was faster than getting the host pointer and updating it in the host side. More... | |
struct | BufferUpdate< memory_type::Image, Rows, Cols, ElemType, Scalar, VisionMem > |
specialisation of the BufferUpdate when the memory_type is Image More... | |
struct | BufferUpdate< memory_type::Const, Rows, Cols, ElemType, Scalar, VisionMem > |
specialisation of the BufferUpdate when the memory_type is Constant variable More... | |
struct | Coordinate |
Coordinate is used to specify local/global offset for local/global access to the local/global memory for each thread on the device. More... | |
struct | LocalNeighbour |
LocalNeighbour is used to provide local access for each element of the local memory based on the Coordinate passed by eval expression. More... | |
struct | GlobalNeighbour |
GlobalNeighbour is used to provide local access for each element of the global memory based on the Coordinate passed by eval expression. More... | |
struct | ConstNeighbour |
ConstNeighbour is used to provide global access to the constant memory. More... | |
struct | CompareIdBasedScope |
this is used for range check to make sure the index is within the range. More... | |
struct | CompareIdBasedScope< false, LDSize, GDSize, T > |
specialisation of the CompareIdBasedScope when the Conds is false in this case the range check is with the global size template parameters: More... | |
struct | GetIdBasedScope |
brief This is used to get the correct Id based on the condition. More... | |
struct | GetIdBasedScope< false, T > |
specialisation of the GetIdBasedScope when the condition is false. More... | |
struct | MemoryTrait |
This class is used to determine the ElementType of accessor template parameters. More... | |
struct | MemoryTrait< memory_type::Host, T > |
specialisation of MemoryTrait when the LeafType is Host More... | |
struct | AssignValueToArray |
struct | AssignValueToArray< false, K, PixelType, Params... > |
Functions | |
template<size_t Halo, size_t DimSize> | |
static size_t | get_global_range (size_t index) |
template deduction function for get_global_range template parameters: More... | |
template<size_t Halo_Top, size_t Halo_Left, size_t Halo_Butt, size_t Halo_Right, size_t Offset, size_t LC, size_t LR, size_t Sc, typename Expr , typename Loc , typename... Params> | |
static void | fill_local_neighbour (Loc &cOffset, const internal::tools::tuple::Tuple< Params... > &t) |
template deduction for Fill struct. More... | |
template<size_t Offset, size_t LC, size_t LR, typename Expr , typename Loc , typename... Params> | |
void | eval (Loc &cOffset, const tools::tuple::Tuple< Params... > &t) |
deduction function for Evaluator struct. More... | |
template<size_t Halo_Top, size_t Halo_Left, size_t Halo_Butt, size_t Halo_Right, size_t Offset, size_t LC, size_t LR, typename Expr , typename Loc , typename... Params> | |
static void | fill_local_neighbour (Loc &cOffset, const tools::tuple::Tuple< Params... > &t) |
template<size_t LC, size_t LR, size_t LCT, size_t LRT, size_t LVL, typename Expr , typename DeviceT > | |
auto | get_subexpr_executor (Expr &expr, const DeviceT &dev) -> typename internal::SubExprRes< LC, LR, LCT, LRT, LVL, Expr, DeviceT >::Type |
template deduction for SubExprRes. More... | |
template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT > | |
auto | get_subexpr_executor (Expr &expr, const DeviceT &dev) -> typename internal::SubExprRes< LC, LR, LCT, LRT, 1+Expr::Level, Expr, DeviceT >::Type |
template<bool Conds, bool ParentConds, typename Expr , size_t LC, size_t LR, size_t LCT, size_t LRT, typename NestedExpr , typename DeviceT > | |
auto | execute_expr (NestedExpr nestedExpr, const DeviceT &dev) -> decltype(internal::IfExprExecNeeded< Conds, ParentConds, internal::expr_category::Unary, Expr, DeviceT >::template execute_expr< LC, LR, LCT, LRT >(nestedExpr, dev)) |
template deduction for IfExprExecNeeded when the expression category is unary More... | |
template<bool Conds, bool ParentConds, typename Expr , size_t LC, size_t LR, size_t LCT, size_t LRT, typename LHSExpr , typename RHSExpr , typename DeviceT > | |
auto | execute_expr (LHSExpr lhsExpr, RHSExpr rhsExpr, const DeviceT &dev) -> decltype(internal::IfExprExecNeeded< Conds, ParentConds, internal::expr_category::Binary, Expr, DeviceT >::template execute_expr< LC, LR, LCT, LRT >(lhsExpr, rhsExpr, dev)) |
template deduction for IfExprExecNeeded when the expression category is Binary More... | |
template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT > | |
void | fuse (Expr expr, const DeviceT &dev) |
function fuse More... | |
template<size_t LC, size_t LR, size_t LCT, size_t LRT, typename Expr , typename DeviceT > | |
void | no_fuse (Expr expr, const DeviceT &dev) |
template deduction function for no_fuse expression More... | |
template<size_t LC, size_t LR, typename Expr > | |
auto | create_local_accessors (cl::sycl::handler &cgh) -> decltype(LocalOutput< Expr::Operation_type !=ops_category::NeighbourOP, true, LC, LR, Expr >::getTuple(cgh)) |
create_local_accessors is a deduction function for creating local accessor. More... | |
template<size_t Cols, size_t Rows, size_t Depth, size_t Current_Depth, typename LHS > | |
CreatePyramidTupleType< false, Cols, Rows, LHS::Type::LeafType, Depth, 0, LHS >::Type | create_pyramid_memory () |
create_pyramid_memory template deduction function for CreatePyramidTuple struct. More... | |
template<typename OP , size_t Halo_T, size_t Halo_L, size_t Halo_B, size_t Halo_R, size_t Cols, size_t Rows, size_t LeafType, typename RHS > | |
auto | neighbour_operation (RHS rhs) -> internal::StnNoFilt< internal::LocalUnaryOp< OP, typename RHS::OutType >, Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows, LeafType, 1+RHS::Level > |
template deduction for StnNoFilt class when the memory type of the output and column and row are defined by a user. More... | |
template<typename OP , size_t Cols, size_t Rows, size_t LeafType, typename LHS , typename RHS > | |
auto | point_operation (LHS lhs, RHS rhs) -> RBiOP< internal::PixelBinaryOp< OP, typename LHS::OutType, typename RHS::OutType >, LHS, RHS, Cols, Rows, LeafType, 1+internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS >::Type::Level > |
template deduction for the RBiOP struct where user determines the Column, Row, and memory_type of the output. More... | |
template<bool Conds, typename Expr , size_t LC, size_t LR, size_t LRT, size_t LCT, typename NestedExpr , typename DeviceT > | |
Expr::Sub_expression_Type | execute_expr (NestedExpr, const DeviceT &) |
template deduction for IfExprExecNeeded when the expression category is unary More... | |
template<bool Conds, typename Expr , size_t LC, size_t LR, size_t LRT, size_t LCT, typename LHSExpr , typename RHSExpr , typename DeviceT > | |
Expr::Sub_expression_Type | execute_expr (LHSExpr, RHSExpr, const DeviceT &) |
template deduction for IfExprExecNeeded when the expression category is Binary More... | |
template<size_t Dim> | |
cl::sycl::range< Dim > | get_range (size_t r, size_t c) |
function get_range More... | |
template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG > | |
void | create_sycl_buffer (std::shared_ptr< VisionMem > &ptr, Scalar *dt, RNG rng) |
function create_sycl_buffer More... | |
template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG > | |
void | create_sycl_buffer (std::shared_ptr< VisionMem > &ptr, VisionMem dt, RNG rng) |
function create_sycl_buffer More... | |
template<size_t LeafType, typename ElemType , typename Scalar , typename VisionMem , typename RNG > | |
void | create_sycl_buffer (std::shared_ptr< VisionMem > &ptr, RNG rng) |
function create_sycl_buffer More... | |
template<size_t LeafType, size_t Rows, size_t Cols, typename ElemType , typename Scalar , typename VisionMem > | |
void | buffer_update (std::shared_ptr< VisionMem > &ptr, Scalar *dt) |
function buffer_update More... | |
template<size_t LC, size_t LR, typename ItemID > | |
Coordinate< LC, LR, ItemID > | memLocation (ItemID itemID) |
deduction function for Coordinate More... | |
template<bool Conds, size_t LDSize, size_t GDSize, typename T > | |
static bool | get_compare (T l, int i, T g) |
function get_compare template deduction for CompareIdBasedScope template parameters: More... | |
template<bool Conds, typename T > | |
static T | id_val (T l, T g) |
function id_val More... | |
static size_t | calculate_index (size_t c, size_t r, size_t cols, size_t rows) |
function calculate_index More... | |
Internal implementations.
Items from this scope should not be exposed to the end user.
|
inline |
function buffer_update
template deduction function for BufferUpdate template parameters:
LeafType | : is the memory type |
Rows | is the row size of the buffer |
Cols | is the column size of the buffer |
ElemType | is the type of element in the buffer |
Scalar | is the type of each channel of the element |
VisionMem | is the created SyclMem function parameters: |
ptr | : is the shared_ptr containing the SyclMem |
dt | is the pointer containing the new value for the buffer |
Definition at line 556 of file memory.hpp.
|
inlinestatic |
function calculate_index
this function is used to calculate the index access of the memory pointer on the device. parameters:
c | : column index |
r | : row index |
cols | : column dimension |
rows | : row dimension |
Definition at line 152 of file memory_access.hpp.
Referenced by visioncpp::internal::LocalNeighbour< T >::at(), visioncpp::internal::GlobalNeighbour< T >::at(), visioncpp::internal::ConstNeighbour< T >::at(), visioncpp::internal::Evaluator< internal::ops_category::PointOP, Output_Index, Offset, LC, LR, internal::Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval(), visioncpp::internal::Evaluator< ops_category::PointOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... >::eval(), visioncpp::internal::Evaluator< ops_category::NeighbourOP, OutputIndex, Offset, LC, LR, ParallelCopy< LHS, RHS, Cols, Rows, OffsetColIn, OffsetRowIn, OffsetColOut, OffsetRowOut, LfType, LVL >, Loc, Params... >::eval(), visioncpp::internal::EvalExpr< Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_global_neighbour(), visioncpp::internal::EvalExpr< RDCN< C_OP, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_global_neighbour(), visioncpp::internal::EvalExpr< Assign< LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< RBiOP< BI_OP, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< RUnOP< UN_OP, Nested, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< RDCN< C_OP, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< StnFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, LHS, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< StnNoFilt< C_OP, Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows, LfType, LVL >, Loc, Params... >::eval_neighbour(), visioncpp::internal::EvalExpr< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >::eval_point(), and visioncpp::internal::Fill< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >::fill_neighbour().
|
inline |
create_local_accessors is a deduction function for creating local accessor.
parameters:
cgh | sycl command group handler |
Definition at line 323 of file local_output.hpp.
References visioncpp::internal::ops_category::NeighbourOP.
|
inline |
create_pyramid_memory template deduction function for CreatePyramidTuple struct.
template parameters: the recursive creation of the pyramid output tuple.
Cols | determines the column size of the input pyramid |
Rows | determines the row size of the input pyramid |
LeafType | determines the type of the leafNode {Buffer2D, Buffer1D, Host, Image} |
Depth | represents the depth of down sampling |
CurrentDepth | represents the number of outputs created so far in the recursion |
LHS | is the final output of the pyramid combining all the node together. function parameters: |
Definition at line 149 of file pyramid_mem.hpp.
|
inline |
function create_sycl_buffer
template deduction for CreateSyclBuffer struct when there is host pointer template parameters:
LeafType | determines the memory type |
ElemType | : determines the type of the element in each memory |
Scalar | : determines the type of each channel of each element |
VisionMem | represent the type of the memory created by using SyclMem |
RNG | : the sycl range type for creating memory function parameters parameters: |
ptr | : shared_ptr containing the VisionMem |
rng | : the sycl range for creating buffer |
Definition at line 468 of file memory.hpp.
References visioncpp::internal::CreateSyclBuffer< LeafType, ElemType, Scalar, VisionMem, RNG >::create_buffer().
|
inline |
function create_sycl_buffer
template deduction for CreateSyclBuffer struct when there is host pointer template parameters:
LeafType | determines the memory type |
ElemType | : determines the type of the element in each memory |
Scalar | : determines the type of each channel of each element |
VisionMem | represent the type of the memory created by using SyclMem |
RNG | : the sycl range type for creating memory function parameters parameters: |
ptr | : shared_ptr containing the VisionMem |
dt | : the input pointer for creating buffer |
rng | : the sycl range for creating buffer |
Definition at line 422 of file memory.hpp.
References visioncpp::internal::CreateSyclBuffer< LeafType, ElemType, Scalar, VisionMem, RNG >::create_buffer().
|
inline |
function create_sycl_buffer
template deduction for CreateSyclBuffer struct. this one create another buffer from accepting an input buffer. It is used for creating sub-buffer template parameters:
LeafType | determines the memory type |
ElemType | : determines the type of the element in each memory |
Scalar | : determines the type of each channel of each element |
VisionMem | represent the type of the memory created by using SyclMem |
RNG | : the sycl range type for creating memory function parameters parameters: |
ptr | : shared_ptr containing the VisionMem |
rng | : the sycl range for creating buffer |
dt | : the input buffer for creating new sub-buffer from it |
Definition at line 446 of file memory.hpp.
References visioncpp::memory_type::Const.
|
inline |
deduction function for Evaluator struct.
This will count N+1 where the number of memory is N. However the N+1 is useless as it does not exist and is going to be replaced by the final output node in the expression tree trough OutputLocation struct.
Definition at line 284 of file evaluator.hpp.
|
inline |
template deduction for IfExprExecNeeded when the expression category is Binary
Definition at line 265 of file executor_subexpr_if_needed.hpp.
References visioncpp::internal::expr_category::Binary.
|
inline |
template deduction for IfExprExecNeeded when the expression category is Binary
Definition at line 265 of file executor_subexpr_if_needed.hpp.
References visioncpp::internal::expr_category::Binary.
|
inline |
template deduction for IfExprExecNeeded when the expression category is unary
Definition at line 251 of file executor_subexpr_if_needed.hpp.
References visioncpp::internal::expr_category::Unary.
Referenced by visioncpp::internal::RDCN< DownSmplOP, RHS, Cols, Rows, LfType, LVL >::sub_expression_evaluation().
|
inline |
template deduction for IfExprExecNeeded when the expression category is unary
Definition at line 251 of file executor_subexpr_if_needed.hpp.
References visioncpp::internal::expr_category::Unary.
Referenced by visioncpp::internal::RDCN< DownSmplOP, RHS, Cols, Rows, LfType, LVL >::sub_expression_evaluation().
|
static |
template deduction for Fill struct.
Referenced by visioncpp::internal::EvalExpr< LeafNode< PlaceHolder< Memory_Type, N, Cols, Rows, Sc >, LVL >, Loc, Params... >::eval_neighbour().
|
static |
Definition at line 99 of file square_pattern.hpp.
|
inline |
function fuse
fuse function to generate a device kernel and execute. template parameters:
LC | suggested column size for the local memory |
LR | suggested row size for the local memory |
LRT | suggested workgroup row size |
LCT | suggested workgroup column size |
Expr | the expression type function parameters: |
expr | the input expression |
dev | : the selected device for executing the expression |
Definition at line 89 of file fuse.hpp.
References visioncpp::internal::FuseExpr< LCIn, LRIn, LCT, LRT, Expr, DeviceT >::fuse().
|
inlinestatic |
function get_compare template deduction for CompareIdBasedScope template parameters:
Conds | determines whether or not the local variable should be used |
LDSize | : determines the local dimension size |
GDSize | determines the global dimension size |
T | determines the type of the dimension index function parameters: |
l | is the local dimension size |
g | is the global dimension size |
i | is the offset needed to be added to the correct dimension before comparison return bool |
Definition at line 83 of file memory_access.hpp.
References visioncpp::internal::CompareIdBasedScope< Conds, LDSize, GDSize, T >::get().
|
inlinestatic |
template deduction function for get_global_range template parameters:
Halo | is the halo used around the image |
DimSize | is the size of the dimension we want to check function parameters: |
index | is the passed index to be checked and corrected if needed |
Definition at line 72 of file evaluator.hpp.
References visioncpp::internal::GetGlobalRange< Halo, DimSize >::get_global_range().
|
inline |
function get_range
template deduction for SyclRange template parameters:
Dim | : the memory dimension function parameters: |
r | row size |
c | column size |
column major
row major ///this will apply when sycl changes
Definition at line 120 of file memory.hpp.
Referenced by visioncpp::internal::OutputAccessor< false, LeafType, LC, LR, OutType >::getTuple().
auto visioncpp::internal::get_subexpr_executor | ( | Expr & | expr, |
const DeviceT & | dev | ||
) | -> typename internal::SubExprRes<LC, LR, LCT, LRT, 1 + Expr::Level, Expr, DeviceT>::Type |
Definition at line 93 of file executor_subexpr_if_needed.hpp.
References visioncpp::internal::SubExprRes< LC, LR, LCT, LRT, LVL, Expr, DeviceT >::get().
auto visioncpp::internal::get_subexpr_executor | ( | Expr & | expr, |
const DeviceT & | dev | ||
) | -> typename internal::SubExprRes<LC, LR, LCT, LRT, LVL, Expr, DeviceT>::Type |
template deduction for SubExprRes.
This is used when we manually need to pass the level in order to avoid double naming
Definition at line 84 of file executor_subexpr_if_needed.hpp.
References visioncpp::internal::SubExprRes< LC, LR, LCT, LRT, LVL, Expr, DeviceT >::get().
|
inlinestatic |
function id_val
template deduction for GetIdBasedScope. template parameters
Conds | determines whether or not the local variable should be used |
T | determines the type of the dimension index function parameters: |
l | is the local dimension size |
g | is the global dimension size |
Definition at line 124 of file memory_access.hpp.
References visioncpp::internal::GetIdBasedScope< Conds, T >::get().
Coordinate<LC, LR, ItemID> visioncpp::internal::memLocation | ( | ItemID | itemID | ) |
deduction function for Coordinate
Definition at line 85 of file mem_coordinate.hpp.
auto visioncpp::internal::neighbour_operation | ( | RHS | rhs | ) | -> internal::StnNoFilt<internal::LocalUnaryOp<OP, typename RHS::OutType>, Halo_T, Halo_L, Halo_B, Halo_R, RHS, Cols, Rows, LeafType, 1 + RHS::Level> |
template deduction for StnNoFilt class when the memory type of the output and column and row are defined by a user.
Definition at line 126 of file stencil_no_filter.hpp.
void visioncpp::internal::no_fuse | ( | Expr | expr, |
const DeviceT & | dev | ||
) |
template deduction function for no_fuse expression
Definition at line 142 of file nofuse.hpp.
Referenced by visioncpp::internal::NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Binary, Assign< LHS, RHS, Cols, Rows, LeafType, LVL >, DeviceT >::no_fuse(), visioncpp::internal::NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Unary, Expr, DeviceT >::no_fuse(), and visioncpp::internal::NoFuseExpr< LC, LR, LCT, LRT, internal::expr_category::Binary, Expr, DeviceT >::no_fuse().
auto visioncpp::internal::point_operation | ( | LHS | lhs, |
RHS | rhs | ||
) | -> RBiOP< internal::PixelBinaryOp<OP, typename LHS::OutType, typename RHS::OutType>, LHS, RHS, Cols, Rows, LeafType, 1 + internal::tools::StaticIf<(LHS::Level > RHS::Level), LHS, RHS>::Type::Level> |
template deduction for the RBiOP struct where user determines the Column, Row, and memory_type of the output.
Definition at line 174 of file resizable_binary.hpp.