SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
GPU Virtualization on VMware’s
   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?
•   VMware’s virtual GPU
•   Conclusions

• In the paper:
    – Details on our implementation
    – Benchmarks, analysis

                                                  2
What is a GPU, anyway?
•   Video playback, 2D graphics, drawing triangles and rectangles and lines...


• Computation.




                                                                                 3
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
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...)
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
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.
What are GPUs good for?
• Desktop Apps
  –   Entertainment
  –   CAD
  –   Multimedia
  –   Productivity


• Desktop GUIs
  – Quartz Extreme
  – Vista Aero
  – Compiz

                                  8
GPUs in the Data Center
• Server-hosted Desktops
• GPGPU




                                  9
API Remoting
                                Guest   Host




      App         App         App                RPC Endpoint      User-level


API   OpenGL / Direct3D Redirector             OpenGL / Direct3D   API

                                                  GPU Driver       Kernel

                                                     GPU           Hardware
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
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
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
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
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
VMware SVGA II




                 16
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
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
Application Benchmarks




                         19
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
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
Questions?
• micah@vmware.com




                         22

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Qemu Introduction
Qemu IntroductionQemu Introduction
Qemu Introduction
 
Prerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyPrerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrency
 
Introduction to CUDA
Introduction to CUDAIntroduction to CUDA
Introduction to CUDA
 
GPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive SolutionsGPU Virtualization in Embedded Automotive Solutions
GPU Virtualization in Embedded Automotive Solutions
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
XPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, Citrix
XPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, CitrixXPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, Citrix
XPDDS17: PVH Dom0: The Road so Far - Roger Pau Monné, Citrix
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
 
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
 
Dave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMUDave Gilbert - KVM and QEMU
Dave Gilbert - KVM and QEMU
 
Deep learning: Hardware Landscape
Deep learning: Hardware LandscapeDeep learning: Hardware Landscape
Deep learning: Hardware Landscape
 
Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 
GPU: Understanding CUDA
GPU: Understanding CUDAGPU: Understanding CUDA
GPU: Understanding CUDA
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation
 
Xen Debugging
Xen DebuggingXen Debugging
Xen Debugging
 
QEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded DevelopmentQEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded Development
 
Cuda tutorial
Cuda tutorialCuda tutorial
Cuda tutorial
 
qCUDA-ARM : Virtualization for Embedded GPU Architectures
 qCUDA-ARM : Virtualization for Embedded GPU Architectures  qCUDA-ARM : Virtualization for Embedded GPU Architectures
qCUDA-ARM : Virtualization for Embedded GPU Architectures
 

Destacado (6)

Siggraph 2016 - Vulkan and nvidia : the essentials
Siggraph 2016 - Vulkan and nvidia : the essentialsSiggraph 2016 - Vulkan and nvidia : the essentials
Siggraph 2016 - Vulkan and nvidia : the essentials
 
VDI and Application Virtualization
VDI and Application VirtualizationVDI and Application Virtualization
VDI and Application Virtualization
 
CPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop InfrastructureCPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop Infrastructure
 
3. CPU virtualization and scheduling
3. CPU virtualization and scheduling3. CPU virtualization and scheduling
3. CPU virtualization and scheduling
 
Virtualization Technology Overview
Virtualization Technology OverviewVirtualization Technology Overview
Virtualization Technology Overview
 
Introduction to virtualization
Introduction to virtualizationIntroduction to virtualization
Introduction to virtualization
 

Similar a GPU Virtualization on VMware's Hosted I/O Architecture

2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPC
DVClub
 
PG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated AsyncrPG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated Asyncr
Kohei KaiGai
 
[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight
[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight
[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight
laparuma
 
[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c
[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c
[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c
laparuma
 
Sony vegas pro 12 edit
Sony vegas pro 12 editSony vegas pro 12 edit
Sony vegas pro 12 edit
Onchahonvora
 

Similar a GPU Virtualization on VMware's Hosted I/O Architecture (20)

3 d to _hpc
3 d to _hpc3 d to _hpc
3 d to _hpc
 
3 d to_hpc
3 d to_hpc3 d to_hpc
3 d to_hpc
 
2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPC
 
Nvidia Cuda Apps Jun27 11
Nvidia Cuda Apps Jun27 11Nvidia Cuda Apps Jun27 11
Nvidia Cuda Apps Jun27 11
 
PG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated AsyncrPG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated Asyncr
 
[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight
[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight
[03 2][gpu용 개발자 도구 - parallel nsight 및 axe] gateau parallel-nsight
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game Engines
 
Pc54
Pc54Pc54
Pc54
 
GPU-Virtualization-in-openSUSE.pdf
GPU-Virtualization-in-openSUSE.pdfGPU-Virtualization-in-openSUSE.pdf
GPU-Virtualization-in-openSUSE.pdf
 
GPU Programming with Java
GPU Programming with JavaGPU Programming with Java
GPU Programming with Java
 
N A G P A R I S280101
N A G P A R I S280101N A G P A R I S280101
N A G P A R I S280101
 
ArcGIS Server a Brief Synopsis
ArcGIS Server a Brief SynopsisArcGIS Server a Brief Synopsis
ArcGIS Server a Brief Synopsis
 
[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c
[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c
[02][cuda c 프로그래밍 소개] gateau intro to_cuda_c
 
GS-4136, Optimizing Game Development using AMD’s GPU PerfStudio 2, by Gordon ...
GS-4136, Optimizing Game Development using AMD’s GPU PerfStudio 2, by Gordon ...GS-4136, Optimizing Game Development using AMD’s GPU PerfStudio 2, by Gordon ...
GS-4136, Optimizing Game Development using AMD’s GPU PerfStudio 2, by Gordon ...
 
PG-Strom
PG-StromPG-Strom
PG-Strom
 
Introduction to GPU
Introduction to GPUIntroduction to GPU
Introduction to GPU
 
VMworld 2015: Deliver High Performance Desktops with VMware Horizon and NVIDI...
VMworld 2015: Deliver High Performance Desktops with VMware Horizon and NVIDI...VMworld 2015: Deliver High Performance Desktops with VMware Horizon and NVIDI...
VMworld 2015: Deliver High Performance Desktops with VMware Horizon and NVIDI...
 
Mobile Graphics, The Need for Open Source Drivers
Mobile Graphics, The Need for Open Source DriversMobile Graphics, The Need for Open Source Drivers
Mobile Graphics, The Need for Open Source Drivers
 
Cross platform computer vision optimization
Cross platform computer vision optimizationCross platform computer vision optimization
Cross platform computer vision optimization
 
Sony vegas pro 12 edit
Sony vegas pro 12 editSony vegas pro 12 edit
Sony vegas pro 12 edit
 

Último

Último (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

GPU Virtualization on VMware's Hosted I/O Architecture

  • 1. GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1
  • 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. What is a GPU, anyway? • Video playback, 2D graphics, drawing triangles and rectangles and lines... • Computation. 3
  • 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. 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. 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. 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. What are GPUs good for? • Desktop Apps – Entertainment – CAD – Multimedia – Productivity • Desktop GUIs – Quartz Extreme – Vista Aero – Compiz 8
  • 9. GPUs in the Data Center • Server-hosted Desktops • GPGPU 9
  • 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. 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. 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. 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. 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. 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
  • 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. 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
  • 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. 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