Virtualized Execution Runtime for FPGA Accelerators in the Cloud

FPGAs offer high performance coupled with energy efficiency, making them extremely attractive computational resources within a cloud ecosystem. However, to achieve this integration and make them easy to program, we first need to enable users with varying expertise to easily develop cloud application...

Full description

Bibliographic Details
Main Authors: Mikhail Asiatici, Nithin George, Kizheppatt Vipin, Suhaib A. Fahmy, Paolo Ienne
Format: Article
Language:English
Published: IEEE 2017-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/7840018/
id doaj-6f0df14bd0b84c43ab8c5d157d2ae823
record_format Article
spelling doaj-6f0df14bd0b84c43ab8c5d157d2ae8232021-03-29T19:59:49ZengIEEEIEEE Access2169-35362017-01-0151900191010.1109/ACCESS.2017.26615827840018Virtualized Execution Runtime for FPGA Accelerators in the CloudMikhail Asiatici0https://orcid.org/0000-0002-8050-0042Nithin George1Kizheppatt Vipin2Suhaib A. Fahmy3https://orcid.org/0000-0003-0568-5048Paolo Ienne4School of Computer and Communication Sciences, Ecole Polytechnique Fédérale de Lausanne (EPFL), Lausanne, SwitzerlandSchool of Computer and Communication Sciences, Ecole Polytechnique Fédérale de Lausanne (EPFL), Lausanne, SwitzerlandSchool of Engineering Sciences, Mahindra École Centrale, Hyderabad, IndiaSchool of Engineering, University of Warwick, Coventry, U.K.School of Computer and Communication Sciences, Ecole Polytechnique Fédérale de Lausanne (EPFL), Lausanne, SwitzerlandFPGAs offer high performance coupled with energy efficiency, making them extremely attractive computational resources within a cloud ecosystem. However, to achieve this integration and make them easy to program, we first need to enable users with varying expertise to easily develop cloud applications that leverage FPGAs. With the growing size of FPGAs, allocating them monolithically to users can be wasteful due to potentially low device utilization. Hence, we also need to be able to dynamically share FPGAs among multiple users. To address these concerns, we propose a methodology and a runtime system that together simplify the FPGA application development process by providing: 1) a clean abstraction with high-level APIs for easy application development; 2) a simple execution model that supports both hardware and software execution; and 3) a shared memory-model which is convenient to use for the programmers. Akin to an operating system on a computer, our lightweight runtime system enables the simultaneous execution of multiple applications by virtualizing computational resources, i.e., FPGA resources and on-board memory, and offers protection facilities to isolate applications from each other. In this paper, we illustrate how these features can be developed in a lightweight manner and quantitatively evaluate the performance overhead they introduce on a small set of applications running on our proof of concept prototype. Our results demonstrate that these features only introduce marginal performance overheads. More importantly, by sharing resources for simultaneous execution of multiple user applications, our platform improves FPGA utilization and delivers higher aggregate throughput compared to accessing the device in a time-shared manner.https://ieeexplore.ieee.org/document/7840018/Field programmable gate arraysplatform virtualizationruntime environmentreconfigurable architectures
collection DOAJ
language English
format Article
sources DOAJ
author Mikhail Asiatici
Nithin George
Kizheppatt Vipin
Suhaib A. Fahmy
Paolo Ienne
spellingShingle Mikhail Asiatici
Nithin George
Kizheppatt Vipin
Suhaib A. Fahmy
Paolo Ienne
Virtualized Execution Runtime for FPGA Accelerators in the Cloud
IEEE Access
Field programmable gate arrays
platform virtualization
runtime environment
reconfigurable architectures
author_facet Mikhail Asiatici
Nithin George
Kizheppatt Vipin
Suhaib A. Fahmy
Paolo Ienne
author_sort Mikhail Asiatici
title Virtualized Execution Runtime for FPGA Accelerators in the Cloud
title_short Virtualized Execution Runtime for FPGA Accelerators in the Cloud
title_full Virtualized Execution Runtime for FPGA Accelerators in the Cloud
title_fullStr Virtualized Execution Runtime for FPGA Accelerators in the Cloud
title_full_unstemmed Virtualized Execution Runtime for FPGA Accelerators in the Cloud
title_sort virtualized execution runtime for fpga accelerators in the cloud
publisher IEEE
series IEEE Access
issn 2169-3536
publishDate 2017-01-01
description FPGAs offer high performance coupled with energy efficiency, making them extremely attractive computational resources within a cloud ecosystem. However, to achieve this integration and make them easy to program, we first need to enable users with varying expertise to easily develop cloud applications that leverage FPGAs. With the growing size of FPGAs, allocating them monolithically to users can be wasteful due to potentially low device utilization. Hence, we also need to be able to dynamically share FPGAs among multiple users. To address these concerns, we propose a methodology and a runtime system that together simplify the FPGA application development process by providing: 1) a clean abstraction with high-level APIs for easy application development; 2) a simple execution model that supports both hardware and software execution; and 3) a shared memory-model which is convenient to use for the programmers. Akin to an operating system on a computer, our lightweight runtime system enables the simultaneous execution of multiple applications by virtualizing computational resources, i.e., FPGA resources and on-board memory, and offers protection facilities to isolate applications from each other. In this paper, we illustrate how these features can be developed in a lightweight manner and quantitatively evaluate the performance overhead they introduce on a small set of applications running on our proof of concept prototype. Our results demonstrate that these features only introduce marginal performance overheads. More importantly, by sharing resources for simultaneous execution of multiple user applications, our platform improves FPGA utilization and delivers higher aggregate throughput compared to accessing the device in a time-shared manner.
topic Field programmable gate arrays
platform virtualization
runtime environment
reconfigurable architectures
url https://ieeexplore.ieee.org/document/7840018/
work_keys_str_mv AT mikhailasiatici virtualizedexecutionruntimeforfpgaacceleratorsinthecloud
AT nithingeorge virtualizedexecutionruntimeforfpgaacceleratorsinthecloud
AT kizheppattvipin virtualizedexecutionruntimeforfpgaacceleratorsinthecloud
AT suhaibafahmy virtualizedexecutionruntimeforfpgaacceleratorsinthecloud
AT paoloienne virtualizedexecutionruntimeforfpgaacceleratorsinthecloud
_version_ 1724195521009025024