skip to main content
research-article

BlastFunction: A Full-stack Framework Bringing FPGA Hardware Acceleration to Cloud-native Applications

Published:11 January 2022Publication History
Skip Abstract Section

Abstract

“Cloud-native” is the umbrella adjective describing the standard approach for developing applications that exploit cloud infrastructures’ scalability and elasticity at their best. As the application complexity and user-bases grow, designing for performance becomes a first-class engineering concern. As an answer to these needs, heterogeneous computing platforms gained widespread attention as powerful tools to continue meeting SLAs for compute-intensive cloud-native workloads. We propose BlastFunction, an FPGA-as-a-Service full-stack framework to ease FPGAs’ adoption for cloud-native workloads, integrating with the vast spectrum of fundamental cloud models. At the IaaS level, BlastFunction time-shares FPGA-based accelerators to provide multi-tenant access to accelerated resources without any code rewriting. At the PaaS level, BlastFunction accelerates functionalities leveraging the serverless model and scales functions proactively, depending on the workload’s performance. Further lowering the FPGAs’ adoption barrier, an accelerators’ registry hosts accelerated functions ready to be used within cloud-native applications, bringing the simplicity of a SaaS-like approach to the developers. After an extensive experimental campaign against state-of-the-art cloud scenarios, we show how BlastFunction leads to higher performance metrics (utilization and throughput) against native execution, with minimal latency and overhead differences. Moreover, the scaling scheme we propose outperforms the main serverless autoscaling algorithms in workload performance and scaling operation amount.

