CoreFlow 1.0.0
A modern orchestration and execution runtime
Loading...
Searching...
No Matches
vx_internal.h File Reference

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_CALLBACKvx_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)
 

Detailed Description

The internal implementation header.

Macro Definition Documentation

◆ Q78_FIXED_POINT_POSITION

#define Q78_FIXED_POINT_POSITION   8

◆ VX_DEFAULT_THRESHOLD_FALSE_VALUE

#define VX_DEFAULT_THRESHOLD_FALSE_VALUE   0

◆ VX_DEFAULT_THRESHOLD_TRUE_VALUE

#define VX_DEFAULT_THRESHOLD_TRUE_VALUE   255

◆ VX_FMT_TIME

#define VX_FMT_TIME   "%.3f"

◆ VX_FMT_VALUE

#define VX_FMT_VALUE   VX_FMT_SIZE

Used to print out the value of a value.

◆ VX_INLINE

#define VX_INLINE   inline

◆ VX_INT_API

#define VX_INT_API

◆ VX_MAX

#define VX_MAX ( a,
b )
Value:
((a) > (b) ? (a) : (b))

◆ VX_MAX_STRUCT_NAME

#define VX_MAX_STRUCT_NAME   (64)

◆ VX_MAX_TENSOR_DIMENSIONS

#define VX_MAX_TENSOR_DIMENSIONS   6

◆ VX_S16_THRESHOLD_FALSE_VALUE

#define VX_S16_THRESHOLD_FALSE_VALUE   0

◆ VX_S16_THRESHOLD_TRUE_VALUE

#define VX_S16_THRESHOLD_TRUE_VALUE   (-1)

◆ VX_S32_THRESHOLD_FALSE_VALUE

#define VX_S32_THRESHOLD_FALSE_VALUE   0

◆ VX_S32_THRESHOLD_TRUE_VALUE

#define VX_S32_THRESHOLD_TRUE_VALUE   (-1)

◆ VX_U16_THRESHOLD_FALSE_VALUE

#define VX_U16_THRESHOLD_FALSE_VALUE   0

◆ VX_U16_THRESHOLD_TRUE_VALUE

#define VX_U16_THRESHOLD_TRUE_VALUE   0xFFFF

◆ VX_U1_THRESHOLD_FALSE_VALUE

#define VX_U1_THRESHOLD_FALSE_VALUE   vx_false_e

◆ VX_U1_THRESHOLD_TRUE_VALUE

#define VX_U1_THRESHOLD_TRUE_VALUE   vx_true_e

◆ VX_U32_THRESHOLD_FALSE_VALUE

#define VX_U32_THRESHOLD_FALSE_VALUE   0

◆ VX_U32_THRESHOLD_TRUE_VALUE

#define VX_U32_THRESHOLD_TRUE_VALUE   0xFFFFFFFF

Typedef Documentation

◆ vx_error

◆ vx_kernel_object_deinitialize_f

typedef vx_status(VX_CALLBACK * vx_kernel_object_deinitialize_f) (vx_kernel nn_kernel)

The pointer to the kernel object deinitializer.

Parameters
[in]nn_kernelobject local ptr.

◆ vx_target

Enumeration Type Documentation

◆ vx_ext_target_type_e

Enumerator
VX_TYPE_TARGET 

A vx_target

Function Documentation

◆ vxCreateContextFromPlatform()

VX_API_ENTRY vx_context VX_API_CALL vxCreateContextFromPlatform ( struct _vx_platform * platform)