GPU Virtualization on VMware’s Hosted I/O Architecture
Micah Dowty Jeremy Sugerman USENIX WIOV 2008
1
Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV - - PowerPoint PPT Presentation
GPU Virtualization on VMwares Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1 Contents GPUs are hard But GPU virtualization is worth the trouble How to virtualize a GPU? VMwares virtual GPU
Micah Dowty Jeremy Sugerman USENIX WIOV 2008
1
2
3
Source: AnandTech review of NVidia GT200
Intel Core 2 Duo:
NVIDIA GeForce GTX 280:
4
Vertex Data Vertex Pipeline
Rasterization
Pixel Pipeline Framebuffer Texture Data State Pixel Shader State Vertex Shader
(State of the art circa 2002...)
5
6
GPU App GPU Driver App App App OpenGL Direct3D Compute
7
* With a few notable exceptions.
– Entertainment – CAD – Multimedia – Productivity
8
9
GPU GPU Driver OpenGL / Direct3D Hardware Kernel
Host Guest
API User-level RPC Endpoint App App App API OpenGL / Direct3D Redirector
GPU GPU Driver OpenGL / Direct3D Hardware Kernel
Host Guest
API User-level Rendering Backend Virtual GPU Virtual GPU Driver App App App Virtual HW Kernel API OpenGL / Direct3D Shader / State Translator Resource Management GPU Emulator Shared System Memory
Virtual Machine
OpenGL / Direct3D / Compute App GPU Driver App App API Pass-through GPU Physical GPU
PCI IRQ MMIO
VT-d
DMA
Physical GPU GPU Resource Manager Virtual Machine OpenGL / Direct3D / Compute App GPU Driver App App API Emulation Pass-through GPU Virtual Machine OpenGL / Direct3D / Compute App GPU Driver App App API Emulation Pass-through GPU
Front-end Back-end Fixed Pass-through 1:1 Mediated Pass-through 1:N Hybrid (Driver VM) API Remoting Device Emulation
14
– Any physical GPU – Any guest driver stack – Adjustable capability exposure – No direct access to GPU memory
– Flexible guest memory management – Few copies – Asynchronous rendering
15
GPU GPU Driver OpenGL / Direct3D Rendering Backend VMware SVGA II Virtual GPU Driver App App App OpenGL / Direct3D Shader / State Translator Resource Management Device Emulation
16
GPU GPU API / Driver
Host Guest
SVGA FIFO / Registers VMware SVGA Driver DMA Engine MKS / HostOps Dispatch SVGA Device Guest Mem Shader Program Translator Guest VRAM SVGA GMR App
3D Rendering
Surface Abstraction State Translator 3D Drawing Path
2D Compositing
2D 3D Video
17
18
19
20
21
22