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

API Remoting turnkey solution for virtualizing hardware resources

api remoting is a zero copy virualization mechanism ensuring best performance for KVM ARM virtual machines

Modern heterogeneous embedded SoCs are designed to be power efficient and to provide optimal heat dissipation when compared to traditional off-the-shelf CPUs. Such platforms can integrate powerful multi-core programmable GPUs and accelerators, that can be exploited for highly parallel computing tasks, making them suitable for various systems in multiple market segments, from automotive to HPC, from networking and telecommunications to personal and residential gateways.

In this context, to achieve hardware consolidation, security isolation and higher flexibility of the overall system, virtualization plays a key role. Its adoption has been accelerated by the availability of hardware virtualization extensions in modern processors, capable of drastically reducing the overhead of executing a virtual environment. This is the case in latest ARM (e.g., armv7-a, armv8) processors, where virtualization is part of the core platform definition.

Differently from CPUs only few peripherals offer support for efficient virtualization at the hardware level (e.g., SR-IOV based network controllers). There is therefore a need to virtualize such peripherals in order to increase the adoption of heterogeneous SoCs across different domains. Of primary importance in heterogeneous systems are GPUs, extensively used for the execution of highly parallel computing workloads (e.g., HPC, networking) and graphics pipelines (e.g., automotive). However, GPUs integrated in heterogeneous SoCs not always offer hardware support for virtualization, making necessary the usage of an alternative software-based solution.

API Remoting for GPU enables OpenCL/OpenGL in VMs

Virtual Open Systems proposes a software solution for GPU virtualization, based on API Remoting, enabling GPU sharing among virtual machines through a programming API interface. User-space applications running on guest operating systems can leverage the GPU through its programming API (e.g., OpenCL, OpenGL) with no changes to the source code, and without the need for the hypervisor to provide a virtual GPU abstraction.

Each API call passes through the three layers of the API Remoting framework: front-end, transport and back-end. The front-end, installed in the guest OS, implements the API stubs that forward the calls using the transport layer. The back-end running on the host handles the call requests received over the transport and executes them on the GPU hardware using the actual API library. The transport layer is designed to minimize the communication overhead between back-end and front-end, and relies on a zero-copy memory sharing mechanism. Alternative implementations can exploit network sockets to enable GPU sharing among different physical server nodes.

Top level architecture for api remoting virtualization product based on zero copy mechanism

Top level architecture of the Virtual Open Systems API Remoting product offer

API Remoting can be beneficial for several application domains such as high performance computing (HPC), where virtualized applications can take advantage of the GPU to accelerate data processing; Network Functions Virtualization (NFV), where GPUs can be used to accelerate VNFs processing; API Remoting can be used also in a virtualized in-vehicle-infotainment (IVI) system to impress with rich graphics.