Virtualized Execution Runtime for FPGA Accelerators in the Cloud

Mikhail Asiatici, Nithin George, Kizheppatt Vipin, Suhaib A. Fahmy, Paolo Ienne

Research output: Contribution to journalArticle

Abstract

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.
Original languageEnglish
Pages (from-to)1900-1910
Number of pages11
JournalIEEE Access
Volume5
DOIs
Publication statusPublished - 2017

Fingerprint

Particle accelerators
Field programmable gate arrays (FPGA)
Data storage equipment
Computer operating systems
Application programming interfaces (API)
Ecosystems
Computer hardware
Energy efficiency
Computer systems
Throughput

Keywords

  • Field programmable gate arrays
  • platform virtualization
  • reconfigurable architectures
  • runtime environment

Cite this

Virtualized Execution Runtime for FPGA Accelerators in the Cloud. / Asiatici, Mikhail; George, Nithin; Vipin, Kizheppatt; Fahmy, Suhaib A.; Ienne, Paolo.

In: IEEE Access, Vol. 5, 2017, p. 1900-1910.

Research output: Contribution to journalArticle

Asiatici, Mikhail ; George, Nithin ; Vipin, Kizheppatt ; Fahmy, Suhaib A. ; Ienne, Paolo. / Virtualized Execution Runtime for FPGA Accelerators in the Cloud. In: IEEE Access. 2017 ; Vol. 5. pp. 1900-1910.
@article{5acb685273934a4db6879de8ec08b948,
title = "Virtualized Execution Runtime for FPGA Accelerators in the Cloud",
abstract = "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.",
keywords = "Field programmable gate arrays, platform virtualization, reconfigurable architectures, runtime environment",
author = "Mikhail Asiatici and Nithin George and Kizheppatt Vipin and Fahmy, {Suhaib A.} and Paolo Ienne",
year = "2017",
doi = "10.1109/ACCESS.2017.2661582",
language = "English",
volume = "5",
pages = "1900--1910",
journal = "IEEE Access",
issn = "2169-3536",
publisher = "Institute of Electrical and Electronics Engineers Inc.",

}

TY - JOUR

T1 - Virtualized Execution Runtime for FPGA Accelerators in the Cloud

AU - Asiatici, Mikhail

AU - George, Nithin

AU - Vipin, Kizheppatt

AU - Fahmy, Suhaib A.

AU - Ienne, Paolo

PY - 2017

Y1 - 2017

N2 - 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.

AB - 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.

KW - Field programmable gate arrays

KW - platform virtualization

KW - reconfigurable architectures

KW - runtime environment

U2 - 10.1109/ACCESS.2017.2661582

DO - 10.1109/ACCESS.2017.2661582

M3 - Article

VL - 5

SP - 1900

EP - 1910

JO - IEEE Access

JF - IEEE Access

SN - 2169-3536

ER -