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.
- 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
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, andvx_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.
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.
- CPU: AMD64
- GPU: AMD Radeon™ Graphics [optional]
- Windows: Install the latest drivers and OpenCL SDK
- Linux: Install ROCm
- APU: AMD Radeon™
Mobile/Embedded[optional]
AMD OpenVX is built as part of the MIVisionX project.
- Refer to openvx/include/VX for Khronos OpenVX standard header files
- Refer to openvx/include/vx_ext_amd.h for AMD vendor extensions
mkdir build && cd build
cmake ..
make -j8- Install OpenCV (optional, for RunVX camera capture and image display)
- Set
OpenCV_DIRenvironment variable toOpenCV/buildfolder
- Set
- Use
amd_openvx/amd_openvx.slnto build for x64 platform - If AMD GPU (or OpenCL) is not available, set build flag
ENABLE_OPENCL=0inopenvx/openvx.vcxprojandrunvx/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.
