Litcius/Paper detail

Programming and Synthesis for Software-defined FPGA Acceleration: Status and Future Prospects

Yi‐Hsiang Lai, Ecenur Ustun, Shaojie Xiang, Zhenman Fang, Hongbo Rong, Zhiru Zhang

2021ACM Transactions on Reconfigurable Technology and Systems45 citationsDOI

Abstract

FPGA-based accelerators are increasingly popular across a broad range of applications, because they offer massive parallelism, high energy efficiency, and great flexibility for customizations. However, difficulties in programming and integrating FPGAs have hindered their widespread adoption. Since the mid 2000s, there has been extensive research and development toward making FPGAs accessible to software-inclined developers, besides hardware specialists. Many programming models and automated synthesis tools, such as high-level synthesis, have been proposed to tackle this grand challenge. In this survey, we describe the progression and future prospects of the ongoing journey in significantly improving the software programmability of FPGAs. We first provide a taxonomy of the essential techniques for building a high-performance FPGA accelerator, which requires customizations of the compute engines, memory hierarchy, and data representations. We then summarize a rich spectrum of work on programming abstractions and optimizing compilers that provide different trade-offs between performance and productivity. Finally, we highlight several additional challenges and opportunities that deserve extra attention by the community to bring FPGA-based computing to the masses.

Topics & Concepts

Computer scienceField-programmable gate arraySoftwareComputer architectureMemory hierarchyCompilerProgramming paradigmFlexibility (engineering)Embedded systemReconfigurable computingHardware accelerationSoftware engineeringParallel computingOperating systemProgramming languageMathematicsCacheStatisticsEmbedded Systems Design TechniquesParallel Computing and Optimization TechniquesVLSI and FPGA Design Techniques