A Survey of System Architectures and Techniques for FPGA Virtualization

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 article, 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 article helps researchers to efficiently learn about FPGA virtualization research by providing a comprehensive review of the existing literature.

[1]  Abhishek Kumar Jain,et al.  Architecture centric coarse-grained FPGA overlays , 2017 .

[2]  Yu Zhang,et al.  Enabling FPGAs in the cloud , 2014, Conf. Computing Frontiers.

[3]  Marco Platzner,et al.  Embedding FPGA overlays into configurable Systems-on-Chip: ReconOS meets ZUMA , 2014, 2014 International Conference on ReConFigurable Computing and FPGAs (ReConFig14).

[4]  Kizheppatt Vipin,et al.  Virtualized FPGA Accelerators for Efficient Cloud Computing , 2015, 2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom).

[5]  Cheng Liu,et al.  QuickDough: A rapid FPGA loop accelerator design framework using soft CGRA overlay , 2015, 2015 International Conference on Field Programmable Technology (FPT).

[6]  Dirk Koch,et al.  Resource Elastic Virtualization for FPGAs Using OpenCL , 2018, 2018 28th International Conference on Field Programmable Logic and Applications (FPL).

[7]  Mehdi Baradaran Tahoori,et al.  Active Fences against Voltage-based Side Channels in Multi-Tenant FPGAs , 2019, 2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[8]  Raffaele Montella,et al.  Virtualizing General Purpose GPUs for High Performance Cloud Computing: An Application to a Fluid Simulator , 2012, 2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applications.

[9]  Fengbo Ren,et al.  Are FPGAs Suitable for Edge Computing? , 2018, HotEdge.

[10]  Roger Woods,et al.  FPGA-based Implementation of Signal Processing Systems , 2017 .

[11]  Andreas Herkersdorf,et al.  Enabling FPGAs in Hyperscale Data Centers , 2015, 2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing and 2015 IEEE 12th Intl Conf on Autonomic and Trusted Computing and 2015 IEEE 15th Intl Conf on Scalable Computing and Communications and Its Associated Workshops (UIC-ATC-ScalCom).

[12]  Robert W. Brodersen,et al.  DSP Architecture Design Essentials , 2012 .

[13]  Gang Qu,et al.  A survey on security and trust of FPGA-based systems , 2014, 2014 International Conference on Field-Programmable Technology (FPT).

[14]  Rainer G. Spallek,et al.  RC3E: Reconfigurable Accelerators in Data Centres and Their Provision by Adapted Service Models , 2016, 2016 IEEE 9th International Conference on Cloud Computing (CLOUD).

[15]  Kermin Fleming,et al.  The LEAP FPGA operating system , 2014, 2014 24th International Conference on Field Programmable Logic and Applications (FPL).

[16]  Christophe Bobda,et al.  FPGA Virtualization in Cloud-Based Infrastructures Over Virtio , 2018, 2018 IEEE 36th International Conference on Computer Design (ICCD).

[17]  HALO 1.0: A Hardware-agnostic Accelerator Orchestration Framework for Enabling Hardware-agnostic Programming with True Performance Portability for Heterogeneous HPC , 2020, ArXiv.

[18]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[19]  Song Han,et al.  ESE: Efficient Speech Recognition Engine with Sparse LSTM on FPGA , 2016, FPGA.

[20]  Mário P. Véstias,et al.  Trends of CPU, GPU and FPGA for high-performance computing , 2014, 2014 24th International Conference on Field Programmable Logic and Applications (FPL).

[21]  Dirk Koch,et al.  A Survey on FPGA Virtualization , 2018, 2018 28th International Conference on Field Programmable Logic and Applications (FPL).

[22]  Federico Silla,et al.  Enabling CUDA acceleration within virtual machines using rCUDA , 2011, 2011 18th International Conference on High Performance Computing.

[23]  James Coole,et al.  Intermediate fabrics: Virtual architectures for circuit portability and fast placement and routing , 2010, 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[24]  Frank Vahid,et al.  Firm-core Virtual FPGA for Just-in-Time FPGA Compilation (abstract only) , 2005, FPGA '05.

