GVM User Suite
User tools for the GVM open source project.
|
This page makes use of terminology from the Open-IOV Glossary. If you're unsure what a specific term means you can read this for more context.
GVM is a GPU Virtual Machine for IOMMU-capable computers such as x86 and ARM.
GVM-user is the latest release made public under the GVM Project developed by the Open-IOV Open-Source software community.
GVM-user tools are designed to create and manage mediated Virtual GPUs as well as provide control of the mediated device to a VM running under a GVM-compatible platform hypervisor such as KVM or Xen*.
This software is based on the C programming language and is released with Long Term Support under the GPLv2 License.
Ongoing development occurs through collaboration by members of the Open-IOV Community.
If you would like to contribute to GPU Virtual Machine development you can participate by submitting pull requests on GitHub to help us reach our GVM Development Targets and participate in related Communities & Mailing Lists such as the Open-IOV Community Discord.
If you would like to help suggest GVM Development Targets you can join the #Community-Call Room to stay informed about when community meetings will occur.
Open source code for GVM-user can be found on GitHub.
GVM's coding standards are the same as those in the Linux Kernel.
You can read relevant documentation about how software contributions to GVM should be structured from this page on kernel.org.
All functions of the program must be documented using the Doxygen tool.
Appropriate descriptions, import graphs, parameters, returns, restrictions, lists of side effects, and lists of possible failures are required for each function of the program (example).
To see a full list of supported microarchitectures you can read the GPU Support Feature Matrix on Open-IOV.
Expanding device support through additional vendors and architectures should be accomplished in several steps.
These steps are as follows:
Thorough documentation of functions related to I/O Mediation in a vendor driver-specific GVM Integration Document.
Formal verification (TLA+) of GVM interactions with driver logic.
GVM-driver integration via common types (C example) and vendor driver-specific modules (vendor driver directory).
Unit testing and validation.
Deployment of support in packaged GVM utilities.
Support for Intel GPUs.
Support for TensTorrent TPUs.
Support for AMD GPUs.