FPGA acceleration framework for computer vision aglorithms described in graphical form followin the OpenVX spec.
- fpga : OpenCL library for describing computational vision pipelines on FPGAs
- host : A sample host program that uses OpenCL runtime to offload computation to FPGA pipelines
- CMake
- OpenCV library
- Google Test
- Intel OpenCL SDK (tested against version 19.1)
- Build the host application. Make sure that aocl is in the path.
cd host
mkdir build && cd build
cmake ..
make
-
Develop and build a pipeline. Each pipeline has two components that need to be build separately.
-
Run the host program with proper input
- input/output path
- Path to generated FPGA binary (.aocx file)
- Path to generated host component (.so file)
- binary flag to specify hardware/emulator setup
./host -b [FPGA .aocx file] -a [Path to application .so file] -i [Path to input (image/video)] [Other flags]
The following picture shows this process.
This project is using OpenCL to configure and control the FPGA acceleration. We have used Arria10 GX dev kit (a10gx_hostch board variant) during development. We have tried to use the vendor specific extension as little as possible to make it easier to port this work to other development kits or different FPGA vendors.
University of California BSD 3-Clause