<div class='slidealt'>Experience kvm <a title='virtualization for embedded heterogeneous arm core platforms' href='/en/products'>virtualization extensions</a></div> <div class='slidealt'>Benefit from custom <a title='kvm on arm services full virtualization' href='/en/services'>virtualization services</a></div> <div class='slidealt'>KVM on ARMv7 and ARMv8 <a title='kvm-on-arm open source smu extensions' href='/en/solutions/guides/vfio-on-arm/'>IOMMU full virtualization</a></div> <div class='slidealt'>Virtualization research projects <a title='ARM multicore kvm open source' href='/en/research'>in cloud and embedded systems</a></div> <div class='slidealt'>Virtualization solutions for heterogeneous <a title='ARMv7-ARMv8 virtualization open source solutions' href='/en/solutions'>ARM multicore systems</a></div>

A Use Case of vFPGAmanager Framework in Video Streaming Scenarios with Shared Accelerators

Overcommitment and Orchestration of FPGA Accelerators shared by Different Virtual Machines

Virtual Open Systems company logo

This demo showcases how different virtual machines can benefit from sharing hardware accelerators through the vFPGAmanager framework, designed by Virtual Open Systems. This framework provides flexible and efficient FPGA acceleration for different virtualization solutions such as virtual machines, containers and unikernels.

More in detail, vFPGAmanager is a software-hardware framework that enables accelerator mapping and remapping to guest applications through exposed acceleration control APIs. Furthermore, the orchestration of the FPGA hardware resources allows accelerator overcommitment for more than one application to the same accelerator through context switching. Fields of application for the vFPGAmanager include stb streaming servers, big data analytic, high performance computing (HPC), network function virtualization (NFV), internet of things (IoT), Industrial and smart building, automotive and autonomous driving.

vFPGAmanager video streaming platform architecture

vFPGAmanager framework applied to a video streaming scenario

The showcased demonstration consists of a server machine whose host OS supports two different virtual machines (VM); within each VM a different video streaming is executed. To the server machine is attached an FPGA through PCI Express; within the FPGA accelerators are implemented and controlled through the vFPGAmanager framework, which also executes in the FPGA. The virtual machines have direct access to the FPGA resources with the aid of single root input-output virtualization (SR-IOV).

The video streams from the VMs can access and share the accelerators under full control of the vFPGAmanager framework. Indeed, the vFPGAmanager can instruct different kind of processing for each virtual machine using different types of contexts stored in its memory. Each applied context is controlled from the guest application; the hardware resources are selected through a web interface, attached to a control and monitoring firmware that allows the dynamic changes to take place.

In this video demonstration we showcase the following vFPGAmanager features:

  • Dynamic accelerator mapping and remapping to guest applications to respond to ever-changing guest application acceleration requests
  • Hardware accelerator sharing to different guest applications using a time-sharing scheduler, thus simplifying FPGA hardware usage
  • Accelerator high flexibility thanks to the context switching mechanism, which allows for different kind of processing to different guest applications
Virtualization Of Fpga Accelerators With Dynamic Mapping & Context Processing Control vFPGAmanager framework to share FPGA accelerators with overcommitment and orchestration in a video streaming scenario