CoreFlow 1.0.0
A modern orchestration and execution runtime
|
The internal implementation header. More...
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cstdarg>
#include <ctime>
#include <iostream>
#include <thread>
#include <VX/vx.h>
#include <VX/vx_helper.h>
#include <VX/vx_compatibility.h>
#include <VX/vx_lib_extras.h>
#include "vx_array.h"
#include "vx_context.h"
#include "vx_convolution.h"
#include "vx_debug.h"
#include "vx_delay.h"
#include "vx_distribution.h"
#include "vx_error.h"
#include "vx_graph.h"
#include "vx_image.h"
#include "vx_import.h"
#include "vx_kernel.h"
#include "vx_log.h"
#include "vx_lut.h"
#include "vx_matrix.h"
#include "vx_memory.h"
#include "vx_meta_format.h"
#include "vx_node.h"
#include "vx_object_array.h"
#include "vx_osal.h"
#include "vx_parameter.h"
#include "vx_pyramid.h"
#include "vx_reference.h"
#include "vx_remap.h"
#include "vx_scalar.h"
#include "vx_target.h"
#include "vx_tensor.h"
#include "vx_threshold.h"
#include "vx_user_data_object.h"
#include "vx_inlines.h"
Classes | |
struct | vx_value_set_t |
The data object for queues. More... | |
struct | vx_queue_t |
The queue object. More... | |
struct | vx_processor_t |
The processor structure which contains the graph queue. More... | |
struct | vx_threadpool_worker_t |
The structure given to each threadpool worker during execution. More... | |
struct | vx_threadpool_t |
The threadpool tracking structure. More... | |
struct | vx_work_t |
The work item to distribute across the threadpools. More... | |
struct | vx_signature_t |
The internal representation of the attributes associated with a run-time parameter. More... | |
struct | vx_kernel_attr_t |
The kernel attributes structure. More... | |
struct | vx_target_funcs_t |
The structure which holds all the target interface function pointers. More... | |
struct | vx_module_t |
The tracking structure for a module. More... | |
struct | vx_external_t |
The framework's internal-external memory tracking structure. More... | |
union | vx_memory_map_extra |
struct | vx_memory_map_t |
The framework's mapping memory tracking structure. More... | |
struct | vx_cost_factors_t |
A data structure used to track the various costs which could being optimized. More... | |
struct | vx_memory_t |
The raw definition of memory layout. More... | |
struct | vx_delay_param_t |
The internal representation of the delay parameters as a list. More... | |
struct | vx_type_size_t |
Namespaces | |
namespace | coreflow |
The internal representation of a vx_array. | |
Macros | |
#define | VX_MAX_TENSOR_DIMENSIONS 6 |
#define | Q78_FIXED_POINT_POSITION 8 |
#define | VX_INT_API |
#define | dimof(x) |
Get the dimensionality of the array. | |
#define | VX_INT_MAX_PATH (256) |
Maximum number of characters in a path string. | |
#define | VX_MAX_TARGET_NAME (64) |
Defines the maximum number of characters in a target string. | |
#define | VX_MAX_STRUCT_NAME (64) |
#define | VX_INT_MAX_NODES (256) |
Maximum number of nodes in a graph. | |
#define | VX_INT_MAX_REF (14336) |
Maximum number of references in the context. | |
#define | VX_INT_MAX_USER_STRUCTS (1024) |
Maximum number of user defined structs/. | |
#define | VX_INT_MAX_KERNELS (1024) |
Maximum number of kernel in the context. | |
#define | VX_INT_MAX_PARAMS (22) |
Maximum number of parameters to a kernel. | |
#define | VX_INT_MAX_MODULES (10) |
Maximum number of loadable modules. | |
#define | VX_INT_MAX_CONVOLUTION_DIM (15) |
The largest convolution matrix the specification requires support for is 15x15. | |
#define | VX_INT_MAX_NONLINEAR_DIM (9) |
The largest nonlinear filter matrix the specification requires support for is 9x9. | |
#define | VX_MAGIC (0xFACEC0DE) |
A magic value to look for and set in references. | |
#define | VX_INT_MAX_QUEUE_DEPTH (100002) |
Maximum queue depth. | |
#define | VX_INT_FOREVER (0xFFFFFFFF) |
The value to use in event waiting which never returns. | |
#define | VX_INT_HOST_CORES (std::thread::hardware_concurrency()) |
The minimum khronos number of targets. | |
#define | VX_OPTICALFLOWPYRLK_MAX_DIM (9) |
The largest optical flow pyr LK window. | |
#define | VX_TYPE_IS_IMAGE(type) |
Used to determine is a type is an image. | |
#define | VX_TYPE_IS_SCALAR(type) |
Used to determine if a type is a scalar. | |
#define | VX_TYPE_IS_SCALAR_WITH_SIZE(type) |
Used to determine scalar with size. | |
#define | VX_TYPE_IS_STRUCT(type) |
Used to determine if a type is a struct. | |
#define | VX_TYPE_IS_DATA_OBJECT(type) |
Used to determine if a type is a data object. | |
#define | VX_TYPE_IS_OBJECT(type) |
Used to determine if a type is an object. | |
#define | VX_CHECK_PARAM(ptr, size, type, align) |
A parameter checker for size and alignment. | |
#define | VX_CALLOC(type) |
Convenience wrapper around calloc to cast it correctly. | |
#define | VX_STRINGERIZE(x) |
Helper to convert any data type to string. | |
#define | VX_INLINE inline |
#define | VX_FMT_TIME "%.3f" |
#define | VX_MIN(a, b) |
Min & Max helper macros. | |
#define | VX_MAX(a, b) |
#define | VX_BOOL_TO_STATUS(b) |
Helper to extract vx_status from vx_bool. | |
#define | VX_FMT_VALUE VX_FMT_SIZE |
Used to print out the value of a value. | |
#define | VX_INT_MAX_NUM_TARGETS (VX_TARGET_PRIORITY_MAX) |
Defines the number of targets in the sample implementation. | |
#define | VX_PLANE_MAX (4) |
The maximum number of 2d planes an image may have. | |
#define | VX_DEFAULT_THRESHOLD_FALSE_VALUE 0 |
#define | VX_DEFAULT_THRESHOLD_TRUE_VALUE 255 |
#define | VX_U1_THRESHOLD_FALSE_VALUE vx_false_e |
#define | VX_U1_THRESHOLD_TRUE_VALUE vx_true_e |
#define | VX_S16_THRESHOLD_FALSE_VALUE 0 |
#define | VX_S16_THRESHOLD_TRUE_VALUE (-1) |
#define | VX_U16_THRESHOLD_FALSE_VALUE 0 |
#define | VX_U16_THRESHOLD_TRUE_VALUE 0xFFFF |
#define | VX_S32_THRESHOLD_FALSE_VALUE 0 |
#define | VX_S32_THRESHOLD_TRUE_VALUE (-1) |
#define | VX_U32_THRESHOLD_FALSE_VALUE 0 |
#define | VX_U32_THRESHOLD_TRUE_VALUE 0xFFFFFFFF |
Typedefs | |
typedef void * | vx_ptr_t |
A convenience typedef for void pointers. | |
typedef vx_size | vx_value_t |
A thread return value. | |
typedef vx_value_t(* | vx_thread_f) (void *arg) |
A thread function pointer. | |
typedef void(* | vx_destructor_f) (vx_reference ref) |
Used to destroy an object in a generic way. | |
using | vx_target = coreflow::Target* |
using | vx_error = coreflow::Error* |
typedef vx_bool(* | vx_threadpool_f) (struct vx_threadpool_worker_t *worker) |
The function pointer to the worker function. | |
typedef vx_status(VX_CALLBACK * | vx_kernel_object_deinitialize_f) (vx_kernel nn_kernel) |
The pointer to the kernel object deinitializer. | |
typedef vx_status(* | vx_target_init_f) (vx_target target) |
The function which initializes the target. | |
typedef vx_status(* | vx_target_deinit_f) (vx_target target) |
The function which deinitializes the target. | |
typedef vx_status(* | vx_target_supports_f) (vx_target target, vx_char targetName[VX_MAX_TARGET_NAME], vx_char kernelName[VX_MAX_TARGET_NAME], vx_uint32 *pIndex) |
Allows OpenVX to query a target to see if it supports an additional abstract target type like "khronos.automatic" or "khronos.low_power" on a specific kernel. | |
typedef vx_action(* | vx_target_process_f) (vx_target target, vx_node nodes[], vx_size startIndex, vx_size numNodes) |
Processes the array of nodes supplied. | |
typedef vx_status(* | vx_target_verify_f) (vx_target target, vx_node node) |
Verifies the array of nodes supplied for target specific information. | |
typedef vx_kernel(* | vx_target_addkernel_f) (vx_target target, const vx_char name[VX_MAX_KERNEL_NAME], vx_enum enumeration, vx_kernel_f func_ptr, vx_uint32 num_parameters, vx_kernel_validate_f validate, vx_kernel_input_validate_f input, vx_kernel_output_validate_f output, vx_kernel_initialize_f initialize, vx_kernel_deinitialize_f deinitialize) |
Adds a kernel to a target. | |
typedef vx_array | vx_lut_t |
A LUT is a specific type of array. | |
Enumerations | |
enum | vx_reftype_e { VX_INTERNAL = 1 , VX_EXTERNAL = 2 , VX_BOTH = 3 } |
An internal enum for notating which sort of reference type we need. More... | |
enum | vx_ext_target_type_e { VX_TYPE_TARGET = 0x816 } |
enum | vx_target_priority_e { VX_TARGET_PRIORITY_C_MODEL , VX_TARGET_PRIORITY_ORT , VX_TARGET_PRIORITY_MAX = 10 } |
The priority list of targets. More... | |
enum | vx_dim_e { VX_DIM_C = 0 , VX_DIM_X , VX_DIM_Y , VX_DIM_MAX } |
The dimensions enumeration, also stride enumerations. More... | |
enum | vx_bounds_e { VX_BOUND_START , VX_BOUND_END , VX_BOUND_MAX } |
The bounds enumeration. More... | |
Functions | |
VX_API_ENTRY vx_context VX_API_CALL | vxCreateContextFromPlatform (struct _vx_platform *platform) |
The internal implementation header.
#define Q78_FIXED_POINT_POSITION 8 |
#define VX_DEFAULT_THRESHOLD_FALSE_VALUE 0 |
#define VX_DEFAULT_THRESHOLD_TRUE_VALUE 255 |
#define VX_FMT_TIME "%.3f" |
#define VX_FMT_VALUE VX_FMT_SIZE |
Used to print out the value of a value.
#define VX_INLINE inline |
#define VX_INT_API |
#define VX_MAX | ( | a, | |
b ) |
#define VX_MAX_STRUCT_NAME (64) |
#define VX_MAX_TENSOR_DIMENSIONS 6 |
#define VX_S16_THRESHOLD_FALSE_VALUE 0 |
#define VX_S16_THRESHOLD_TRUE_VALUE (-1) |
#define VX_S32_THRESHOLD_FALSE_VALUE 0 |
#define VX_S32_THRESHOLD_TRUE_VALUE (-1) |
#define VX_U16_THRESHOLD_FALSE_VALUE 0 |
#define VX_U16_THRESHOLD_TRUE_VALUE 0xFFFF |
#define VX_U1_THRESHOLD_FALSE_VALUE vx_false_e |
#define VX_U1_THRESHOLD_TRUE_VALUE vx_true_e |
#define VX_U32_THRESHOLD_FALSE_VALUE 0 |
#define VX_U32_THRESHOLD_TRUE_VALUE 0xFFFFFFFF |
using vx_error = coreflow::Error* |
typedef vx_status(VX_CALLBACK * vx_kernel_object_deinitialize_f) (vx_kernel nn_kernel) |
The pointer to the kernel object deinitializer.
[in] | nn_kernel | object local ptr. |
using vx_target = coreflow::Target* |
enum vx_ext_target_type_e |
VX_API_ENTRY vx_context VX_API_CALL vxCreateContextFromPlatform | ( | struct _vx_platform * | platform | ) |