How it differs

The choice is what you share, which driver the guest runs, and what you give up.

How the options differ

VFIO passthrough

VFIO gives the whole card to one VM. While it runs, the host cannot use that card. Kayfabe leaves it with the host.

NVIDIA vGPU

NVIDIA vGPU shares a card between VMs. It needs a GPU on NVIDIA's supported list, plus vGPU software and a licence. Supported cards include workstation and data-centre models.

Open-IOV is a community project using stock NVIDIA guest drivers without a vGPU licence, with its own host module.

API forwarding

API forwarding leaves the card with the host. Examples include nvkvm-pv and virtio-nvgpu. They use custom guest drivers and support Linux guests. nvkvm-pv needs matching host and guest NVIDIA driver versions.

CUDA container

A CUDA container shares the host's NVIDIA driver and Linux kernel. Namespaces separate its processes; it has no VM boundary or separate guest kernel. Kayfabe adds a VM with its own operating system, including Windows.

gVisor with nvproxy is the sandboxed container variant; its guide says the GPU still relies on NVIDIA's driver for hardware isolation.

virtio-gpu

Venus and virgl provide a generic graphics path. The guest does not run NVIDIA's own driver. No speed or feature comparison with kayfabe is recorded.

kayfabe

The VM uses NVIDIA's own driver. The host keeps the card, with no vGPU licence server or driver patches. Kayfabe adds no host module of its own. It needs a QEMU build that includes its device. Host and guest drivers need not match: Windows 580.88 has run against host 595.91.07.

The launch scripts still use root; a run without sudo is recorded on one host.

How it is isolated

The VM reaches the GPU through the host's NVIDIA driver, as an ordinary program does. Kayfabe checks what the VM asks to map and run. The security model describes how the driver and GPU keep clients apart. It has not been audited.

Speed and security comparisons with other approaches are not measured yet.

What you need

A Linux x86-64 host with KVM, QEMU and an NVIDIA card from Turing on. The recorded runs use NVIDIA's open host driver. Only QEMU is supported today. The requirements list the cards and drivers that have been tried.

Licences and source

Kayfabe is dual-licensed Apache-2.0 OR GPL-2.0-or-later. It ships no NVIDIA or Microsoft files. NVIDIA's licence applies to the driver you install on the host and in the VM. Windows must be licensed for the way you use it. If you host VMs for others, you are responsible for those licences. The credits and notices have the full terms.

Back to kayfabe