[25]  Gilberto Ochoa-Ruiz,et al.  NoC Based Virtualized Accelerators for Cloud Computing , 2016, 2016 IEEE 10th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSOC).

[26]  Gilad Bracha,et al.  The Java Virtual Machine Specification, Java SE 8 Edition , 2013 .

[27]  T. El-Ghazawi,et al.  Virtualizing and sharing reconfigurable resources in High-Performance Reconfigurable Computing systems , 2008, 2008 Second International Workshop on High-Performance Reconfigurable Computing Technology and Applications.

[28]  Guy Lemieux,et al.  ZUMA: An Open FPGA Overlay Architecture , 2012, 2012 IEEE 20th International Symposium on Field-Programmable Custom Computing Machines.

[29]  Mehdi Kamal,et al.  POLAR: A Pipelined/Overlapped FPGA-Based LSTM Accelerator , 2020, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[30]  Alberto Leon-Garcia,et al.  FPGAs in the Cloud: Booting Virtualized Hardware Accelerators with OpenStack , 2014, 2014 IEEE 22nd Annual International Symposium on Field-Programmable Custom Computing Machines.

[31]  Eric Schkufza,et al.  Sharing, Protection, and Compatibility for Reconfigurable Fabric with AmorphOS , 2018, OSDI.

[32]  James Coole,et al.  Fast, Flexible High-Level Synthesis from OpenCL using Reconfiguration Contexts , 2014, IEEE Micro.

[33]  Vaughn Betz,et al.  Quantifying and mitigating the costs of FPGA virtualization , 2017, 2017 27th International Conference on Field Programmable Logic and Applications (FPL).

[34]  Reiner W. Hartenstein,et al.  Coarse grain reconfigurable architecture (embedded tutorial) , 2001, ASP-DAC '01.

[35]  Vincenzo Piuri,et al.  General methodologies to virtualize FPGAs in Hw/Sw systems , 1998, 1998 Midwest Symposium on Circuits and Systems (Cat. No. 98CB36268).

[36]  Ali Kashif Bashir,et al.  Revisiting the High-Performance Reconfigurable Computing for Future Datacenters , 2020, Future Internet.

[37]  Christophe Bobda,et al.  FLexiTASK: A Flexible FPGA Overlay for Efficient Multitasking , 2018, ACM Great Lakes Symposium on VLSI.

[38]  Paolo Ienne,et al.  Designing a virtual runtime for FPGA accelerators in the cloud , 2016, 2016 26th International Conference on Field Programmable Logic and Applications (FPL).

[39]  Gustavo Sutter,et al.  Virtualization of reconfigurable coprocessors in HPRC systems with multicore architecture , 2012, J. Syst. Archit..

[40]  Luigi Carro,et al.  An FPGA-based heterogeneous coarse-grained dynamically reconfigurable architecture , 2011, 2011 Proceedings of the 14th International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES).

[41]  Eric S. Chung,et al.  A reconfigurable fabric for accelerating large-scale datacenter services , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[42]  Paolo Ienne,et al.  Virtualized Execution Runtime for FPGA Accelerators in the Cloud , 2017, IEEE Access.

[43]  Marco Platzner,et al.  ReconOS: An Operating System Approach for Reconfigurable Computing , 2014, IEEE Micro.

[44]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[45]  Wei Wang,et al.  pvFPGA: Accessing an FPGA-based hardware accelerator in a paravirtualized environment , 2013, 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[46]  Daniel Raho,et al.  FPGA virtualization with accelerators overcommitment for network function virtualization , 2017, 2017 International Conference on ReConFigurable Computing and FPGAs (ReConFig).

[47]  Zhengwei Qi,et al.  A Hypervisor for Shared-Memory FPGA Platforms , 2020, ASPLOS.

[48]  Christophe Bobda,et al.  FPGAVirt: A Novel Virtualization Framework for FPGAs in the Cloud , 2018, 2018 IEEE 11th International Conference on Cloud Computing (CLOUD).