REFERENCES

  1. [1] Al-Dhuraibi Yahya, Paraiso Fawaz, Djarallah Nabil, and Merle Philippe. 2017. Elasticity in cloud computing: State of the art and research challenges. IEEE Transactions on Services Computing 11, 2 (2017), 430447.Google ScholarGoogle ScholarCross RefCross Ref
  2. [2] Inc. Amazon Web Services,2019. Amazon EC2 F1 instances. (2019). Retrieved 2019-06-12 from https://aws.amazon.com/ec2/instance-types/f1/.Google ScholarGoogle Scholar
  3. [3] Arabnejad H., Pahl C., Jamshidi P., and Estrada G.. 2017. A comparison of reinforcement learning techniques for fuzzy cloud auto-scaling. In 2017 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID). 6473. https://doi.org/10.1109/CCGRID.2017.15 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. [4] Asano Shuichi, Maruyama Tsutomu, and Yamaguchi Yoshiki. 2009. Performance comparison of FPGA, GPU, and CPU in image processing. In 2009 International Conference on Field Programmable logic and applications. IEEE, 126131.Google ScholarGoogle ScholarCross RefCross Ref
  5. [5] Asiatici Mikhail, George Nithin, Vipin Kizheppatt, Fahmy Suhaib A., and Ienne Paolo. 2017. Virtualized execution runtime for FPGA accelerators in the cloud. IEEE Access (2017). https://doi.org/10.1109/ACCESS.2017.2661582Google ScholarGoogle ScholarCross RefCross Ref
  6. [6] Burns Brendan, Grant Brian, Oppenheimer David, Brewer Eric, and Wilkes John. 2016. Borg, Omega, and Kubernetes. Queue 14, 1 (2016), 7093. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. [7] Byma Stuart, Steffan J. Gregory, Bannazadeh Hadi, Leon-Garcia Alberto, and Chow Paul. 2014. FPGAs in the cloud: Booting virtualized hardware accelerators with OpenStack. In Proceedings of the 2014 IEEE 22nd International Symposium on Field-Programmable Custom Computing Machines, (FCCM’14) (2014), 109116. https://doi.org/10.1109/FCCM.2014.42 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Caulfield Adrian M., Chung Eric S., Putnam Andrew, Angepat Hari, Fowers Jeremy, Haselman Michael, Heil Stephen, Humphrey Matt, Kaur Puneet, Kim Joo-Young, et al. 2016. A cloud-scale acceleration architecture. In the 49th Annual IEEE/ACM International Symposium on Microarchitecture. IEEE Press, 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. [9] Chung Eric, Fowers Jeremy, Ovtcharov Kalin, Papamichael Michael, Caulfield Adrian, Massengill Todd, Liu Ming, Lo Daniel, Alkalay Shlomi, Haselman Michael, Abeydeera Maleen, Adams Logan, Angepat Hari, Boehn Christian, Chiou Derek, Firestein Oren, Forin Alessandro, Gatlin Kang Su, Ghandi Mahdi, Heil Stephen, Holohan Kyle, Husseini Ahmad El, Juhasz Tamas, Kagi Kara, Kovvuri Ratna K., Lanka Sitaram, Megen Friedel van, Mukhortov Dima, Patel Prerak, Perez Brandon, Rapsang Amanda, Reinhardt Steven, Rouhani Bita, Sapek Adam, Seera Raja, Shekar Sangeetha, Sridharan Balaji, Weisz Gabriel, Woods Lisa, Xiao Phillip Yi, Zhang Dan, Zhao Ritchie and Burger Doug. 2018. Serving DNNs in real time at datacenter scale with project brainwave. IEEE Micro 38, 2 (2018), 820. https://doi.org/10.1109/MM.2018.022071131Google ScholarGoogle ScholarCross RefCross Ref
  10. [10] Inc. Docker2019. Docker containers. (2019). Retrieved 2019-02-28 from https://www.docker.com.Google ScholarGoogle Scholar
  11. [11] Egorov Maxim, Sunberg Zachary N., Balaban Edward, Wheeler Tim A., Gupta Jayesh K., and Kochenderfer Mykel J.. 2017. POMDPs.jl: A framework for sequential decision making under uncertainty. Journal of Machine Learning Research 18, 26 (2017), 15. http://jmlr.org/papers/v18/16-300.html. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. [12] Contributors Fission Project. 2020. Fission. (2020). Retrieved 2020-11-11 from https://fission.io.Google ScholarGoogle Scholar
  13. [13] Galante Guilherme and Bona Luis Carlos E. de. 2012. A survey on cloud computing elasticity. In 2012 IEEE Fifth International Conference on Utility and Cloud Computing. IEEE, 263270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Gautier Quentin, Althoff Alrie, Meng Pingfan, and Kastner Ryan. 2017. SPECTOR: An OpenCL FPGA benchmark suite. In 2016 International Conference on Field-Programmable Technology (FPT’16) (2017), 141148. https://doi.org/10.1109/FPT.2016.7929519Google ScholarGoogle Scholar
  15. [15] Hennessy John L. and Patterson David A.. 2018. John Hennessy and David Patterson 2017 ACM A.M. Turing Award Lecture. (4 6 2018). Retrieved 2021-01-11 from https://www.youtube.com/watch?v=3LVeEjsn8Ts&t=1h15m.Google ScholarGoogle Scholar
  16. [16] Horovitz S. and Arian Y.. 2018. Efficient cloud auto-scaling with SLA objective using q-learning. In 2018 IEEE 6th International Conference on Future Internet of Things and Cloud (FiCloud). 8592. https://doi.org/10.1109/FiCloud.2018.00020Google ScholarGoogle ScholarCross RefCross Ref
  17. [17] Iordache Anca, Pierre Guillaume, Sanders Peter, Coutinho Jose Gabriel de F., and Stillwell Mark. 2016. High performance in the cloud with FPGA groups. In the 9th International Conference on Utility and Cloud Computing. ACM, 110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Jonas Eric, Schleier-Smith Johann, Sreekanti Vikram, Tsai Chia-Che, Khandelwal Anurag, Pu Qifan, Shankar Vaishaal, Carreira Joao, Krauth Karl, Yadwadkar Neeraja, Gonzalez Joseph E., Popa Raluca Ada, Stoica Ion, and Patterson David A.. 2019. Cloud Programming Simplified: A Berkeley View on Serverless Computing. arXiv:1902.03383 [cs.OS].Google ScholarGoogle Scholar
  19. [19] contributors JuliaLang.org. 2020. Julia. (2020). Retrieved 2020-11-01 from https://julialang.org/.Google ScholarGoogle Scholar
  20. [20] Khawaja Ahmed, Landgraf Joshua, Prakash Rohith, Wei Michael, Schkufza Eric, and Rossbach Christopher J.. 2018. Sharing, protection, and compatibility for reconfigurable fabric with amorphos. In 13th \(\lbrace\)USENIX\(\rbrace\) Symposium on Operating Systems Design and Implementation (\(\lbrace\)OSDI\(\rbrace\) 18). 107127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. [21] Koromilas Elias, Kachris Christoforos, Soudris Dimitrios, Ballesteros Francisco J., Martinez Patricio, and Jimenez-Peris Ricardo. 2019. Modular FPGA acceleration of data analytics in heterogenous computing. In 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE). IEEE, 626629.Google ScholarGoogle ScholarCross RefCross Ref
  22. [22] Kubeless. 2020. Kubeless. (2020). Retrieved 2020-11-11 from https://kubeless.io.Google ScholarGoogle Scholar
  23. [23] Littman Michael L., Cassandra Anthony R., and Kaelbling Leslie Pack. 1995. Learning policies for partially observable environments: Scaling up. In 12th International Conference on Machine Learning. Morgan-Kaufmann, 362370. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. [24] Markakis Evangelos, Nikoloudakis Yannis, Mastorakis George, Mavromoustakis Constandinos X., Pallis Evangelos, Sideris Anargyros, Zotos Nikolaos, Antic Jan, Cernivec Ales, Fejzic Diana, Kulovic Joze, Jara Antonio, Drosou Anastasios, Giannoutakis Konstantinos, and Tzovaras Dimitrios. 2019. Acceleration at the Edge for Supporting SMEs Security: The FORTIKA Paradigm. IEEE Communications Magazine 57, 2 (2019), 4147. https://doi.org/10.1109/MCOM.2019.1800506 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [25] Mavridis Stelios, Pavlidakis Manolis, Stamoulias Ioannis, Kozanitis Christos, Chrysos Nikolaos, Kachris Christoforos, Soudris Dimitrios, and Bilas Angelos. 2017. VineTalk: Simplifying software access and sharing of FPGAs in datacenters. In 2017 27th International Conference on Field Programmable Logic and Applications (FPL’17) (2017), 25. https://doi.org/10.23919/FPL.2017.8056788Google ScholarGoogle Scholar
  26. [26] Mell Peter and Grance Tim. 2011. The NIST definition of cloud computing. Technical Report NIST Special Publication (SP). 800–145. National Institute of Standards and Technology, Gaithersburg, MD. https://doi.org/10.6028/NIST.SP.800-53r4 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Ojika S., Gordon-Ross A., Lam H., Patel B., Kaul G., and Strayer J.. 2018. Using FPGAs as microservices: Technology, challenges and case study. In 9th Workshop on Big Data Benchmarks Performance, Optimization and Emerging Hardware (BPOE-9).Google ScholarGoogle Scholar
  28. [28] Author(s) OpenFaaS. 2020. OpenFaaS autoscaler. (2020). Retrieved 2020-10-26 from https://docs.openfaas.com/architecture/autoscaling/.Google ScholarGoogle Scholar
  29. [29] Ltd. OpenFaaS2019. OpenFaaS serverless framework. (2019). Retrieved 2019-06-12 from https://www.openfaas.com/.Google ScholarGoogle Scholar
  30. [30] Orellana Julio Proaño, Caminero Blanca, Carrión Carmen, Tomas Luis, Tesfatsion Selome Kostentinos, and Tordsson Johan. 2016. FPGA-Aware scheduling strategies at hypervisor level in cloud environments. Scientific Programming 2016, 1 (2016). https://doi.org/10.1155/2016/4670271 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. [31] Papaphilippou Philippos and Luk Wayne. 2018. Accelerating database systems using FPGAs: A survey. In 2018 28th International Conference on Field Programmable Logic and Applications (FPL). IEEE, 1251255.Google ScholarGoogle ScholarCross RefCross Ref
  32. [32] Authors Prometheus. 2019. Prometheus monitoring system. (2019). Retrieved 2019-05-20 from https://prometheus.io/.Google ScholarGoogle Scholar
  33. [33] Putnam Andrew, Caulfield Adrian M., Chung Eric S., Chiou Derek, Constantinides Kypros, Demme John, Esmaeilzadeh Hadi, Fowers Jeremy, Prashanth Gopal Gopi, Gray Jan, Haselman Michael, Hauck Scott, Heil Stephen, Hormati Amir, Kim Joo-Young, Lanka Sitaram, Larus James, Peterson Eric, Pope Simon, Smith Aaron, Thong Jason, Xiao Phillip Yi, and Burger Doug. 2014. A reconfigurable fabric for accelerating large-scale datacenter services. 1324. https://doi.org/10.1109/ISCA.2014.6853195Google ScholarGoogle Scholar
  34. [34] Rossi F., Nardelli M., and Cardellini V.. 2019. Horizontal and vertical scaling of container-based applications using reinforcement learning. In 2019 IEEE 12th International Conference on Cloud Computing (CLOUD). 329338. https://doi.org/10.1109/CLOUD.2019.00061Google ScholarGoogle ScholarCross RefCross Ref
  35. [35] Stefani Mathieu. 2019. Pistache C++ REST Framework. (2019). Retrieved 2019-06-26 from http://pistache.io/.Google ScholarGoogle Scholar
  36. [36] Tesauro G., Jong N. K., Das R., and Bennani M. N.. 2006. A hybrid reinforcement learning approach to autonomic resource allocation. In 2006 IEEE International Conference on Autonomic Computing. 6573. https://doi.org/10.1109/ICAC.2006.1662383 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. [37] Tesfatsion Selome Kostentions, Proaño Julio, Tomás Luis, Caminero Blanca, Carrión Carmen, and Tordsson Johan. 2018. Power and performance optimization in FPGA-accelerated clouds. Concurrency Computation 30, 18 (Sept. 2018). https://doi.org/10.1002/cpe.4526Google ScholarGoogle ScholarCross RefCross Ref
  38. [38] Authors The Knative. 2020. Knative. (2020). Retrieved 2020-11-11 from https://knative.dev.Google ScholarGoogle Scholar
  39. [39] Authors The Kubernetes. 2020. Kubernetes autoscaler. (2020). Retrieved 2020-10-26 from https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/.Google ScholarGoogle Scholar
  40. [40] Authors The Kubernetes. 2020. Pods | Kubernetes. (2020). Retrieved 2021-01-07 from https://kubernetes.io/docs/concepts/workloads/pods/.Google ScholarGoogle Scholar
  41. [41] Turan Furkan and Verbauwhede Ingrid. 2020. Proxy Re-Encryption for Accelerator Confidentiality in FPGA-Accelerated Cloud. Technical Report. Cryptology ePrint Archive, Report 2020/805. Retrieved from https://eprint....Google ScholarGoogle Scholar
  42. [42] Turan Furkan and Verbauwhede Ingrid. 2020. Proxy Re-Encryption for Accelerator Confidentiality in FPGA-Accelerated Cloud. Cryptology ePrint Archive. Report 2020/805. https://ia.cr/2020/805.Google ScholarGoogle Scholar
  43. [43] Vaishnav Anuj, Pham Khoa Dang, and Koch Dirk. 2018. A survey on FPGA virtualization. In the 2018 International Conference on Field-Programmable Logic and Applications (FPL’18) (2018), 131138. https://doi.org/10.1109/FPL.2018.00031Google ScholarGoogle Scholar
  44. [44] Wang Dong, Xu Ke, and Jiang Diankun. 2017. PipeCNN: An OpenCL-based open-source FPGA accelerator for convolution neural networks. In 2017 International Conference on Field Programmable Technology (ICFPT). IEEE, 279282.Google ScholarGoogle ScholarCross RefCross Ref
  45. [45] Wang Wei, Bolic Miodrag, and Parri Jonathan. 2013. PvFPGA: Accessing an FPGA-based hardware accelerator in a paravirtualized environment. In 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS’13) (2013). https://doi.org/10.1109/CODES-ISSS.2013.6658997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. [46] Weerasinghe Jagath, Abel Francois, Hagleitner Christoph, and Herkersdorf Andreas. 2016. Enabling FPGAs in hyperscale data centers. In 2015 IEEE 12th International Conference on Ubiquitous Intelligence and Computing, 2015 IEEE 12th International Conference on Advanced and Trusted Computing, 2015 IEEE 15th International Conference on Scalable Computing and Communications, 20 (2016), 10781086. https://doi.org/10.1109/UIC-ATC-ScalCom-CBDCom-IoP.2015.199Google ScholarGoogle Scholar
  47. [47] Wei Xuechao, Yu Cody Hao, Zhang Peng, Chen Youxiang, Wang Yuxin, Hu Han, Liang Yun, and Cong Jason. 2017. Automated systolic array architecture synthesis for high throughput CNN inference on FPGAs. In Proceedings of the 54th Annual Design Automation Conference 2017. ACM, 29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. [48] Zhao Qian, Amagasaki Motoki, Iida Masahiro, Kuga Morihiro, and Sueyoshi Toshinori. 2018. Enabling FPGA-as-a-service in the cloud with hCODE platform. IEICE Transactions on Information and Systems E101D, 2 (2018), 335343. https://doi.org/10.1587/transinf.2017RCP0004Google ScholarGoogle ScholarCross RefCross Ref
  49. [49] Zhao Yangming, Tian Chen, Zhu Zhuangdi, Cheng Jie, Qiao Chunming, and Liu Alex X.. 2018. Minimize the make-span of batched requests for FPGA pooling in cloud computing. IEEE Transactions on Parallel and Distributed Systems 29, 11 (2018), 25142527. https://doi.org/10.1109/TPDS.2018.2829860Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. [50] Zhu Zhuangdi, Liu Alex X., Zhang Fan, and Chen Fei. 2021. FPGA resource pooling in cloud computing. IEEE Transactions on Cloud Computing 9, 2 (2021), 610626. https://doi.org/10.1109/TCC.2018.2874011Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. BlastFunction: A Full-stack Framework Bringing FPGA Hardware Acceleration to Cloud-native Applications

        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

        • Published in

          cover image ACM Transactions on Reconfigurable Technology and Systems
          ACM Transactions on Reconfigurable Technology and Systems  Volume 15, Issue 2
          June 2022
          310 pages
          ISSN:1936-7406
          EISSN:1936-7414
          DOI:10.1145/3501287
          • Editor:
          • Deming Chen
          Issue’s Table of Contents

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 11 January 2022
          • Accepted: 1 June 2021
          • Revised: 1 May 2021
          • Received: 1 January 2021
          Published in trets Volume 15, Issue 2

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Full Text

        View this article in Full Text.

        View Full Text

        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!