/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-mivisionx/checkouts/docs-5.7.1/amd_openvx/openvx/include/vx_ext_amd.h Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-mivisionx/checkouts/docs-5.7.1/amd_openvx/openvx/include/vx_ext_amd.h Source File#

MIVisionX: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-mivisionx/checkouts/docs-5.7.1/amd_openvx/openvx/include/vx_ext_amd.h Source File
vx_ext_amd.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2015 - 2023 Advanced Micro Devices, Inc. All rights reserved.
3 
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
10 
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13 
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 THE SOFTWARE.
21 */
22 
23 #ifndef _VX_EXT_AMD_H_
24 #define _VX_EXT_AMD_H_
25 
26 #include <VX/vx.h>
27 #include <VX/vx_khr_nn.h>
28 #ifdef __cplusplus
29 #include <string>
30 #endif
31 
43 #define AGO_TARGET_AFFINITY_CPU 0x0010 // CPU
44 #define AGO_TARGET_AFFINITY_GPU 0x0020 // GPU
45 #define AGO_TARGET_AFFINITY_APU 0x0030 // APU
46 
50 #define AGO_MAX_PARAMS 32
51 #define AGO_MERGE_RULE_MAX_FIND 4
52 #define AGO_MERGE_RULE_MAX_REPLACE 4
53 #define AGO_MERGE_RULE_SOLITARY_FLAG 0x20
54 #define AGO_TARGET_AFFINITY_GPU_INFO_DEVICE_MASK 0x0F
55 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_MASK 0xF0
56 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_ENABLE 0x10
57 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_AS_CLMEM 0x20
58 #define AGO_TARGET_AFFINITY_GPU_INFO_SVM_NO_FGS 0x40
59 
66 #define VX_MAX_STRING_BUFFER_SIZE_AMD 256
67 
72 #define VX_NN_ACTIVATION_LEAKY_RELU (VX_ENUM_BASE(VX_ID_AMD, VX_ENUM_NN_ACTIVATION_FUNCTION_TYPE) + 0x9)
73 
77 #define VX_CONTEXT_ATTRIBUTE_NONLINEAR_MAX_DIMENSION VX_CONTEXT_NONLINEAR_MAX_DIMENSION
78 #define VX_CONTEXT_ATTRIBUTE_IMMEDIATE_BORDER_POLICY VX_CONTEXT_IMMEDIATE_BORDER_POLICY
79 
84 #define VX_GRAPH_ATTRIBUTE_STATE VX_GRAPH_STATE
85 
89 #define VX_OBJECT_ARRAY_ATTRIBUTE_ITEMTYPE VX_OBJECT_ARRAY_ITEMTYPE
90 #define VX_OBJECT_ARRAY_ATTRIBUTE_NUMITEMS VX_OBJECT_ARRAY_NUMITEMS
91 
96 {
115 };
116 
121 {
136 };
137 
142 {
155 };
156 
161 {
180 };
181 
186 {
195 };
196 
201 {
216 };
217 
223 {
237 };
238 
243 {
252 };
253 
263 {
276 };
277 
283 {
288 };
289 
295 {
298 };
299 
305 {
307  VX_DF_IMAGE_U1_AMD = VX_DF_IMAGE('U', '0', '0', '1'),
309  VX_DF_IMAGE_F16_AMD = VX_DF_IMAGE('F', '0', '1', '6'),
311  VX_DF_IMAGE_F32_AMD = VX_DF_IMAGE('F', '0', '3', '2'),
313  VX_DF_IMAGE_F64_AMD = VX_DF_IMAGE('F', '0', '6', '4'),
315  VX_DF_IMAGE_F32x3_AMD = VX_DF_IMAGE('F', '3', '3', '2'),
316 };
317 
323 {
326 };
327 
334 typedef struct _vx_tensor_t *vx_tensor;
335 
339 typedef struct
340 {
341  vx_size components;
342  vx_size planes;
343  vx_size pixelSizeInBitsNum;
344  vx_color_space_e colorSpace;
345  vx_channel_range_e channelRange;
346  vx_size pixelSizeInBitsDenom;
348 
352 typedef struct
353 {
354  vx_uint32 device_type; // shall be AGO_TARGET_AFFINITY_CPU or AGO_TARGET_AFFINITY_GPU
355  vx_uint32 device_info; // reserved -- shall be initialized to ZERO and shall not be modified
356  vx_uint32 reserved[2]; // reserved -- shall be initialized to ZERO and shall not be modified
358 
362 typedef struct
363 {
364  vx_char macroName[256];
365  vx_char *text;
367 
375 typedef struct
376 {
377  vx_char *text;
378  vx_uint32 num_ref;
379  vx_reference *ref;
380  vx_int32 dumpToConsole;
381  void(VX_CALLBACK *data_registry_callback_f)(void *obj, vx_reference ref, const char *name, const char *app_params);
382  void *data_registry_callback_obj;
384 
388 typedef struct
389 {
390  vx_char fileName[256];
391  vx_uint32 num_ref;
392  vx_reference *ref;
393  vx_char comment[64];
395 
399 typedef struct
400 {
401  vx_uint64 kernel_enqueue;
402  vx_uint64 kernel_wait;
403  vx_uint64 buffer_read;
404  vx_uint64 buffer_write;
406 
410 typedef struct AgoNodeMergeRule_t
411 {
412  struct
413  {
414  vx_enum kernel_id;
415  vx_uint32 arg_spec[AGO_MAX_PARAMS];
416  } find[AGO_MERGE_RULE_MAX_FIND];
417  struct
418  {
419  vx_enum kernel_id;
420  vx_uint32 arg_spec[AGO_MAX_PARAMS];
421  } replace[AGO_MERGE_RULE_MAX_REPLACE];
423 
424 #ifdef __cplusplus
429 typedef vx_status(VX_CALLBACK *amd_kernel_query_target_support_f)(vx_graph graph, vx_node node,
430  vx_bool use_opencl_1_2, // [input] false: OpenCL driver is 2.0+; true: OpenCL driver is 1.2
431  vx_uint32 &supported_target_affinity // [output] must be set to AGO_TARGET_AFFINITY_CPU or AGO_TARGET_AFFINITY_GPU or (AGO_TARGET_AFFINITY_CPU | AGO_TARGET_AFFINITY_GPU)
432 );
433 
447 typedef vx_status(VX_CALLBACK *amd_kernel_opencl_codegen_callback_f)(
448  vx_node node, // [input] node
449  const vx_reference parameters[], // [input] parameters
450  vx_uint32 num, // [input] number of parameters
451  bool opencl_load_function, // [input] false: normal OpenCL kernel; true: reserved
452  char opencl_kernel_function_name[64], // [output] kernel_name for clCreateKernel()
453  std::string &opencl_kernel_code, // [output] string for clCreateProgramWithSource()
454  std::string &opencl_build_options, // [output] options for clBuildProgram()
455  vx_uint32 &opencl_work_dim, // [output] work_dim for clEnqueueNDRangeKernel()
456  vx_size opencl_global_work[], // [output] global_work[] for clEnqueueNDRangeKernel()
457  vx_size opencl_local_work[], // [output] local_work[] for clEnqueueNDRangeKernel()
458  vx_uint32 &opencl_local_buffer_usage_mask, // [output] reserved: must be ZERO
459  vx_uint32 &opencl_local_buffer_size_in_bytes // [output] reserved: must be ZERO
460 );
461 
465 typedef vx_status(VX_CALLBACK *amd_drama_add_node_f)(vx_node node, vx_enum kernel_id, vx_reference *paramList, vx_uint32 paramCount);
466 typedef vx_status(VX_CALLBACK *amd_kernel_node_regen_callback_f)(vx_node node, amd_drama_add_node_f add_node_f, vx_bool &replace_original);
467 
473 typedef vx_status(VX_CALLBACK *amd_kernel_opencl_global_work_update_callback_f)(
474  vx_node node, // [input] node
475  const vx_reference parameters[], // [input] parameters
476  vx_uint32 num, // [input] number of parameters
477  vx_uint32 opencl_work_dim, // [input] work_dim for clEnqueueNDRangeKernel()
478  vx_size opencl_global_work[], // [output] global_work[] for clEnqueueNDRangeKernel()
479  const vx_size opencl_local_work[] // [input] local_work[] for clEnqueueNDRangeKernel()
480 );
481 
487 typedef vx_status(VX_CALLBACK *amd_kernel_gpu_buffer_update_callback_f)(
488  vx_node node, // [input] node
489  const vx_reference parameters[], // [input] parameters
490  vx_uint32 num // [input] number of parameters
491 );
492 
496 typedef struct
497 {
498  amd_kernel_gpu_buffer_update_callback_f gpu_buffer_update_callback_f;
499  vx_uint32 gpu_buffer_update_param_index;
500 } AgoKernelGpuBufferUpdateInfo;
501 
502 #if defined(AMD_FP16_SUPPORT)
505 #include <half/half.hpp>
506 using half_float::half;
507 typedef half vx_float16;
508 #endif
509 #endif
510 
511 #ifdef __cplusplus
512 extern "C"
513 {
514 #endif
515 
531 
547  VX_API_ENTRY vx_status VX_API_CALL vxSetModuleInternalData(vx_context context, const vx_char *module, void *ptr, vx_size size);
548 
564  VX_API_ENTRY vx_status VX_API_CALL vxGetModuleInternalData(vx_context context, const vx_char *module, void **ptr, vx_size *size);
565 
580  VX_API_ENTRY vx_status VX_API_CALL vxSetModuleHandle(vx_node node, const vx_char *module, void *ptr);
581 
596  VX_API_ENTRY vx_status VX_API_CALL vxGetModuleHandle(vx_node node, const vx_char *module, void **ptr);
597 
614 
628 
639  VX_API_ENTRY vx_status VX_API_CALL vxAliasTensor(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor);
640 
647  VX_API_ENTRY vx_bool VX_API_CALL vxIsTensorAliased(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor);
648 
649 #ifdef __cplusplus
650 }
651 #endif
652 
653 #endif
vx_tensor_attribute_amd_e
The AMD tensor data attributes.
Definition: vx_ext_amd.h:223
vx_array_attribute_amd_e
The AMD array data attributes.
Definition: vx_ext_amd.h:243
vx_color_space_amd_e
The image color space list used by the VX_IMAGE_SPACE attribute of a vx_image.
Definition: vx_ext_amd.h:295
vx_memory_type_amd_e
An enumeration of additional memory type imports.
Definition: vx_ext_amd.h:283
vx_df_image_amd_e
Based on the VX_DF_IMAGE definition.
Definition: vx_ext_amd.h:305
VX_API_ENTRY vx_status VX_API_CALL vxSetModuleHandle(vx_node node, const vx_char *module, void *ptr)
Set module handle.
vx_kernel_attribute_amd_e
The AMD kernel attributes list.
Definition: vx_ext_amd.h:142
struct _vx_tensor_t * vx_tensor
The multidimensional data object (Tensor).
Definition: vx_ext_amd.h:334
VX_API_ENTRY vx_status VX_API_CALL vxSetContextImageFormatDescription(vx_context context, vx_df_image format, const AgoImageFormatDescription *desc)
Set custom image format description.
VX_API_ENTRY vx_status VX_API_CALL vxGetContextImageFormatDescription(vx_context context, vx_df_image format, AgoImageFormatDescription *desc)
Get custom image format description.
vx_graph_attribute_amd_e
The AMD graph attributes list.
Definition: vx_ext_amd.h:161
#define AGO_MAX_PARAMS
AMD internal parameters. [TODO: This needs to be moved to ago_internal.h].
Definition: vx_ext_amd.h:50
VX_API_ENTRY vx_status VX_API_CALL vxSetModuleInternalData(vx_context context, const vx_char *module, void *ptr, vx_size size)
Set module internal data.
VX_API_ENTRY vx_status VX_API_CALL vxAliasTensor(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor)
vxAliasTensor.
vx_image_attribute_amd_e
The AMD image attributes list.
Definition: vx_ext_amd.h:201
vx_node_attribute_amd_e
The AMD node attributes list.
Definition: vx_ext_amd.h:186
vx_directive_amd_e
These enumerations are given to the vxDirective API to enable/disable platform optimizations and/or f...
Definition: vx_ext_amd.h:263
VX_API_ENTRY vx_status VX_API_CALL vxGetModuleInternalData(vx_context context, const vx_char *module, void **ptr, vx_size *size)
Retrieve module internal data.
VX_API_ENTRY vx_status VX_API_CALL vxGetModuleHandle(vx_node node, const vx_char *module, void **ptr)
Retrieve module handle.
struct AgoNodeMergeRule_t AgoNodeMergeRule
AMD data structure to specify node merge rule.
VX_API_ENTRY vx_bool VX_API_CALL vxIsTensorAliased(vx_tensor tensorMaster, vx_size offset, vx_tensor tensor)
vxIsTensorAliased.
vx_scalar_attribute_amd_e
scalar data attributes.
Definition: vx_ext_amd.h:323
vx_context_attribute_amd_e
The AMD context attributes list.
Definition: vx_ext_amd.h:121
ago_type_public_e
The type enumeration lists all the AMD specific types in OpenVX.
Definition: vx_ext_amd.h:96
VX_API_ENTRY vx_status VX_API_CALL vxGetReferenceName(vx_reference ref, vx_char name[], vx_size size)
Retrieve the name of a reference.
@ VX_TENSOR_BUFFER_HIP
HIP buffer. cl_mem.
Definition: vx_ext_amd.h:231
@ VX_TENSOR_OFFSET_GPU
GPU buffer offset. vx_size.
Definition: vx_ext_amd.h:227
@ VX_TENSOR_BUFFER_OPENCL
OpenCL buffer. cl_mem.
Definition: vx_ext_amd.h:229
@ VX_TENSOR_STRIDE_GPU
GPU buffer strides (array of vx_size).
Definition: vx_ext_amd.h:225
@ VX_TENSOR_MEMORY_TYPE
Queries memory type if created using vxCreateTensorFromHandle. If vx_tensor was not created using vxC...
Definition: vx_ext_amd.h:234
@ VX_TENSOR_BUFFER_HOST
Sync with user specified host buffer.
Definition: vx_ext_amd.h:236
@ VX_ARRAY_OFFSET_GPU
TODO:.
Definition: vx_ext_amd.h:251
@ VX_ARRAY_BUFFER
TODO:.
Definition: vx_ext_amd.h:249
@ VX_ARRAY_BUFFER_OPENCL
OpenCL buffer. cl_mem.
Definition: vx_ext_amd.h:245
@ VX_ARRAY_BUFFER_HIP
HIP buffer. hip_mem.
Definition: vx_ext_amd.h:247
@ VX_COLOR_SPACE_BT2020
Use to indicate that the BT.2020 coefficients are used for conversions.
Definition: vx_ext_amd.h:297
@ VX_MEMORY_TYPE_OPENCL
The memory type to import from the OpenCL.
Definition: vx_ext_amd.h:285
@ VX_MEMORY_TYPE_HIP
The memory type to import from the HIP.
Definition: vx_ext_amd.h:287
@ VX_DF_IMAGE_F32_AMD
AMD image with 32-bit floating-point (float).
Definition: vx_ext_amd.h:311
@ VX_DF_IMAGE_F32x3_AMD
AMD image with THREE 32-bit floating-point channels in one buffer.
Definition: vx_ext_amd.h:315
@ VX_DF_IMAGE_F16_AMD
AMD image with 16-bit floating-point (half).
Definition: vx_ext_amd.h:309
@ VX_DF_IMAGE_F64_AMD
AMD image with 64-bit floating-point (double).
Definition: vx_ext_amd.h:313
@ VX_DF_IMAGE_U1_AMD
AMD image with 1-bit data.
Definition: vx_ext_amd.h:307
@ VX_KERNEL_ATTRIBUTE_AMD_QUERY_TARGET_SUPPORT
Kernel callback for query target support. Use a amd_kernel_query_target_support_f parameter.
Definition: vx_ext_amd.h:144
@ VX_KERNEL_ATTRIBUTE_AMD_GPU_BUFFER_ACCESS_ENABLE
Kernel flag to enable OpenCL buffer access (default OFF). Use a vx_bool parameter.
Definition: vx_ext_amd.h:152
@ VX_KERNEL_ATTRIBUTE_AMD_GPU_BUFFER_UPDATE_CALLBACK
Kernel callback for GPU buffer update. Use a AgoKernelGpuBufferUpdateInfo parameter.
Definition: vx_ext_amd.h:154
@ VX_KERNEL_ATTRIBUTE_AMD_OPENCL_CODEGEN_CALLBACK
Kernel callback for OpenCL code generation. Use a amd_kernel_opencl_codegen_callback_f parameter.
Definition: vx_ext_amd.h:146
@ VX_KERNEL_ATTRIBUTE_AMD_NODE_REGEN_CALLBACK
Kernel callback for node regeneration. Use a amd_kernel_node_regen_callback_f parameter.
Definition: vx_ext_amd.h:148
@ VX_KERNEL_ATTRIBUTE_AMD_OPENCL_GLOBAL_WORK_UPDATE_CALLBACK
Kernel callback for OpenCL global work[]. Use a amd_kernel_opencl_global_work_update_callback_f param...
Definition: vx_ext_amd.h:150
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_PROFILE
Graph internal performance profile. Use a char * fileName parameter.
Definition: vx_ext_amd.h:175
@ VX_GRAPH_ATTRIBUTE_AMD_CPU_NUM_THREADS
CPU num_threads to be used in RPP. Use a vx_uint32 parameter.
Definition: vx_ext_amd.h:179
@ VX_GRAPH_ATTRIBUTE_AMD_EXPORT_TO_TEXT
Export a graph into a text file. Use a AgoGraphExportInfo parameter.
Definition: vx_ext_amd.h:167
@ VX_GRAPH_ATTRIBUTE_AMD_OPTIMIZER_FLAGS
Graph optimizer flags. Use a vx_uint32 parameter.
Definition: vx_ext_amd.h:169
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_LAST
Graph last performance (internal). Use a AgoGraphPerfInternalInfo parameter.
Definition: vx_ext_amd.h:171
@ VX_GRAPH_ATTRIBUTE_AMD_OPENCL_COMMAND_QUEUE
OpenCL command queue. Use a cl_command_queue parameter.
Definition: vx_ext_amd.h:177
@ VX_GRAPH_ATTRIBUTE_AMD_PERFORMANCE_INTERNAL_AVG
Graph avg performance (internal). Use a AgoGraphPerfInternalInfo parameter.
Definition: vx_ext_amd.h:173
@ VX_GRAPH_ATTRIBUTE_AMD_AFFINITY
Graph affinity. Use a AgoNodeAffinityInfo parameter.
Definition: vx_ext_amd.h:163
@ VX_GRAPH_ATTRIBUTE_AMD_IMPORT_FROM_TEXT
Imports a graph from a text file. Use a AgoGraphImportInfo parameter.
Definition: vx_ext_amd.h:165
@ VX_IMAGE_ATTRIBUTE_AMD_OPENCL_BUFFER
Sync with user specified OpenCL buffer. Use a cl_mem parameter.
Definition: vx_ext_amd.h:203
@ VX_IMAGE_ATTRIBUTE_AMD_HIP_BUFFER
Sync with user specified hip memory.
Definition: vx_ext_amd.h:215
@ VX_IMAGE_ATTRIBUTE_AMD_GPU_BUFFER_OFFSET
GPU buffer offset. Use a cl_uint parameter.
Definition: vx_ext_amd.h:205
@ VX_IMAGE_ATTRIBUTE_AMD_ENABLE_USER_BUFFER_GPU
Enable user kernel's own GPU buffer for virtual images. Supports only images with single color plane ...
Definition: vx_ext_amd.h:209
@ VX_IMAGE_ATTRIBUTE_AMD_GPU_BUFFER_STRIDE
GPU buffer stride. Use a cl_uint parameter.
Definition: vx_ext_amd.h:211
@ VX_IMAGE_ATTRIBUTE_AMD_HOST_BUFFER
Sync with user specified host buffer. Use a cl_mem parameter.
Definition: vx_ext_amd.h:213
@ VX_NODE_ATTRIBUTE_AMD_HIP_STREAM
HIP stream. TBD.
Definition: vx_ext_amd.h:192
@ VX_NODE_ATTRIBUTE_AMD_AFFINITY
Node affinity. Use a AgoTargetAffinityInfo parameter.
Definition: vx_ext_amd.h:188
@ VX_NODE_ATTRIBUTE_AMD_OPENCL_COMMAND_QUEUE
OpenCL command queue. Use a cl_command_queue parameter.
Definition: vx_ext_amd.h:190
@ VX_NODE_ATTRIBUTE_AMD_CPU_NUM_THREADS
TBD.
Definition: vx_ext_amd.h:194
@ VX_DIRECTIVE_AMD_COPY_TO_HIPMEM
Data object copy to HIP memory.
Definition: vx_ext_amd.h:275
@ VX_DIRECTIVE_AMD_ENABLE_PROFILE_CAPTURE
Enable performance profile capture.
Definition: vx_ext_amd.h:269
@ VX_DIRECTIVE_AMD_DISABLE_PROFILE_CAPTURE
Disable performance profile capture.
Definition: vx_ext_amd.h:271
@ VX_DIRECTIVE_AMD_COPY_TO_OPENCL
Data object copy to OpenCL.
Definition: vx_ext_amd.h:267
@ VX_DIRECTIVE_AMD_DISABLE_GPU_FLUSH
Disable node level flush for a graph.
Definition: vx_ext_amd.h:273
@ VX_DIRECTIVE_AMD_READ_ONLY
Data object is readonly after this directive is given.
Definition: vx_ext_amd.h:265
@ VX_SCALAR_BUFFER
scalar's buffer
Definition: vx_ext_amd.h:325
@ VX_CONTEXT_ATTRIBUTE_AMD_OPENCL_CONTEXT
OpenCL context. Use a cl_context parameter.
Definition: vx_ext_amd.h:123
@ VX_CONTEXT_ATTRIBUTE_AMD_HIP_DEVICE
HIP context. Use a cl_context parameter.
Definition: vx_ext_amd.h:135
@ VX_CONTEXT_ATTRIBUTE_AMD_SET_MERGE_RULE
Set a merge rule. Use a AgoNodeMergeRule parameter.
Definition: vx_ext_amd.h:129
@ VX_CONTEXT_CL_QUEUE_PROPERTIES
CL_QUEUE_PROPERTIES to be used for creating OpenCL command queue. Use a cl_command_queue_properties p...
Definition: vx_ext_amd.h:133
@ VX_CONTEXT_ATTRIBUTE_AMD_AFFINITY
Context affinity. Use a AgoTargetAffinityInfo parameter.
Definition: vx_ext_amd.h:125
@ VX_CONTEXT_ATTRIBUTE_AMD_SET_TEXT_MACRO
Set a text macro definition. Use a AgoContextMacroInfo parameter.
Definition: vx_ext_amd.h:127
@ VX_CONTEXT_MAX_TENSOR_DIMENSIONS
Tensor Data max num of dimensions supported by HW.
Definition: vx_ext_amd.h:131
@ AGO_TYPE_MINMAXLOC_DATA
AGO data structure for AGO MinMaxLoc kernels.
Definition: vx_ext_amd.h:108
@ VX_TYPE_STRING_AMD
AMD scalar data type for string.
Definition: vx_ext_amd.h:99
@ AGO_TYPE_MEANSTDDEV_DATA
AGO data structure for AGO MeanStdDev kernels.
Definition: vx_ext_amd.h:105
@ AGO_TYPE_SCALE_MATRIX
AGO data structure for AGO Scale kernels.
Definition: vx_ext_amd.h:114
@ AGO_TYPE_KEYPOINT_XYS
AGO struct data type for keypoint XYS.
Definition: vx_ext_amd.h:102
@ AGO_TYPE_CANNY_STACK
AGO data structure for AGO Canny kernels.
Definition: vx_ext_amd.h:111
AMD data structure to set a text macro.
Definition: vx_ext_amd.h:363
AMD data structure to export a graph to a text.
Definition: vx_ext_amd.h:389
AMD data structure to import a graph from a text.text: "macro <macro-name>" to use a pre-defined macr...
Definition: vx_ext_amd.h:376
AMD data structure to get internal performance data.
Definition: vx_ext_amd.h:400
AMD data structure for image format information.
Definition: vx_ext_amd.h:340
AMD data structure to specify node merge rule.
Definition: vx_ext_amd.h:411
AMD data structure to specify target affinity.
Definition: vx_ext_amd.h:353
The top level OpenVX Header.
The Khronos Extension for Deep Convolutional Networks Functions.
struct _vx_context * vx_context
An opaque reference to the implementation context.
Definition: vx_types.h:218
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
Definition: vx_types.h:145
uint32_t vx_uint32
A 32-bit unsigned value.
Definition: vx_types.h:85
vx_color_space_e
The image color space list used by the VX_IMAGE_SPACE attribute of a vx_image.
Definition: vx_types.h:1300
vx_channel_range_e
The image channel range list used by the VX_IMAGE_RANGE attribute of a vx_image.
Definition: vx_types.h:1317
uint32_t vx_df_image
Used to hold a VX_DF_IMAGE code to describe the pixel format and color space.
Definition: vx_types.h:162
@ VX_TYPE_VENDOR_STRUCT_START
A vendor-defined struct base index.
Definition: vx_types.h:368
@ VX_TYPE_NODE
A vx_node.
Definition: vx_types.h:383
@ VX_TYPE_SCALAR
A vx_scalar. when needed to be completely generic for kernel validation.
Definition: vx_types.h:393
@ VX_TYPE_TENSOR
A vx_tensor.
Definition: vx_types.h:402
@ VX_TYPE_CONTEXT
A vx_context.
Definition: vx_types.h:381
@ VX_TYPE_ARRAY
A vx_array.
Definition: vx_types.h:394
@ VX_TYPE_VENDOR_OBJECT_START
A vendor defined object base index.
Definition: vx_types.h:370
@ VX_TYPE_KERNEL
A vx_kernel.
Definition: vx_types.h:384
@ VX_TYPE_IMAGE
A vx_image.
Definition: vx_types.h:395
@ VX_TYPE_GRAPH
A vx_graph.
Definition: vx_types.h:382
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition: vx_types.h:157
struct _vx_tensor_t * vx_tensor
The multidimensional data object (Tensor).
Definition: vx_types.h:287
@ VX_ENUM_COLOR_SPACE
Color Space.
Definition: vx_types.h:563
@ VX_ENUM_DIRECTIVE
Directive Values.
Definition: vx_types.h:560
@ VX_ENUM_MEMORY_TYPE
The memory type enumeration.
Definition: vx_types.h:571
vx_enum vx_status
A formal status type with known fixed size.
Definition: vx_types.h:445
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
Definition: vx_types.h:152
#define VX_ENUM_BASE(vendor, id)
Defines the manner in which to combine the Vendor and Object IDs to get the base value of the enumera...
Definition: vx_types.h:550
struct _vx_graph * vx_graph
An opaque reference to a graph.
Definition: vx_types.h:211
struct _vx_node * vx_node
An opaque reference to a kernel node.
Definition: vx_types.h:204
int32_t vx_int32
A 32-bit signed value.
Definition: vx_types.h:105
char vx_char
An 8 bit ASCII character.
Definition: vx_types.h:70
#define VX_ATTRIBUTE_BASE(vendor, object)
Defines the manner in which to combine the Vendor and Object IDs to get the base value of the enumera...
Definition: vx_types.h:533
uint64_t vx_uint64
A 64-bit unsigned value.
Definition: vx_types.h:90
#define VX_API_CALL
Defines calling convention for OpenVX API.
Definition: vx_types.h:56
vx_enum vx_bool
A formal boolean type with known fixed size.
Definition: vx_types.h:312
#define VX_DF_IMAGE(a, b, c, d)
Converts a set of four chars into a uint32_t container of a VX_DF_IMAGE code.
Definition: vx_types.h:526
#define VX_CALLBACK
Defines calling convention for user callbacks.
Definition: vx_types.h:63
@ VX_ID_KHRONOS
The Khronos Group.
Definition: vx_vendors.h:30
@ VX_ID_AMD
Advanced Micro Devices.
Definition: vx_vendors.h:43