[49]  G. Edward Suh,et al.  FPGA-Based Remote Power Side-Channel Attacks , 2018, 2018 IEEE Symposium on Security and Privacy (SP).

[50]  Thomas Lin,et al.  Designing for FPGAs in the Cloud , 2018, IEEE Design & Test.

[51]  Swarup Bhunia,et al.  A Uniquified Virtualization Approach to Hardware Security , 2017, IEEE Embedded Systems Letters.

[52]  Hao Yu,et al.  A GPU-Outperforming FPGA Accelerator Architecture for Binary Convolutional Neural Networks , 2017, ACM J. Emerg. Technol. Comput. Syst..

[53]  Wang Lie,et al.  Dynamic Partial Reconfiguration in FPGAs , 2009, 2009 Third International Symposium on Intelligent Information Technology Application.

[54]  Marco Platzner,et al.  Virtualization of Hardware - Introduction and Survey , 2004, ERSA.

[55]  Russell Tessier,et al.  c ○ 2001 Kluwer Academic Publishers. Manufactured in The Netherlands. Reconfigurable Computing for Digital Signal Processing: A Survey ∗ , 1999 .

[56]  Kizheppatt Vipin,et al.  DyRACT: A partial reconfiguration enabled accelerator and test platform , 2014, 2014 24th International Conference on Field Programmable Logic and Applications (FPL).

[57]  Yu Wang,et al.  Enabling Efficient and Flexible FPGA Virtualization for Deep Learning in the Cloud , 2020, 2020 IEEE 28th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[58]  Eric S. Chung,et al.  A Configurable Cloud-Scale DNN Processor for Real-Time AI , 2018, 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA).

[59]  Alan D. George,et al.  VirtualRC: a virtual FPGA platform for applications and tools portability , 2012, FPGA '12.

[60]  Yongqiang Xiong,et al.  The Feniks FPGA Operating System for Cloud Computing , 2017, APSys.

[61]  Oliver Pell,et al.  Maximum Performance Computing with Dataflow Engines , 2012, Computing in Science & Engineering.

[62]  Vincenzo Piuri,et al.  Virtual FPGAs: Some Steps Behind the Physical Barriers , 1998, IPPS/SPDP Workshops.

[63]  Yue Zha,et al.  Virtualizing FPGAs in the Cloud , 2020, ASPLOS.

[64]  Dominique Lavenier,et al.  Placing, Routing, and Editing Virtual FPGAs , 2001, FPL.

[65]  Jean-Christophe Prévotet,et al.  Hypervisor mechanisms to manage FPGA reconfigurable accelerators , 2016, 2016 International Conference on Field-Programmable Technology (FPT).

[66]  Hayden Kwok-Hay So,et al.  FPGA Overlays , 2016, FPGAs for Software Programmers.

[67]  Chun-Hsian Huang,et al.  Hardware Resource Virtualization for Dynamically Partially Reconfigurable Systems , 2009, IEEE Embedded Systems Letters.

[68]  Chun-Hsian Huang,et al.  Virtualizable hardware/software design infrastructure for dynamically partially reconfigurable systems , 2013, TRETS.

[69]  Dionisios N. Pnevmatikatos,et al.  RACOS: Transparent access and virtualization of reconfigurable hardware accelerators , 2017, 2017 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS).

[70]  Jie Yang,et al.  Homogeneous NoC-based FPGA: The Foundation for Virtual FPGA , 2010, 2010 10th IEEE International Conference on Computer and Information Technology.

[71]  Vaughn Betz,et al.  The Costs of Confidentiality in Virtualized FPGAs , 2019, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[72]  Masahiro Iida,et al.  Enabling FPGA-as-a-Service in the Cloud with hCODE Platform , 2018, IEICE Trans. Inf. Syst..

[73]  Dejan Markovic,et al.  A scalable sparse matrix-vector multiplication kernel for energy-efficient sparse-blas on FPGAs , 2014, FPGA.

[74]  Jean-Paul Jamont,et al.  From FPGA to Support Cloud to Cloud of FPGA: State of the Art , 2019, Int. J. Reconfigurable Comput..