Machine Learning for Agile FPGA Design
Debjit Pal, Chenhui Deng, Ecenur Ustun, Cunxi Yu, Zhiru Zhang · 2022
Field-programmable gate arrays (FPGAs) have become popular means of hardware acceleration since they offer massive parallelism, flexible configurability, and potentially higher performance per Watt. However, the heterogeneous architecture of modern FPGAs and multiple abstractions across design stages present unprecedented challenges to FPGA design tasks, e.g., quality of results (QoR) estimation, and design space exploration, necessitating considerable manual effort for design optimization. Recently, machine learning (ML) has been applied extensively to such FPGA design tasks to minimize human supervision. In this chapter, we provide a comprehensive review of different ML techniques that hold promise to significantly enhance FPGA design automation. First, we provide a brief overview of the FPGA design flow followed by our insights into applying ML for enhanced agility in FPGA design automation. Then, we discuss representative works in applying ML in two different ways for FPGA design automation—ML as a predictor to improve QoR estimation and ML as a decision-maker to automate FPGA design space exploration to iteratively improve QoR estimation. Next, we present multiple recent case studies in detail to showcase the effective applications of ML in FPGA design optimization tasks. Finally, we highlight additional challenges and future opportunities to motivate more ML-based solutions to streamline fast and accurate FPGA design automation.