<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=Project_Goals</id>
	<title>Project Goals - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=Project_Goals"/>
	<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Project_Goals&amp;action=history"/>
	<updated>2026-10-30T19:31:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://open-iov.org/index.php?title=Project_Goals&amp;diff=24003&amp;oldid=prev</id>
		<title>WikiBot: New page (2026-10-30 wiki refresh): Project Goals</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=Project_Goals&amp;diff=24003&amp;oldid=prev"/>
		<updated>2026-10-30T17:04:55Z</updated>

		<summary type="html">&lt;p&gt;New page (2026-10-30 wiki refresh): Project Goals&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{About message}}&lt;br /&gt;
&lt;br /&gt;
= Project Goals =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Scope.''' What Open-IOV is for, what it is not for, and the dated status of each goal. Condensed from [https://git.vgpu.io/open-iov.git/tree/docs/01-orientation/01-purpose-and-scope.md &amp;lt;code&amp;gt;../docs/01-orientation/01-purpose-and-scope.md&amp;lt;/code&amp;gt;] (mission, scope and success criteria) and [https://git.vgpu.io/open-iov.git/tree/docs/README.md &amp;lt;code&amp;gt;../docs/README.md&amp;lt;/code&amp;gt;] (the project front door); the docs tree wins on disagreement. The live milestone ladder is on [[Project Status|&amp;lt;code&amp;gt;Project-Status.md&amp;lt;/code&amp;gt;]], and the current execution detail on [[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]] and [[Graphics Execution|&amp;lt;code&amp;gt;Graphics-Execution.md&amp;lt;/code&amp;gt;]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status: 2026-10-30, tree &amp;lt;code&amp;gt;master @ b4930168&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; working with the stock guest driver; &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; in progress; &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt; designed, not built; &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; bring-up ahead; &amp;lt;code&amp;gt;[non-goal]&amp;lt;/code&amp;gt; explicitly out of scope.&lt;br /&gt;
&lt;br /&gt;
== 1. Mission ==&lt;br /&gt;
&lt;br /&gt;
'''Make NVIDIA GPUs fully virtualizable, by anyone, for any hypervisor, without modifying NVIDIA software, firmware or hardware.'''&lt;br /&gt;
&lt;br /&gt;
Concretely, Open-IOV builds an independent, maintained IP block that:&lt;br /&gt;
&lt;br /&gt;
* presents a virtual NVIDIA GPU to a guest operating system;&lt;br /&gt;
* lets the guest run the '''stock NVIDIA driver''' (Linux and Windows);&lt;br /&gt;
* supports '''compute (CUDA)''' first, then '''3D graphics''' and '''video''';&lt;br /&gt;
* runs on ordinary NVIDIA GPUs already deployed in the field;&lt;br /&gt;
* isolates guests from each other and from the host;&lt;br /&gt;
* and requires no license key, no proprietary host service, no patched guest driver, and no specific hypervisor.&lt;br /&gt;
&lt;br /&gt;
The guiding sentence is: '''''Emulate the interface. Pass through the work. Never patch anyone.'''''&lt;br /&gt;
&lt;br /&gt;
== 2. The gap it fills ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Approach&lt;br /&gt;
! Limitation&lt;br /&gt;
|-&lt;br /&gt;
| Discrete device assignment (VFIO passthrough)&lt;br /&gt;
| One GPU per VM; no sharing; fragile on consumer/laptop systems.&lt;br /&gt;
|-&lt;br /&gt;
| NVIDIA proprietary vGPU&lt;br /&gt;
| Requires a license and a vendor host stack; driver-version locked.&lt;br /&gt;
|-&lt;br /&gt;
| Software GPU emulation (QEMU virtual GPUs, &amp;lt;code&amp;gt;virgl&amp;lt;/code&amp;gt;)&lt;br /&gt;
| No real CUDA; no real 3D performance; not usable for AI.&lt;br /&gt;
|-&lt;br /&gt;
| Cloud-only inference&lt;br /&gt;
| Requires an external service; unacceptable for secure edge, offline, or private data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Open-IOV occupies the gap: '''real GPU acceleration, multiple VMs, stock drivers, no license.'''&lt;br /&gt;
&lt;br /&gt;
== 3. Goals and their status ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Goal&lt;br /&gt;
! What success looks like&lt;br /&gt;
! Status (2026-10-30)&lt;br /&gt;
|-&lt;br /&gt;
| Stock guest driver initialisation&lt;br /&gt;
| The unmodified driver probes, initialises and enumerates as on bare metal (&amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt;)&lt;br /&gt;
| &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; — TU104 reference platform&lt;br /&gt;
|-&lt;br /&gt;
| Full CUDA driver-API surface&lt;br /&gt;
| Context creation, allocation, copies, free, destroy complete with correct results&lt;br /&gt;
| &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; — the driver-API smoke prints &amp;lt;code&amp;gt;ALL OK&amp;lt;/code&amp;gt;; the 64-byte payload round-trips&lt;br /&gt;
|-&lt;br /&gt;
| CUDA kernel execution on real hardware&lt;br /&gt;
| Verified guest kernels execute on the physical GPU, with engine-authored completions waking the guest&lt;br /&gt;
| &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; — vector-add, matrix-multiply and transformer clients green on fresh boots; the staged-transfer class, the every-boot acceptance campaign and per-guest isolation are in progress ([[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| OpenGL (3D graphics)&lt;br /&gt;
| Stock guest GL applications render real pixels through the emulated vGPU&lt;br /&gt;
| &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; — Xorg/GLX run, the engine executes GL method streams (verbatim 3D replay + synthesized launches); rendered pixels are the frontier ([[OpenGL|&amp;lt;code&amp;gt;OpenGL.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| Vulkan&lt;br /&gt;
| Stock guest Vulkan applications render real pixels&lt;br /&gt;
| &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; — the pipeline runs end to end (device → command buffer → fence → readback); frames are black — program delivery and program-VA mapping are the frontier ([[Vulkan|&amp;lt;code&amp;gt;Vulkan.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| Windows guests (DirectX, CUDA)&lt;br /&gt;
| A stock WDDM driver and stock D3D/CUDA applications run in Windows guests&lt;br /&gt;
| &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; — not started; same emulation target ([[DirectX|&amp;lt;code&amp;gt;DirectX.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| Video (NVENC/NVDEC)&lt;br /&gt;
| Encode/decode through the emulated device&lt;br /&gt;
| &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Multi-tenant isolation&lt;br /&gt;
| Multiple VMs on one GPU, isolated by the IOMMU and the device model, with explicit scheduling&lt;br /&gt;
| &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; — two mediated devices (different emulated VRAM sizes) and two guests coexist; per-guest execution isolation is in progress ([[GMMU Multi-Tenant Protection|&amp;lt;code&amp;gt;GMMU-Multi-Tenant-Protection.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| Hypervisor portability&lt;br /&gt;
| The same IP block attaches to KVM, Xen, Argo/OpenXT, Qubes OS Air, ...&lt;br /&gt;
| &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt; — the emulation core is hypervisor-independent by construction; KVM/QEMU with VFIO mdev is the reference transport ([[Hardware and Software Matrix|&amp;lt;code&amp;gt;Hardware-Software-Matrix.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| Version and hardware portability&lt;br /&gt;
| New driver, firmware or GPU generations enter by configuration plus measurement&lt;br /&gt;
| &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; — 570.144/TU104 is the anchor; per-version evidence workflows exist; newer versions are gated work&lt;br /&gt;
|-&lt;br /&gt;
| Live migration&lt;br /&gt;
| A VM migrates with its GPU state&lt;br /&gt;
| &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt; — the protocol analysis is kept for the record ([[Migration Protocol|&amp;lt;code&amp;gt;Migration-Protocol.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| Performance&lt;br /&gt;
| Within an agreed factor of native for the supported cases, with published methodology&lt;br /&gt;
| &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt; — no published numbers yet; the first scheduled measurement is the 60 fps graphics target ([[Graphics Execution|&amp;lt;code&amp;gt;Graphics-Execution.md&amp;lt;/code&amp;gt;]])&lt;br /&gt;
|-&lt;br /&gt;
| Security posture&lt;br /&gt;
| Isolation survives adversarial review; the device fails closed&lt;br /&gt;
| &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; — fail-closed design and audit practice; per-tenant execution isolation is in progress ([https://git.vgpu.io/open-iov.git/tree/docs/05-operations/01-performance-correctness-security.md &amp;lt;code&amp;gt;../docs/05-operations/01-performance-correctness-security.md&amp;lt;/code&amp;gt;])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4. How success is judged ==&lt;br /&gt;
&lt;br /&gt;
The project evaluates itself on five axes, each with a methodology document in [https://git.vgpu.io/open-iov.git/tree/docs/05-operations/01-performance-correctness-security.md &amp;lt;code&amp;gt;../docs/05-operations/01-performance-correctness-security.md&amp;lt;/code&amp;gt;]:&lt;br /&gt;
&lt;br /&gt;
# '''Initialization''' — the driver reaches bare-metal parity through boot, probe and initialisation.&lt;br /&gt;
# '''Runtime''' — the guest runs real work: CUDA kernels with correct results, OpenGL/Vulkan rendering, encode/decode; repeated, sustained, resilient.&lt;br /&gt;
# '''Interoperability''' — no changes anywhere: guest driver, host driver, firmware, hypervisor.&lt;br /&gt;
# '''Stability''' — crash-free under stress: start/stop cycles, VM kill, driver reload, suspend/resume, migration.&lt;br /&gt;
# '''Performance and security''' — within an agreed factor of native, with isolation that survives adversarial review.&lt;br /&gt;
&lt;br /&gt;
== 5. Non-goals ==&lt;br /&gt;
&lt;br /&gt;
* '''Replacing bare-metal inference serving.''' Continuous batching on bare-metal hosts remains the right answer for centralised datacenter inference; Open-IOV is for compute that must live ''inside'' guests.&lt;br /&gt;
* '''Forking or patching''' the NVIDIA driver (guest or host), the GPU firmware, or hypervisors to make the device work.&lt;br /&gt;
* '''Anti-cheat / DRM circumvention.''' The project interoperates with interfaces and implements '''its own''' device; it does not counterfeit vendor licensing.&lt;br /&gt;
* '''Emulating GPU instruction execution in software.''' Software emulation of CUDA kernels is orders of magnitude too slow; work must run on real silicon.&lt;br /&gt;
&lt;br /&gt;
== 6. Related pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Project Status|&amp;lt;code&amp;gt;Project-Status.md&amp;lt;/code&amp;gt;]] — the dated milestone ladder.&lt;br /&gt;
* [[The Execution Frontier|&amp;lt;code&amp;gt;Execution-Frontier.md&amp;lt;/code&amp;gt;]] — the compute execution frontier.&lt;br /&gt;
* [[Graphics Execution|&amp;lt;code&amp;gt;Graphics-Execution.md&amp;lt;/code&amp;gt;]] — the 3D execution frontier.&lt;br /&gt;
* [[HAAEEP and Collaboration|&amp;lt;code&amp;gt;HAAEEP-and-Collaboration.md&amp;lt;/code&amp;gt;]] — the agent-edge use case and collaboration models.&lt;br /&gt;
* [[Hardware and Software Matrix|&amp;lt;code&amp;gt;Hardware-Software-Matrix.md&amp;lt;/code&amp;gt;]] — the support ladder.&lt;br /&gt;
* [https://git.vgpu.io/open-iov.git/tree/docs/01-orientation/01-purpose-and-scope.md &amp;lt;code&amp;gt;../docs/01-orientation/01-purpose-and-scope.md&amp;lt;/code&amp;gt;] — the canonical purpose-and-scope document.&lt;/div&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
</feed>