Difference between revisions of "Main Page"

From Open-IOV
Jump to navigation Jump to search
m (Status table refresh 2026-10-20: guest CUDA kernel execution working)
m (2026-10-30 wiki refresh: goals, GSP, graphics, performance, interfaces)
Line 13: Line 13:


== Start here ==
== Start here ==
* '''[[Project Goals]]''' — what Open-IOV is for, and the status of each goal.
* '''[[Project Status]]''' — the honest, dated state of the project.
* '''[[Project Status]]''' — the honest, dated state of the project.
* '''[[Install and First Run]]''' — fresh host to a stock guest driver in about half an hour.
* '''[[Install and First Run]]''' — fresh host to a stock guest driver in about half an hour.
Line 19: Line 20:
* '''[[FAQ]]''' — the questions we get asked most.
* '''[[FAQ]]''' — the questions we get asked most.


== Project status (2026-10-20) ==
== Project status (2026-10-30) ==
{| class="wikitable"
{| class="wikitable"
! Area !! State
! Area !! State
Line 31: Line 32:
| CUDA userspace init and the driver-API smoke (ALL OK, 64-byte payload round-trips) || Working
| CUDA userspace init and the driver-API smoke (ALL OK, 64-byte payload round-trips) || Working
|-
|-
| Guest CUDA kernel execution on real hardware || Working — vector-add, matrix-multiply and transformer kernels run green on fresh boots; hardening and breadth in progress
| Guest CUDA kernel execution on real hardware || Working — vector-add, matrix-multiply and transformer kernels run green on fresh boots; the battery's staged-transfer class and per-guest isolation are in progress
|-
|-
| OpenGL / Vulkan, Windows guests, multi-tenancy, migration, performance || Not yet — multiple mediated devices (different emulated VRAM sizes) and multiple guests already coexist; per-guest execution isolation is in progress
| 3D graphics: Xorg + OpenGL, Vulkan || In progress — the X server and GLX run on the emulated vGPU, the engine executes real GL method streams, and the guest Vulkan pipeline runs end to end; rendered (non-black) pixels are the current frontier — see [[Graphics Execution]], [[OpenGL]], [[Vulkan]]
|-
| Windows guests, multi-tenancy, migration, performance || Not yet — multiple mediated devices (different emulated VRAM sizes) and multiple guests already coexist; per-guest execution isolation is in progress
|}
|}


The full story, with evidence and the current wall: [[Project Status]] and [[The Execution Frontier]].
The full story, with evidence and the current wall: [[Project Status]] and [[The Execution Frontier]].
== Graphics ==
* [[Graphics Execution]] — how guest 3D work reaches the physical engines
* [[OpenGL]] — the stock guest GL stack on the emulated vGPU
* [[Vulkan]] — the guest Vulkan pipeline on the emulated vGPU
* [[DirectX]] — the Windows/DirectX target


== Deep dives ==
== Deep dives ==
* [[System Overview]] — the architecture before any subsystem
* [[System Overview]] — the architecture before any subsystem
* [[Project Goals]] — mission, scope and goal-by-goal status
* [[GSP and GSP-RM]] — the firmware interface we emulate
* [[GSP and GSP-RM]] — the firmware interface we emulate
* [[The vGSP Execution Plane (vEP)]] — how guest work becomes execution and completion
* [[The vGSP Execution Plane (vEP)]] — how guest work becomes execution and completion
Line 49: Line 59:
* [[Physical GPU Backend and Guest Wiring]] — how work reaches real hardware
* [[Physical GPU Backend and Guest Wiring]] — how work reaches real hardware
* [[The Execution Frontier]] — the leading edge, evidence-led
* [[The Execution Frontier]] — the leading edge, evidence-led
* [[Performance]] — the cost model, tracing and improvement programme
* [[Interfaces and Stability]] — which surfaces are contracts, which may change
* [[Guest Driver Lifecycle: A Field Guide]] — boot to CUDA with real IDs and log signatures
* [[Guest Driver Lifecycle: A Field Guide]] — boot to CUDA with real IDs and log signatures



Revision as of 17:06, 30 October 2026

An absence of critical technical documentation has historically slowed growth and adoption of developer ecosystems for GPU virtualization.

This CC-BY-4.0 licensed content can either be used with attribution, or used as inspiration for new documentation, created by GPU vendors for public commercial distribution as developer documentation.

Where possible, this documentation will clearly label dates and versions of observed-but-not-guaranteed behaviour vs. vendor-documented stable interfaces/behaviour with guarantees of forward or backward compatibility.


Open-IOV is an open-source virtualization layer for NVIDIA GPUs: it runs stock, unmodified NVIDIA drivers inside virtual machines — Linux and Windows — with CUDA on hardware you own, without proprietary vGPU licenses, without patching the guest driver, the host driver, the hypervisor or the firmware.

Emulate the interface. Pass through the work. Never patch anyone.

The only new component is one host kernel module (vgsp.ko), which implements the interface the guest driver expects to talk to — the GPU System Processor and its resource-manager firmware — and arranges for the guest's work to run on real GPU hardware.

About Open-IOV · Community · Documentation

Start here

Project status (2026-10-30)

Area State
Emulated vGPU device (PCI, BARs, MSI-X, VFIO mdev) Working
GSP boot emulation and GSP-RM message queues / RPC Working
Stock guest driver probe, nvidia-smi (TU104) Working
CUDA userspace init and the driver-API smoke (ALL OK, 64-byte payload round-trips) Working
Guest CUDA kernel execution on real hardware Working — vector-add, matrix-multiply and transformer kernels run green on fresh boots; the battery's staged-transfer class and per-guest isolation are in progress
3D graphics: Xorg + OpenGL, Vulkan In progress — the X server and GLX run on the emulated vGPU, the engine executes real GL method streams, and the guest Vulkan pipeline runs end to end; rendered (non-black) pixels are the current frontier — see Graphics Execution, OpenGL, Vulkan
Windows guests, multi-tenancy, migration, performance Not yet — multiple mediated devices (different emulated VRAM sizes) and multiple guests already coexist; per-guest execution isolation is in progress

The full story, with evidence and the current wall: Project Status and The Execution Frontier.

Graphics

  • Graphics Execution — how guest 3D work reaches the physical engines
  • OpenGL — the stock guest GL stack on the emulated vGPU
  • Vulkan — the guest Vulkan pipeline on the emulated vGPU
  • DirectX — the Windows/DirectX target

Deep dives

Firmware interoperability

Project and ecosystem

Community

About Open-IOV

Open-IOV runs unmodified NVIDIA driver stacks inside virtual machines with GPU compute on hardware you own — no proprietary vGPU license, and no patches to the guest driver, the host driver, the hypervisor or the firmware. The project adds one host kernel module (vgsp.ko) that implements the interface the guest driver expects to talk to — the GPU System Processor and its resource-manager firmware — and arranges for the guest's work to run on real GPU hardware.

  • Mission: make NVIDIA GPUs fully virtualizable, by anyone, for any hypervisor, without modifying NVIDIA software, firmware or hardware.
  • Principles: no patches anywhere; honest status carried with dated evidence; an independent, self-contained IP block; durability by owning the interface rather than a snapshot of it.
  • Licensing: all documentation on this site is CC-BY-4.0; the project's code is BSD-3-Clause (GPL-2.0 for the kernel modules); NVIDIA software and firmware are used unmodified and are not redistributed.

Read more about Open-IOV →

About this wiki

This wiki previously hosted documentation from the earlier project era (2021–2023). Those pages are retained for reference under History; current documentation starts at Documentation.