gpu virtualization on vmware’s hosted i/o architecture micah dowty jeremy sugerman usenix wiov...
TRANSCRIPT
![Page 1: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/1.jpg)
1
GPU Virtualization on VMware’s Hosted I/O Architecture
Micah DowtyJeremy Sugerman
USENIX WIOV 2008
![Page 2: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/2.jpg)
2
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
![Page 3: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/3.jpg)
3
What is a GPU, anyway?• Video playback, 2D graphics, drawing triangles and rectangles and lines...
• Computation.
![Page 4: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/4.jpg)
4
How much computation?
Source: AnandTech review of NVidia GT200
Intel Core 2 Duo:
291 million transistors
NVIDIA GeForce GTX 280:1.4 billion transistors
![Page 5: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/5.jpg)
5
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...)
![Page 6: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/6.jpg)
6
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
![Page 7: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/7.jpg)
7
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
* With a few notable exceptions.
![Page 8: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/8.jpg)
8
What are GPUs good for?
• Desktop Apps– Entertainment– CAD– Multimedia– Productivity
• Desktop GUIs– Quartz Extreme– Vista Aero– Compiz
![Page 9: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/9.jpg)
9
GPUs in the Data Center
• Server-hosted Desktops• GPGPU
![Page 10: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/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 Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/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 Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/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 Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/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 Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/14.jpg)
14
GPU Virtualization Taxonomy
Front-endBack-end
Fixed Pass-through1:1
Mediated Pass-through1:N
Hybrid(Driver VM)
API Remoting Device Emulation
![Page 15: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/15.jpg)
15
VMware’s Virtual GPU
• Compatibility– Any physical GPU– Any guest driver stack– Adjustable capability
exposure– No direct access to
GPU memory
• Efficiency– Flexible guest memory management– Few copies– Asynchronous rendering
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 Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/16.jpg)
16
VMware SVGA II
![Page 17: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/17.jpg)
17
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
![Page 18: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/18.jpg)
18
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
![Page 19: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/19.jpg)
19
Application Benchmarks
![Page 20: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/20.jpg)
20
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
![Page 21: GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1](https://reader035.vdocuments.site/reader035/viewer/2022062421/56649cb95503460f9497faa2/html5/thumbnails/21.jpg)
21
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