AMD OpenVX (beta) is a highly optimized open source implementation of the Khronos OpenVX computer vision specification. It allows for rapid prototyping as well as fast execution on a wide range of computer hardware, including small embedded x86 CPUs and large workstation discrete GPUs.
IMPORTANT: amdovx-core is a part of https://github.com/GPUOpen-ProfessionalCompute-Libraries/amdovx-modules project that contain additional OpenVX modules, such as, neural network inference, 360 degree video stitching, etc.
The amdovx-core project consists of two components:
- OpenVX: AMD OpenVX library
- RunVX: command-line utility to execute OpenVX graph described in GDF text file
- RunCL: command-line utility to build, execute, and debug OpenCL programs
The OpenVX framework provides a mechanism to add new vision functions to OpenVX by 3rd party vendors. Look into github amdovx-modules project for additional OpenVX modules and utilities.
- vx_nn: OpenVX neural network module that was built on top of MIOpen
- vx_loomsl: Radeon LOOM stitching library for live 360 degree video applications
- loom_shell: an interpreter to prototype 360 degree video stitching applications using a script
- vx_opencv: OpenVX module that implemented a mechanism to access OpenCV functionality as OpenVX kernels
This software is provided under a MIT-style license, see the file COPYRIGHT.txt for details.
- The code is highly optimized for both x86 CPU and OpenCL for GPU
- Supported hardware spans the range from low power embedded APUs (like the new G series) to laptop, desktop and workstation graphics
- Supports Windows, Linux, and OS X
- Includes a “graph optimizer” that looks at the entire processing pipeline and removes/replaces/merges functions to improve performance and minimize bandwidth at runtime
- Scripting support allows for rapid prototyping, without re-compiling at production performance levels
- CPU: SSE4.1 or above CPU, 64-bit.
- GPU: Radeon Professional Graphics Cards or Vega Family of Products (16GB required for vx_loomsl and vx_nn libraries)
- OpenCV 3 (optional) download for RunVX
- Set OpenCV_DIR environment variable to OpenCV/build folder
Build this project to generate AMD OpenVX library and RunVX executable.
- Refer to openvx/include/VX for Khronos OpenVX standard header files.
- Refer to openvx/include/vx_ext_amd.h for vendor extensions in AMD OpenVX library.
- Refer to runvx/README.md for RunVX details.
- Refer to runcl/README.md for RunCL details.
- Install OpenCV 3 with contrib download for RunVX tool to support camera capture and image display (optional)
- OpenCV_DIR environment variable should point to OpenCV/build folder
- Use amdovx-core/amdovx.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.
- Install CMake 2.8 or newer download.
- Install OpenCV 3 with contrib download for RunVX tool to support camera capture and image display (optional)
- OpenCV_DIR environment variable should point to OpenCV/build folder
- Install libssl-dev on linux (optional)
- Use CMake to configure and generate Makefile
- If AMD GPU (or OpenCL) is not available, use build flag -DCMAKE_DISABLE_FIND_PACKAGE_OpenCL=TRUE.