Skip to content

Latest commit

 

History

History
68 lines (43 loc) · 4.85 KB

File metadata and controls

68 lines (43 loc) · 4.85 KB

AMD OpenVX™

AMD OpenVX™ is a highly optimized conformant open-source implementation of the Khronos OpenVX™ 1.3 computer vision specification. It allows for rapid prototyping as well as fast execution on a wide range of computer hardware, including small embedded AMD64 CPUs and large workstation discrete GPUs.

OpenVX™ is an open, royalty-free standard for cross-platform acceleration of computer vision applications. It provides a set of optimized primitives for low-level image processing, computer vision, and neural net operators with performance portability across CPUs, GPUs, and special-function hardware.

Features

  • Highly optimized for both x86 CPU and OpenCL/HIP GPU backends
  • Supports hardware from low-power embedded APUs to workstation discrete GPUs
  • Supports Windows, Linux, and macOS
  • Graph optimizer that analyzes the entire processing pipeline to remove/replace/merge functions for improved performance and minimized bandwidth
  • Scripting support with RunVX for rapid prototyping without recompilation

OpenVX 1.3 Vision Conformance

AMD OpenVX implements the full Vision Conformance Feature Set, which includes:

  • Base Feature Set: Core framework objects (vx_context, vx_graph, vx_kernel, vx_node, vx_parameter, vx_reference, vx_meta_format, vx_delay) for constructing and executing OpenVX graphs.

  • Vision Data Objects: Data objects including vx_image, vx_array, vx_convolution, vx_distribution, vx_lut, vx_matrix, vx_pyramid, vx_remap, vx_scalar, vx_threshold, and vx_object_array.

  • Vision Functions: 36 vision processing functions including edge detection (Canny, Sobel), feature detection (Harris, FAST corners), filtering (Gaussian, Median, Box), geometric transforms (Warp, Remap, Scale), color conversion, histogram, optical flow, and more.

  • VXU Immediate Functions: The VXU library provides all OpenVX operators as directly callable C functions without requiring graph construction, useful for porting existing vision applications.

Khronos OpenVX™ 1.0.1 conformant implementation is available in MIVisionX Lite.

OpenVX Extensions

AMD OpenVX can be extended with additional modules. See amd_openvx_extensions for all available OpenVX extension modules including neural networks, MIGraphX inference, RPP image augmentation, OpenCV interop, and more.

Prerequisites

Build Instructions

AMD OpenVX is built as part of the MIVisionX project.

Build using CMake

mkdir build && cd build
cmake ..
make -j8

Build using Visual Studio

  • Install OpenCV (optional, for RunVX camera capture and image display)
    • Set OpenCV_DIR environment variable to OpenCV/build folder
  • Use amd_openvx/amd_openvx.sln to build for x64 platform
  • If AMD GPU (or OpenCL) is not available, set build flag ENABLE_OPENCL=0 in openvx/openvx.vcxproj and runvx/runvx.vcxproj

Note

AMD GPU HIP backend is not supported on Windows.

NOTE: OpenVX and the OpenVX logo are trademarks of the Khronos Group Inc.