Consumer GPU Virtualization

LibVF.IO, an open-source commodity GPU multiplexing tool driven by VFIO & YAML, enables users to create GPU-accelerated virtual machines that utilize a multiplexed piece of their own internal graphics cards, eliminating the need for a secondary discrete GPU.

Installation Guide

You'll Never Dual-Boot Again

If you want to run an operating system other than Windows and wish to continue using Windows programs, you're unlikely to have a seamless experience. 

Tools like WINE and Valve's Proton + DXVK have provided a mechanism for Windows applications to run in macOS and Linux environments. As the title suggests, WINE (Wine Is Not Emulation) is not an emulator. It provides an environment that approximates the Windows ABI (Application Binary Interface) to support Win32/Win64 applications in unsupported environments. 

This approach has seen prolonged adoption by Linux desktop users and has gained traction with the incorporation of official support in Valve's Steam game distribution platform. Despite the vast energies of the WINE community across decades of work, Microsoft still manages to introduce breaking changes to its libraries and APIs often incorporated in newly released games, causing degraded application performance under WINE or entirely broken compatibility.

LibVF.IO addresses these problems by running authentic Windows in a virtual machine with native GPU performance. We achieve this by running an unmodified guest GPU driver with native hardware interfaces, ensuring that changes to Windows will not break or otherwise degrade compatibility with programs running under a compatibility layer such as WINE or Proton.

LibVF.IO is part of an ongoing effort to remedy architectural problems in operating systems, as detailed in a post you can read here. We attempt to create a simplified mechanism with perfect forward compatibility and full performance for users to interact with binaries whose ABI (Application Binary Interface) is foreign to the host environment while retaining performance.

3D GPU graphic

What are some of the current problems with VFIO on commodity GPU hardware?

Most VFIO functionality running on commodity GPU hardware involves a full passthrough of a discrete physical GPU to a single virtual machine. This approach has proven helpful for enthusiasts to run GPU-accelerated virtual machines at home but with the prominent asterisk attached that both the host system and the guest virtual machine require discrete physical GPUs to work. For this setup to work, users must own two discrete physical GPUs installed in the same system. This requirement doesn’t reflect the hardware most computer users own.

What problems does LibVF.IO solve?

LibVF.IO automates the creation and management of mediated devices (partitioned commodity GPUs shared by host & guest), identifying NUMA nodes, parsing/managing IOMMU devices, and allocating virtual functions to virtual machines, making your life a lot easier!