vFPGAmanager, the FPGA Framework to Deploy Accelerated Virtualization Environments
Modern System-on-Chip (SoC) integrated circuits are heterogeneous to increase the computing power behind CPU multi-cores; co-processing platforms becomes mandatory to provide the right level of performance required by applications in networking, automotive, Advanced Driver Assistance Systems (ADAS), Internet of Things (IoT), High Performance Computing (HPC), and more in general by Artificial Intelligence (AI). Heterogeneous SoCs combining multiple CPUs and GPUs provide part of the solution without satisfying all requirements. The advent of FPGA technology in modern SoC fills the gap thanks to a flexible architecture which can be reconfigured at runtime to serve complex and changing requirements and to provide solutions to specific algorithmic challenges.
With their performance and low power consumption, FPGAs are ideal candidates for embedded systems, automotive, cloud and networking, IoT, and more in general virtualized environments, where guests (virtual machines, containers, unikernels) can benefit from FPGA custom accelerators. However, the lack of virtualization support makes their deployment cumbersome in production, thus discouraging potential users.
vFPGAmanager to enable access to FPGA accelerators from virtual guests
vFPGAmanager is a Virtual Open Systems patented technology that strives to solve the aforementioned challenge. The vFPGAmanager product framework, consisting of hardware and software components, enables direct access of guests to the FPGA hardware accelerators, which can be shared and reconfigured at runtime to support various application needs. vFPGAmanager exposes APIs to allow a Virtualized Infrastructure Manager (VIM) to remotely monitor the FPGA current status and deploy a desired hardware component to accelerate applications in an orchestrated manner.
vFPGAmanager Functional Diagram
The main features of the vFPGAmanager are the following:
Guests and FPGA direct communication through IOMMU
Accelerator sharing between two or more guests
Support for VIM such as OpenStack
FPGA remote orchestration and resource monitoring
Runtime hardware accelerators reconfiguration