SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Linux Instrumentation
Linux InstrumentationLinux Instrumentation
Linux InstrumentationDarkStarSword
 
Approaching zero driver overhead
Approaching zero driver overheadApproaching zero driver overhead
Approaching zero driver overheadCass Everitt
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)self employed
 
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 SolutionsQUONTRASOLUTIONS
 
Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)MuntasirMuhit
 
AMP Kynetics - ELC 2018 Portland
AMP  Kynetics - ELC 2018 PortlandAMP  Kynetics - ELC 2018 Portland
AMP Kynetics - ELC 2018 PortlandKynetics
 
/proc/irq/<irq>/smp_affinity
/proc/irq/<irq>/smp_affinity/proc/irq/<irq>/smp_affinity
/proc/irq/<irq>/smp_affinityTakuya ASADA
 
Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)Saksham Tanwar
 
IntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingIntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingBrendan Gregg
 
Hardware Acceleration for Machine Learning
Hardware Acceleration for Machine LearningHardware Acceleration for Machine Learning
Hardware Acceleration for Machine LearningCastLabKAIST
 
Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Ceph Community
 
Graphic Processing Unit
Graphic Processing UnitGraphic Processing Unit
Graphic Processing UnitKamran Ashraf
 
GPU - An Introduction
GPU - An IntroductionGPU - An Introduction
GPU - An IntroductionDhan V Sagar
 
NVIDIA OpenGL and Vulkan Support for 2017
NVIDIA OpenGL and Vulkan Support for 2017NVIDIA OpenGL and Vulkan Support for 2017
NVIDIA OpenGL and Vulkan Support for 2017Mark Kilgard
 
Implementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over EthernetImplementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over EthernetJames Wernicke
 

Was ist angesagt? (20)

Linux Instrumentation
Linux InstrumentationLinux Instrumentation
Linux Instrumentation
 
Approaching zero driver overhead
Approaching zero driver overheadApproaching zero driver overhead
Approaching zero driver overhead
 
GPU
GPUGPU
GPU
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
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
 
Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)
 
AMP Kynetics - ELC 2018 Portland
AMP  Kynetics - ELC 2018 PortlandAMP  Kynetics - ELC 2018 Portland
AMP Kynetics - ELC 2018 Portland
 
/proc/irq/<irq>/smp_affinity
/proc/irq/<irq>/smp_affinity/proc/irq/<irq>/smp_affinity
/proc/irq/<irq>/smp_affinity
 
Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)
 
IntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingIntelON 2021 Processor Benchmarking
IntelON 2021 Processor Benchmarking
 
Hardware Acceleration for Machine Learning
Hardware Acceleration for Machine LearningHardware Acceleration for Machine Learning
Hardware Acceleration for Machine Learning
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
GPU Programming
GPU ProgrammingGPU Programming
GPU Programming
 
Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0
 
Graphic Processing Unit
Graphic Processing UnitGraphic Processing Unit
Graphic Processing Unit
 
GPU - An Introduction
GPU - An IntroductionGPU - An Introduction
GPU - An Introduction
 
NVIDIA OpenGL and Vulkan Support for 2017
NVIDIA OpenGL and Vulkan Support for 2017NVIDIA OpenGL and Vulkan Support for 2017
NVIDIA OpenGL and Vulkan Support for 2017
 
Implementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over EthernetImplementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over Ethernet
 
Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 

Andere mochten auch

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 essentialsTristan Lorach
 
VDI and Application Virtualization
VDI and Application VirtualizationVDI and Application Virtualization
VDI and Application VirtualizationJames W. De Rienzo
 
CPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop InfrastructureCPU Scheduling for Virtual Desktop Infrastructure
CPU Scheduling for Virtual Desktop InfrastructureHwanju Kim
 
3. CPU virtualization and scheduling
3. CPU virtualization and scheduling3. CPU virtualization and scheduling
3. CPU virtualization and schedulingHwanju Kim
 
Virtualization Technology Overview
Virtualization Technology OverviewVirtualization Technology Overview
Virtualization Technology OverviewOpenCity Community
 

Andere mochten auch (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
 

Ähnlich wie GPU Virtualization on VMware's Hosted I/O Architecture

2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPCDVClub
 
PG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated AsyncrPG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated AsyncrKohei 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-nsightlaparuma
 
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 EnginesPooya Eimandar
 
GPU-Virtualization-in-openSUSE.pdf
GPU-Virtualization-in-openSUSE.pdfGPU-Virtualization-in-openSUSE.pdf
GPU-Virtualization-in-openSUSE.pdfLiang Yan
 
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 S280101John Holden
 
ArcGIS Server a Brief Synopsis
ArcGIS Server a Brief SynopsisArcGIS Server a Brief Synopsis
ArcGIS Server a Brief Synopsisewug
 
[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_claparuma
 
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 ...AMD Developer Central
 
Introduction to GPU
Introduction to GPUIntroduction to GPU
Introduction to GPUbabuece
 
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...VMworld
 
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 DriversHarsha Padmanabha
 
Cross platform computer vision optimization
Cross platform computer vision optimizationCross platform computer vision optimization
Cross platform computer vision optimizationYoss Cohen
 

Ähnlich wie 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
 
Introduction to GPU Programming
Introduction to GPU ProgrammingIntroduction to GPU Programming
Introduction to GPU Programming
 
[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
 

Kürzlich hochgeladen

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
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, Adobeapidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
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 Takeoffsammart93
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
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.pdfsudhanshuwaghmare1
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Kürzlich hochgeladen (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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