A Survey on FPGA Virtualization

FPGA accelerators are being applied in various types of systems ranging from embedded systems to cloud computing for their high performance and energy efficiency. Given the scale of deployment, there is a need for efficient application development, resource management, and scalable systems, which make FPGA virtualization extremely important. Consequently, FPGA virtualization methods and hardware infrastructures have frequently been proposed in both academia and industry for addressing multi-tenancy execution, multi-FPGA acceleration, flexibility, resource management and security. In this survey, we identify and classify the various techniques and approaches into three main categories: 1)Resource level, 2)Node level, and 3)Multi-node level. In addition, we identify current trends and developments and highlight important future directions for FPGA virtualization which require further work.

[1]  Olivier Muller,et al.  Generating Efficient Context-Switch Capable Circuits through Autonomous Design Flow , 2016, ACM Trans. Reconfigurable Technol. Syst..

[2]  Wei Zhang,et al.  Melia: A MapReduce Framework on OpenCL-Based FPGAs , 2016, IEEE Transactions on Parallel and Distributed Systems.

[3]  Nachiket Kapre,et al.  Packet Switched vs. Time Multiplexed FPGA Overlay Networks , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[4]  Kizheppatt Vipin,et al.  A Case for FPGA Accelerators in the Cloud , 2014 .

[5]  Claus Pahl,et al.  Containerization and the PaaS Cloud , 2015, IEEE Cloud Computing.

[6]  Jürgen Teich,et al.  The Erlangen slot machine: increasing flexibility in FPGA-based reconfigurable platforms , 2005, Proceedings. 2005 IEEE International Conference on Field-Programmable Technology, 2005..

[7]  Nachiket Kapre,et al.  Hoplite: Building austere overlay NoCs for FPGAs , 2015, 2015 25th International Conference on Field Programmable Logic and Applications (FPL).

[8]  Karthikeyan Sankaralingam,et al.  DySER: Unifying Functionality and Parallelism Specialization for Energy-Efficient Computing , 2012, IEEE Micro.

[9]  Hideharu Amano,et al.  A Performance Evaluation of CUBE: One-Dimensional 512 FPGA Cluster , 2010, ARC.

[10]  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).

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

[12]  Jason Cong,et al.  A Fully Pipelined and Dynamically Composable Architecture of CGRA , 2014, 2014 IEEE 22nd Annual International Symposium on Field-Programmable Custom Computing Machines.

[13]  Guy Lemieux,et al.  Embedded supercomputing in FPGAs with the VectorBlox MXP Matrix Processor , 2013, 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[14]  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).

[15]  W. Luk,et al.  Axel: a heterogeneous cluster with FPGAs and GPUs , 2010, FPGA '10.

[16]  Neil W. Bergmann,et al.  QUKU: A FPGA Based Flexible Coarse Grain Architecture Design Paradigm using Process Networks , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[17]  Vaughn Betz,et al.  Interconnect Solutions for Virtualized Field-Programmable Gate Arrays , 2018, IEEE Access.

[18]  Douglas L. Maskell,et al.  Virtualized Execution and Management of Hardware Tasks on a Hybrid ARM-FPGA Platform , 2014, J. Signal Process. Syst..

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

[20]  Jason Cong,et al.  When Spark Meets FPGAs: A Case Study for Next-Generation DNA Sequencing Acceleration , 2016, 2016 IEEE 24th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

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

[22]  Dirk Koch,et al.  PCIeHLS: an OpenCL HLS framework , 2017 .

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

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

[25]  Ken Eguro,et al.  SIRC: An Extensible Reconfigurable Computing Communication API , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

[26]  Dirk Koch,et al.  JetStream: An open-source high-performance PCI Express 3 streaming library for FPGA-to-Host and FPGA-to-FPGA communication , 2016, 2016 26th International Conference on Field Programmable Logic and Applications (FPL).

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

[28]  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.

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

[30]  Hari Angepat,et al.  An FPGA-based In-Line Accelerator for Memcached , 2014, IEEE Computer Architecture Letters.

[31]  Ryan Kastner,et al.  RIFFA 2.0: A reusable integration framework for FPGA accelerators , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[32]  Greg Stitt,et al.  A low-overhead interconnect architecture for virtual reconfigurable fabrics , 2012, CASES '12.

[33]  Jim Stevens,et al.  Hthreads: A Computational Model for Reconfigurable Devices , 2006, 2006 International Conference on Field Programmable Logic and Applications.

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

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

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

[37]  Christoph Hagleitner,et al.  Network-attached FPGAs for data center applications , 2016, 2016 International Conference on Field-Programmable Technology (FPT).

[38]  Alberto Leon-Garcia,et al.  Enabling Flexible Network FPGA Clusters in a Heterogeneous Cloud Data Center , 2017, FPGA.

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

[40]  Jonathan Rose,et al.  VESPA: portable, scalable, and flexible FPGA-based vector processors , 2008, CASES '08.

