Code Monkey home page Code Monkey logo

affix's Introduction

AFFIX

FPGA acceleration framework for computer vision aglorithms described in graphical form followin the OpenVX spec.

Components

  1. fpga : OpenCL library for describing computational vision pipelines on FPGAs
  2. host : A sample host program that uses OpenCL runtime to offload computation to FPGA pipelines

Dependencies

  1. CMake
  2. OpenCV library
  3. Google Test
  4. Intel OpenCL SDK (tested against version 19.1)

Usage

  1. Build the host application. Make sure that aocl is in the path.
cd host
mkdir build && cd build
cmake ..
make
  1. Develop and build a pipeline. Each pipeline has two components that need to be build separately.

    1. Implement the FPGA pipeline in OpenCL and build with aocl to a FPGA binary file. Refer to docs for more information.
    2. Describe the FPGA pipeline and implement pre/post processing logic for the host program in C++ and compile it to a shared library. Refer to docs for more information.
  2. 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.

components.png

FPGA Board Support

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.

License

University of California BSD 3-Clause

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.