PyGA: a Python to FPGA compiler prototype

Abstract : Field Programmable Gate Arrays, FPGAs, are a widely available configurable hardware design that is commonly used in many domain-specific applications. However, the complexity of its programming interface is currently restricting its usage to highly qualified programmers dedicated to FPGAs. In order to democratize FPGAs, many efforts are concentrating on High-Level Synthesis, HLS: the process of compiling a high-level language to hardware. In that context we propose PyGA, a proof of concept of a Python to FPGA compiler based on the Numba Just-In-Time (JIT) compiler for Python and the Intel FPGA SDK for OpenCL. It allows any Python user to use a FPGA card as an accelerator for Python seamlessly. As expected, early performance results are encouraging, but not competitive with compiled CPU version. The study shows that, to avoid overhead that cannot be compensated otherwise, tightly coupled accelerator design such as Intel Xeon+FPGA are necessary to address larger code base with finer grain kernel. It also shows that without FPGA-specific programming effort, HLS compilation and runtime efforts remain to be done to be competitive with modern multi-core CPUs.
Complete list of metadatas

https://hal.inria.fr/hal-01959155
Contributor : Yohann Uguen <>
Submitted on : Tuesday, December 18, 2018 - 3:05:24 PM
Last modification on : Tuesday, November 19, 2019 - 11:51:20 AM

Identifiers

Citation

Yohann Uguen, Eric Petit. PyGA: a Python to FPGA compiler prototype. AI-SEPS 2018 - 5th ACM SIGPLAN International Workshop on Artificial Intelligence and Empirical Methods for Software Engineering and Parallel Computing Systems, Nov 2018, Boston, United States. pp.11-15, ⟨10.1145/3281070.3281072⟩. ⟨hal-01959155⟩

Share

Metrics

Record views

200