PyLog: An Algorithm-Centric Python']Python-Based FPGA Programming and Synthesis Flow

被引:18
作者
Huang, Sitao [1 ]
Wu, Kun [1 ]
Jeong, Hyunmin [1 ]
Wang, Chengyue [2 ,3 ]
Chen, Deming [1 ]
Hwu, Wen-mei [1 ,4 ]
机构
[1] Univ Illinois, Dept Elect & Comp Engn, Urbana, IL 61801 USA
[2] Univ Illinois, Urbana, IL 61801 USA
[3] Zhejiang Univ, Hangzhou 310027, Peoples R China
[4] NVIDIA, Santa Clara, CA 95051 USA
关键词
FPGA; high-level synthesis; !text type='Python']Python[!/text; design optimization;
D O I
10.1109/TC.2021.3123465
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
The exploding complexity and computation efficiency requirements of applications are stimulating a strong demand for hardware acceleration with heterogeneous platforms such as FPGAs. However, a high-quality FPGA design is very hard to create and optimize as it requires FPGA expertise and a long design iteration time. In contrast, software applications are typically developed in a short development cycle, with high-level languages like Python, which have much higher levels of abstraction than all existing hardware design flows. To close this gap between hardware design flows and software applications, and simplify FPGA programming, we create PyLog, a high-level, algorithm-centric Python-based programming and synthesis flow for FPGA. PyLog is powered by a set of compiler optimization passes and a type inference system to generate high-quality hardware design. It abstracts away the implementation details, and allows designers to focus on algorithm specification. PyLog takes in Python functions, generates PyLog intermediate representation (PyLog IR), performs several optimization passes, including pragma insertion, design space exploration, and memory customization, etc., and creates complete FPGA system designs. PyLog also has a runtime that allows users to run the PyLog code directly on the target FPGA platform without any extra code development. The whole design flow is automated. Evaluation shows that PyLog significantly improves FPGA design productivity and generates highly efficient FPGA designs that outperform highly optimized CPU implementation and state-of-the-art FPGA implementation by 3.17x and 1.24x on average.
引用
收藏
页码:2015 / 2028
页数:14
相关论文
共 21 条
[1]  
[Anonymous], 2018, PARALLEL PROGRAMMING
[2]   SODA: Stencil with Optimized Dataflow Architecture [J].
Chi, Yuze ;
Cong, Jason ;
Wei, Peng ;
Zhou, Peipei .
2018 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN (ICCAD) DIGEST OF TECHNICAL PAPERS, 2018,
[3]  
Chisel, CHIS FIRRTL HARDW CO, P2021
[4]  
Clash, CLASH MOD FUNCT HARD, P2021
[5]   A New Golden Age in Computer Architecture: Empowering the Machine-Learning Revolution [J].
Dean, Jeff ;
Patterson, David ;
Young, Cliff .
IEEE MICRO, 2018, 38 (02) :21-29
[6]  
Falcon computing, 2021, MERL COMP
[7]  
Grauer-Gray, 2012, AUTOTUNING HIGH LEVE, P1, DOI DOI 10.1109/INPAR.2012.6339595
[8]  
Intel, 2021, Intel High Level Synthesis Compiler
[9]  
Intel, 2020, INT FPGA SDK OPENCL
[10]  
Jie Wang, 2021, FPGA '21: The 2021 ACM/SIGDA International Symposium on Field-Programmable, P93, DOI 10.1145/3431920.3439292