gpu virtualization on vmware's hosted i/o architecture
DESCRIPTION
Presentation slides from the talk of the same name at the USENIX Workshop on I/O Virtualization: WIOV '08.TRANSCRIPT
![Page 1: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/1.jpg)
GPU Virtualization on VMware’s Hosted I/O Architecture
Micah DowtyJeremy Sugerman
USENIX WIOV 2008
1
![Page 2: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/2.jpg)
Contents
• GPUs are hard
• But GPU virtualization is worth the trouble
• How to virtualize a GPU?
• VMware’s virtual GPU
• Conclusions
• In the paper:– Details on our implementation
– Benchmarks, analysis
2
![Page 3: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/3.jpg)
What is a GPU, anyway?
• Video playback, 2D graphics, drawing triangles and rectangles and lines...
• Computation.
3
![Page 4: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/4.jpg)
How much computation?
Source: AnandTech review of NVidia GT200
Intel Core 2 Duo:
291 million transistors
NVIDIA GeForce GTX 280:1.4 billion transistors
4
![Page 5: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/5.jpg)
Programmable 3D Pipeline
Vertex Data Vertex Pipeline
•Position•Material•Texture coordinate
Rasterization
•Plot triangles, lines•Interpolate vertices
Pixel Pipeline Framebuffer
Texture Data
State
PixelShader
State
VertexShader
(State of the art circa 2002...)5
![Page 6: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/6.jpg)
Unique challenges
• API– Not quite read(),
write(), select()...
– Multiple competing APIs
– Hundreds of entry points
• Programmable– Every GPU driver is also a compiler
– Each API includes a language spec
6
![Page 7: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/7.jpg)
Unique challenges
• Hardware specs– Diverse, changes frequently
– Closely guarded secret*
– Speed vs. portability
• Hardware state– Up to gigabytes of data
– Highly device-specific format
– In-progress DMA and computation
GPU
App
GPU Driver
App App App
OpenGL Direct3D Compute
7* With a few notable exceptions.
![Page 8: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/8.jpg)
What are GPUs good for?
• Desktop Apps– Entertainment
– CAD
– Multimedia
– Productivity
• Desktop GUIs– Quartz Extreme
– Vista Aero
– Compiz
8
![Page 9: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/9.jpg)
GPUs in the Data Center
• Server-hosted Desktops
• GPGPU
9
![Page 10: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/10.jpg)
API Remoting
GPU
GPU Driver
OpenGL / Direct3D
Hardware
Kernel
HostGuest
API
User-levelRPC EndpointApp App App
API OpenGL / Direct3D Redirector
![Page 11: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/11.jpg)
Device Emulation
GPU
GPU Driver
OpenGL / Direct3D
Hardware
Kernel
HostGuest
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 SystemMemory
![Page 12: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/12.jpg)
Virtual Machine
Fixed pass-through
OpenGL / Direct3D / Compute
App
GPU Driver
App App
API
Pass-through GPU
Physical GPU
PCIIRQMMIO
VT-d
DMA
![Page 13: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/13.jpg)
Mediated pass-through
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
![Page 14: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/14.jpg)
GPU Virtualization Taxonomy
Front-end
Back-end
Fixed Pass-through1:1
Mediated Pass-through1:N
Hybrid(Driver VM)
API Remoting Device Emulation
14
![Page 15: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/15.jpg)
VMware’s Virtual GPU
• Compatibility– Any physical GPU
– Any guest driver stack
– Adjustable capabilityexposure
– No direct access toGPU memory
• Efficiency– 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
![Page 16: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/16.jpg)
VMware SVGA II
16
![Page 17: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/17.jpg)
Virtual Graphics Stack
GPU
GPU API / Driver
Host
GuestSVGA FIFO / Registers
VMware SVGA Driver
DMA Engine
MKS / HostOps Dispatch
SVGA Device
Guest Mem
ShaderProgram
Translator
Guest VRAM
SVGA GMR
App
3DRendering
SurfaceAbstraction
StateTranslator
3D Drawing Path
2DCompositing 2D 3D
Video
17
![Page 18: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/18.jpg)
Evaluation
• Applications
• Microbenchmarks
• VMware Fusion 2.0,VMware Workstation 6.5,Parallels Desktop 3.0,SwiftShader
• Mac Pro, 8-core 2.8 GHz
• ATI Radeon HD2600
18
![Page 19: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/19.jpg)
Application Benchmarks
19
![Page 20: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/20.jpg)
Summary
• GPU Virtualization is an important problem
• Room for improvement in implementation completeness and performance...
• But we can already run interactive apps that could never be virtualized before
• Virtual GPU preserves portability + isolation
20
![Page 21: GPU Virtualization on VMware's Hosted I/O Architecture](https://reader031.vdocuments.us/reader031/viewer/2022020715/54b4d85f4a795994558b45b9/html5/thumbnails/21.jpg)
Future Work
• Pass-through techniques– Fixed and Mediated
– Can be complementary to Virtual GPU
• Continued improvements– Performance and functionality
– At all layers of driver stack
• Virtualization-aware GPU benchmarks
21