2021 29th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP) | 2021

A Cross-Platform OpenVX Library for FPGA Accelerators

 
 
 
 
 
 

Abstract


In Computer Vision, open programming standards such as OpenVX have emerged to bring together portability and acceleration across devices. Unfortunately, achieving both goals on FPGAs remains a challenge because FPGAs still require to adapt the code with proprietary extensions. Exclusively for Xilinx devices, the HiFlipVX open source library partially solves this problem by offering a clean C++ OpenVX API that offers the performance of proprietary extensions without exposing its complexity to programmer. While HiFlipVX enables portability within Xilinx devices, portability between FPGA manufacturers remains an open challenge. This work extends the HiFlipVX’s capabilities with a twofold goal: i) to support Intel FPGA devices with different memory configurations, and ii) to enable execution on FPGAs as discrete accelerators. To accomplish these goals, the proposed implementation combines two HLS programming models: C++, using Intel’s system of tasks that enables to coalesce nodes and reduce control overhead, and OpenCL, which provides efficient compute kernel nodes. On Intel FPGAs, compared with pure OpenCL implementations, the proposed implementation reduces kernel dispatch resources, saving up to 24% of ALUT resources for each kernel in a graph, and improves performance. Gains are $2.6\\times$ on average for representative applications, such as Canny edge detector, or Census transform, compared with state-of-the-art frameworks.

Volume None
Pages 75-83
DOI 10.1109/PDP52278.2021.00020
Language English
Journal 2021 29th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP)

Full Text