skip to main content
research-article

FOS: A Modular FPGA Operating System for Dynamic Workloads

Authors Info & Claims
Published:09 September 2020Publication History
Skip Abstract Section

Abstract

With FPGAs now being deployed in the cloud and at the edge, there is a need for scalable design methods that can incorporate the heterogeneity present in the hardware and software components of FPGA systems. Moreover, these FPGA systems need to be maintainable and adaptable to changing workloads while improving accessibility for the application developers. However, current FPGA systems fail to achieve modularity and support for multi-tenancy due to dependencies between system components and the lack of standardised abstraction layers. To solve this, we introduce a modular FPGA operating system – FOS, which adopts a modular FPGA development flow to allow each system component to be changed and be agnostic to the heterogeneity of EDA tool versions, hardware and software layers. Further, to dynamically maximise the utilisation transparently from the users, FOS employs resource-elastic scheduling to arbitrate the FPGA resources in both time and spatial domain for any type of accelerators. Our evaluation on different FPGA boards shows that FOS can provide performance improvements in both single-tenant and multi-tenant environments while substantially reducing the development time and, at the same time, improving flexibility.

References

  1. A. Pourhabibi et al. 2020. Optimus prime: Accelerating data transformation in servers. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Putnam et al. 2014. A reconfigurable fabric for accelerating large-scale datacenter services. In 41st Annual International Symposium on Computer Architecuture (ISCA).Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Beckhoff, D. Koch, and J. Torresen. 2012. GoAhead: A partial reconfiguration framework. In International Symposium on Field-Programmable Custom Computing Machines (FCCM).Google ScholarGoogle Scholar
  4. E. Lübers and M. Platzner. 2007. ReconOS: An RTOS supporting hard-and software threads. In International Conference on Field Programmable Logic and Applications (FPL).Google ScholarGoogle Scholar
  5. A. Khawaja et al. 2018. Sharing, protection, and compatibility for reconfigurable fabric with amorphOS. In Symposium on Operating Systems Design and Implementation (OSDI 18).Google ScholarGoogle Scholar
  6. K. D. Pham et al. 2019. ZUCL 2.0: Virtualised memory and communication for ZYNQ UltraScale+ FPGAs. In International Workshop on FPGAs for Software Programmers (FSP).Google ScholarGoogle Scholar
  7. P. Lysaght et al. 2006. Invited paper: Enhanced architectures, design methodologies and CAD tools for dynamic reconfiguration of xilinx FPGAs. In International Conference on Field Programmable Logic and Applications (FPL).Google ScholarGoogle ScholarCross RefCross Ref
  8. Q. Zhao et al. 2018. Enabling FPGA-as-a-service in the cloud with hCODE Platform. IEICE Transactions on Information and Systems (2018).Google ScholarGoogle Scholar
  9. F. Chen et al. 2014. Enabling FPGAs in the cloud. In ACM Conference on Computing Frontiers.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. A. Fahmy, K. Vipin, and S. Shreejith. 2015. Virtualized FPGA accelerators for efficient cloud computing. In International Conference on Cloud Computing Technology and Science (CloudCom).Google ScholarGoogle Scholar
  11. T. Feist. 2012. Vivado design suite. White Paper 5 (2012), 30.Google ScholarGoogle Scholar
  12. Google. 2019. gRPC Framework. https://grpc.io/ Accessed: 2019-12-19.Google ScholarGoogle Scholar
  13. H. Eran et al. 2019. NICA: An infrastructure for inline acceleration of network applications. In 2019 USENIX Annual Technical Conference (USENIX ATC 19).Google ScholarGoogle Scholar
  14. J. Weerasinghe et al. 2015. Enabling FPGAs in hyperscale data centers. In 12th International Conference on Ubiquitous Intelligence and Computing and 12th International Conference on Autonomic and Trusted Computing and 15th International Conference on Scalable Computing and Communications and Its Associated Workshops (UIC-ATC-ScalCom).Google ScholarGoogle Scholar
  15. J. Weerasinghe et al. 2016. Network-attached FPGAs for data center applications. In International Conference on Field-Programmable Technology (FPT).Google ScholarGoogle ScholarCross RefCross Ref
  16. K. D. Pham et al. 2018. ZUCL: A ZYNQ ultrascale+ framework for openCL HLS applications. In International Workshop on FPGAs for Software Programmers (FSP).Google ScholarGoogle Scholar
  17. K. Matas et al. 2020. Invited tutorial: FPGA hardware security for datacenters and beyond. In International Symposium on Field-Programmable Gate Arrays (FPGA).Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. L. Wirbel. 2014. Xilinx SDAccel: A Unified Development Environment for Tomorrow’s Data Center.The Linley Group, Inc. (2014).Google ScholarGoogle Scholar
  19. T. La et al. 2020. FPGADefender: Malicious self-oscillator scanning for Xilinx UltraScale+ FPGAs. ACM Transactions on Reconfigurable Technology and Systems (TRETS) (2020).Google ScholarGoogle Scholar
  20. M. Asiatici et al. 2017. Virtualized execution runtime for FPGA accelerators in the cloud. IEEE Access (2017).Google ScholarGoogle Scholar
  21. M. Happe et al. 2015. Preemptive hardware multitasking in reconos. In Applied Reconfigurable Computing.Google ScholarGoogle Scholar
  22. L. Ma, F. B. Muslim, and L. Lavagno. 2016. High performance and low power Monte Carlo methods to option pricing models via high level design and synthesis. In European Modelling Symposium (EMS). 157–162.Google ScholarGoogle Scholar
  23. K. Manev, A. Vaishnav, and D. Koch. 2019. Unexpected diversity: Quantitative memory analysis for Zynq UltaScale+ systems. In International Conference on Field-Programmable Technology (FPT).Google ScholarGoogle Scholar
  24. F. B. Muslim, L. Ma, M. Roozmeh, and L. Lavagno. 2017. Efficient FPGA implementation of OpenCL high-performance computing applications via high-level synthesis. IEEE Access 5 (2017), 2747–2762.Google ScholarGoogle ScholarCross RefCross Ref
  25. O. Knodel et al. 2017. Virtualizing reconfigurable hardware to provide scalability in cloud architectures. Reconfigurable Architectures, Tools and Applications (RECATA) 2 (2017).Google ScholarGoogle Scholar
  26. K. D. Pham, E. Horta, and D. Koch. 2017. BITMAN: A tool and API for FPGA bitstream manipulations. In Design, Automation Test in Europe Conference Exhibition (DATE).Google ScholarGoogle Scholar
  27. Q. Gautier et al. 2016. Spector: An OpenCL FPGA benchmark suite. In International Conference on Field-Programmable Technology (FPT).Google ScholarGoogle ScholarCross RefCross Ref
  28. S. Byma et al. 2014. FPGAs in the cloud: Booting virtualized hardware accelerators with openstack. In International Symposium on Field-Programmable Custom Computing Machines (FCCM).Google ScholarGoogle ScholarCross RefCross Ref
  29. Amazon Web Services. 2009. AWS EC2 FPGA Hardware and Software Development Kit. https://github.com/aws/aws-fpga Accessed: 2017-12-04.Google ScholarGoogle Scholar
  30. H. So and R. Brodersen. 2007. BORPH: An Operating System for FPGA-Based Reconfigurable Computers. Ph.D. Dissertation. EECS Department, University of California, Berkeley.Google ScholarGoogle Scholar
  31. T. Xia et al. 2016. Hypervisor mechanisms to manage FPGA reconfigurable accelerators. In International Conference on Field-Programmable Technology (FPT).Google ScholarGoogle ScholarCross RefCross Ref
  32. V. Kathail et al. 2016. SDSoC: A higher-level programming environment for Zynq SoC and UltaScale+ MPSoC. In International Symposium on Field-Programmable Gate Arrays (FPGA).Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. A. Vaishnav et al. 2018. A survey on FPGA virtualization. In International Conference on Field Programmable Logic and Applications (FPL).Google ScholarGoogle Scholar
  34. A. Vaishnav et al. 2018. Resource elastic virtualization for FPGAs using OpenCL. In International Conference on Field Programmable Logic and Applications (FPL).Google ScholarGoogle Scholar
  35. A. Vaishnav et al. 2019. Heterogeneous resource-elastic scheduling for CPU+FPGA architectures. In International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies (HEART).Google ScholarGoogle Scholar
  36. A. Vaishnav, K. D. Pham, K. Manev, and D. Koch. 2019. The FOS (FPGA operating system) Demo. In International Conference on Field Programmable Logic and Applications (FPL).Google ScholarGoogle Scholar
  37. M. Vesper. 2018. Dynamic Stream Processing Pipelines on FPGAs Examplified on the PostGreSQL DBMS. Ph.D. Dissertation. The University of Manchester.Google ScholarGoogle Scholar
  38. M. Vesper, D. Koch, and K. D. Pham. 2017. PCIeHLS: An OpenCL HLS framework. In International Workshop on FPGAs for Software Programmers (FSP).Google ScholarGoogle Scholar
  39. W. Peck et al. 2006. Hthreads: A computational model for reconfigurable devices. In International Conference on Field Programmable Logic and Applications (FPL).Google ScholarGoogle ScholarCross RefCross Ref
  40. W. Wang et al. 2013. pvFPGA: Accessing an FPGA-based hardware accelerator in a paravirtualized environment. In International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).Google ScholarGoogle ScholarCross RefCross Ref
  41. Xilinx. 2017. Reconfigurable Acceleration in the Cloud. https://www.xilinx.com/products/design-tools/cloud-based-acceleration.html#alibaba.Google ScholarGoogle Scholar
  42. Xilinx. 2019. Platform Overview — Xilinx Runtime 2019.1 documentation. https://xilinx.github.io/XRT/master/html/platforms.html.Google ScholarGoogle Scholar
  43. Xilinx. 2019. PYNQ. https://github.com/xilinx/pynq.Google ScholarGoogle Scholar
  44. Xilinx. 2019. UG1144 - PetaLinux Tools Documentation Reference Guide. https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug1144-petalinux-tools-reference-guide.pdf.Google ScholarGoogle Scholar
  45. Xilinx. 2019. UG909 - Vivado Design Suite User Guide: Partial Reconfiguration. https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug909-vivado-partial-reconfiguration.pdf.Google ScholarGoogle Scholar
  46. Xilinx. 2019. Xilinx SDAccel Examples. https://github.com/Xilinx/SDAccel_Examples/.Google ScholarGoogle Scholar
  47. Y. Zha and J. Li. 2020. Virtualizing FPGAs in the cloud. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).Google ScholarGoogle Scholar

Index Terms

  1. FOS: A Modular FPGA Operating System for Dynamic Workloads

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader

              HTML Format

              View this article in HTML Format .

              View HTML Format
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!