GPU Virtual Machine (GVM)

Introduction

The GVM project is a GPU Virtual Machine for IOMMU-capable computers such as x86 and ARM.

GVM is management layer agnostic (Libvirt, LibVF.IO, Virsh, Virt-Manager) and may be used in combination with KVM or other platform hypervisors such as Xen* to provide a complete virtualization solution via both central processing (CPU) and graphics processing (GPU) hardware acceleration. Depending on the GVM release used it's components include kernel modules, userspace libraries, cli tools, and daemons.

As of the first release (July 6th 2022) the Mdev-GPU component is made publicly available as GPLv2.

Mdev-GPU 0.1.0.0 includes the following:

Current Release Functions

A diagram and text description of current Mdev-GPU functions can be found here.

GVM's userland functions interact primarily with the Mediated Core via the mediated bus driver (for creating mediated devices), physical device interface (for vendor callbaks), and resource allocation internal to the GPU driver.

At present the following features are supported:

Planned Release Functions

Future releases may include:

Documentation

Documentation on the Mdev-GPU API can be found here.

Module docs for Mdev-GPU can be found here.

Formal verification (TLA+) for OpenRM driver interactions can be found here.

Source Code

Source code for mdev-gpu can be found on GitHub & a pre-built binary can be found under releases on the same page.

Installation

This section will be expanded following July 6th 2022 (the date of launch).

Community

Discord: https://discord.gg/Rb9K9DYxKK

IRC: #gvm & #gvm-devel on oftc.net