0
GPU Virtualization on VMware’s
   Hosted I/O Architecture

Micah Dowty
Jeremy Sugerman


                   USENIX WIOV 20...
Contents
•   GPUs are hard
•   But GPU virtualization is worth the trouble
•   How to virtualize a GPU?
•   VMware’s virtu...
What is a GPU, anyway?
•   Video playback, 2D graphics, drawing triangles and rectangles and lines...


• Computation.



...
How much computation?


      NVIDIA GeForce GTX 280:
      1.4 billion transistors



      Intel Core 2 Duo:
      291 m...
Programmable 3D Pipeline
          Texture Data




           Vertex Data         Vertex Pipeline    Rasterization       ...
Unique challenges
• API
  – Not quite read(),
    write(), select()...
  – Multiple competing APIs
  – Hundreds of entry p...
Unique challenges
    • Hardware specs                     App      App         App      App
         – Diverse, changes f...
What are GPUs good for?
• Desktop Apps
  –   Entertainment
  –   CAD
  –   Multimedia
  –   Productivity


• Desktop GUIs
...
GPUs in the Data Center
• Server-hosted Desktops
• GPGPU




                                  9
API Remoting
                                Guest   Host




      App         App         App                RPC Endpoin...
Device Emulation
                                          Guest       Host


                                            ...
Fixed pass-through
              Virtual Machine


        App         App          App


                API
    OpenGL /...
Mediated pass-through
       Virtual Machine                                Virtual Machine


 App         App          Ap...
GPU Virtualization Taxonomy

   API Remoting                            Device Emulation



Front-end                  Hyb...
VMware’s Virtual GPU
• Compatibility                                                   Device Emulation

   – Any physical...
VMware SVGA II




                 16
Virtual Graphics Stack
                                                App

                             VMware SVGA Drive...
Evaluation
• Applications
• Microbenchmarks
• VMware Fusion 2.0,
  VMware Workstation 6.5,
  Parallels Desktop 3.0,
  Swif...
Application Benchmarks




                         19
Summary
• GPU Virtualization is an important problem
• Room for improvement in implementation
  completeness and performan...
Future Work
• Pass-through techniques
  – Fixed and Mediated
  – Can be complementary to Virtual GPU

• Continued improvem...
Questions?
• micah@vmware.com




                         22
Upcoming SlideShare
Loading in...5
×

GPU Virtualization on VMware's Hosted I/O Architecture

13,462

Published on

Presentation slides from the talk of the same name at the USENIX Workshop on I/O Virtualization: WIOV '08.

Published in: Technology, Art & Photos
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
13,462
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
256
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "GPU Virtualization on VMware's Hosted I/O Architecture"

  1. 1. GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1
  2. 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 2
  3. 3. What is a GPU, anyway? • Video playback, 2D graphics, drawing triangles and rectangles and lines... • Computation. 3
  4. 4. How much computation? NVIDIA GeForce GTX 280: 1.4 billion transistors Intel Core 2 Duo: 291 million transistors 4 Source: AnandTech review of NVidia GT200
  5. 5. Programmable 3D Pipeline Texture Data Vertex Data Vertex Pipeline Rasterization Pixel Pipeline Framebuffer •Position •Plot triangles, lines •Material •Interpolate vertices •Texture coordinate State State Vertex Pixel Shader Shader 5 (State of the art circa 2002...)
  6. 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 6
  7. 7. Unique challenges • Hardware specs App App App App – Diverse, changes frequently – Closely guarded secret* OpenGL Direct3D Compute GPU Driver – Speed vs. portability GPU • Hardware state – Up to gigabytes of data – Highly device-specific format – In-progress DMA and computation 7 * With a few notable exceptions.
  8. 8. What are GPUs good for? • Desktop Apps – Entertainment – CAD – Multimedia – Productivity • Desktop GUIs – Quartz Extreme – Vista Aero – Compiz 8
  9. 9. GPUs in the Data Center • Server-hosted Desktops • GPGPU 9
  10. 10. API Remoting Guest Host App App App RPC Endpoint User-level API OpenGL / Direct3D Redirector OpenGL / Direct3D API GPU Driver Kernel GPU Hardware
  11. 11. Device Emulation Guest Host GPU Emulator Resource Management User-level Shader / State Translator App App App Rendering Backend API OpenGL / Direct3D OpenGL / Direct3D API Kernel Virtual GPU Driver GPU Driver Kernel Virtual HW Virtual GPU GPU Hardware Shared System Memory
  12. 12. Fixed pass-through Virtual Machine App App App API OpenGL / Direct3D / Compute GPU Driver Pass-through GPU DMA MMIO IRQ PCI VT-d Physical GPU
  13. 13. Mediated pass-through Virtual Machine Virtual Machine App App App App App App API API OpenGL / Direct3D / Compute OpenGL / Direct3D / Compute GPU Driver GPU Driver Pass-through GPU Pass-through GPU Emulation Emulation GPU Resource Manager Physical GPU
  14. 14. GPU Virtualization Taxonomy API Remoting Device Emulation Front-end Hybrid Back-end (Driver VM) Fixed Pass-through Mediated Pass-through 1:1 1:N 14
  15. 15. VMware’s Virtual GPU • Compatibility Device Emulation – Any physical GPU Resource Management – Any guest driver stack Shader / State Translator – Adjustable capability App App App Rendering Backend exposure OpenGL / Direct3D OpenGL / Direct3D – No direct access to Virtual GPU Driver GPU Driver GPU memory VMware SVGA II GPU • Efficiency – Flexible guest memory management – Few copies – Asynchronous rendering 15
  16. 16. VMware SVGA II 16
  17. 17. Virtual Graphics Stack App VMware SVGA Driver Guest Guest Mem SVGA FIFO / Registers Host Guest VRAM SVGA Device MKS / HostOps Dispatch SVGA GMR 2D 3D Compositing 2D 3D Rendering Shader Surface State Video Program Abstraction Translator Translator DMA 3D Drawing Path Engine GPU API / Driver GPU 17
  18. 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 18
  19. 19. Application Benchmarks 19
  20. 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 20
  21. 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 21
  22. 22. Questions? • micah@vmware.com 22
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×