FPGA accelerators are gaining increasing attention in both cloud and edge computing because of their hardware flexibility, high computational throughput, and low power consumption. However, the design flow of FPGAs often requires specific knowledge of the underlying hardware, which hinders the wide adoption of FPGAs by application developers. Therefore, the virtualization of FPGAs becomes extremely important to create a useful abstraction of the hardware suitable for application developers. Such abstraction also enables the sharing of FPGA resources among multiple users and accelerator applications, which is important because, traditionally, FPGAs have been mostly used in single-user, single-embedded-application scenarios. There are many works in the field of FPGA virtualization covering different aspects and targeting different application areas. In this survey, we review the system architectures used in the literature for FPGA virtualization. In addition, we identify the primary objectives of FPGA virtualization, based on which we summarize the techniques for realizing FPGA virtualization. This survey helps researchers to efficiently learn about FPGA virtualization research by providing a comprehensive review of the existing literature.
翻译:FPGA加速器由于硬件灵活性、高计算量和低电耗,在云层和边缘计算中日益受到关注。然而,FPGA的设计流程往往要求具体了解基础硬件,这妨碍了应用程序开发者广泛采用FPGA。因此,FPGA的虚拟化对于创造适合应用开发者的硬件的有用抽象化极为重要。这种抽象化还使得多个用户和加速器应用程序能够分享FPGA资源,这很重要,因为传统上,FPGA大多用于单一用户、单组应用设想方案。在FPGA虚拟化领域有许多工作,涉及不同方面并针对不同应用领域。在这次调查中,我们审查了文献中用于FPGA虚拟化的系统结构。此外,我们确定了FGA虚拟化的主要目标,我们在此基础上总结了实现FPGA虚拟化的技术。这项调查有助于研究人员通过对现有文献进行全面审查,高效率地了解FPGA虚拟化研究。