[41]  James C. Hoe,et al.  CONNECT: re-examining conventional wisdom for designing nocs in the context of FPGAs , 2012, FPGA '12.

[42]  Alexander Dunlop Brant,et al.  Coarse and fine grain programmable overlay architectures for FPGAs , 2013 .

[43]  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.

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

[45]  Yu Wang,et al.  FPMR: MapReduce framework on FPGA , 2010, FPGA '10.

[46]  Philip Heng Wai Leong,et al.  Map-reduce as a Programming Model for Custom Computing Machines , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[47]  Guy Lemieux,et al.  An efficient FPGA overlay for portable custom instruction set extensions , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[48]  Mariette Awad,et al.  A Distributed Reconfigurable Active SSD Platform for Data Intensive Applications , 2011, 2011 IEEE International Conference on High Performance Computing and Communications.

[49]  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).

[50]  Jason Cong,et al.  Programming and Runtime Support to Blaze FPGA Accelerator Deployment at Datacenter Scale , 2016, SoCC.

[51]  Yong Wang,et al.  SDA: Software-defined accelerator for large-scale DNN systems , 2014, 2014 IEEE Hot Chips 26 Symposium (HCS).

[52]  Dimitrios Soudris,et al.  VineTalk: Simplifying software access and sharing of FPGAs in datacenters , 2017, 2017 27th International Conference on Field Programmable Logic and Applications (FPL).

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

[54]  Brent Nelson,et al.  PNoC: a flexible circuit-switched NoC for FPGA-based systems , 2006 .

[55]  Ken Eguro,et al.  Leaky Wires: Information Leakage and Covert Communication Between FPGA Long Wires , 2016, AsiaCCS.

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

[57]  Christof Paar,et al.  Bitstream Fault Injections (BiFI)–Automated Fault Attacks Against SRAM-Based FPGAs , 2018, IEEE Transactions on Computers.

[58]  Guy Lemieux,et al.  Vector processing as a soft-core CPU accelerator , 2008, FPGA '08.

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

[60]  André DeHon,et al.  FPGA optimized packet-switched NoC using split and merge primitives , 2012, 2012 International Conference on Field-Programmable Technology.

[61]  Andreas Traber,et al.  Preemptive Hardware Multitasking in ReconOS , 2015, ARC.

[62]  Guy Lemieux,et al.  VEGAS: soft vector processor with scratchpad memory , 2011, FPGA '11.

[63]  Vaughn Betz,et al.  Comparing performance, productivity and scalability of the TILT overlay processor to OpenCL HLS , 2014, 2014 International Conference on Field-Programmable Technology (FPT).

[64]  Douglas L. Maskell,et al.  iDEA: A DSP block based FPGA soft processor , 2012, 2012 International Conference on Field-Programmable Technology.

[65]  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).

[66]  Marco Platzner,et al.  ReconOS: An RTOS Supporting Hard-and Software Threads , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[67]  Abhishek Verma,et al.  Large-scale cluster management at Google with Borg , 2015, EuroSys.

[68]  Kyle Rupnow,et al.  Block, Drop or Roll(back): Alternative Preemption Methods for RH Multi-Tasking , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[69]  Ken Eguro,et al.  Information Leakage Between FPGA Long Wires , 2016, ArXiv.

[70]  John Miller,et al.  Open Component Portability Infrastructure (OPENCPI) , 2013 .

[71]  Kolin Paul,et al.  reMORPH: A Runtime Reconfigurable Architecture , 2012, 2012 15th Euromicro Conference on Digital System Design.

[72]  Guy Lemieux,et al.  VENICE: A compact vector processor for FPGA applications , 2012, 2012 International Conference on Field-Programmable Technology.

[73]  Peter Sanders,et al.  High Performance in the Cloud with FPGA Groups , 2016, 2016 IEEE/ACM 9th International Conference on Utility and Cloud Computing (UCC).

[74]  Martin Margala,et al.  SparkCL: A Unified Programming Framework for Accelerators on Heterogeneous Clusters , 2015, ArXiv.

[75]  Douglas L. Maskell,et al.  Efficient Overlay Architecture Based on DSP Blocks , 2015, 2015 IEEE 23rd Annual International Symposium on Field-Programmable Custom Computing Machines.

[76]  Jim Tørresen,et al.  Short-Circuits on FPGAs Caused by Partial Runtime Reconfiguration , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[77]  Mehdi Baradaran Tahoori,et al.  Voltage drop-based fault attacks on FPGAs using valid bitstreams , 2017, 2017 27th International Conference on Field Programmable Logic and Applications (FPL).

[78]  Kizheppatt Vipin,et al.  System-level FPGA device driver with high-level synthesis support , 2013, 2013 International Conference on Field-Programmable Technology (FPT).

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

[80]  Dionisios N. Pnevmatikatos,et al.  Multi-FPGA Evaluation Platform for Disaggregated Computing , 2017, 2017 IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[81]  Martin Margala,et al.  An FPGA memcached appliance , 2013, FPGA '13.