SlideShare a Scribd company logo
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

More Related Content

What's hot

SR-IOV Introduce
SR-IOV IntroduceSR-IOV Introduce
SR-IOV Introduce
Lingfei Kong
 
Unified Memory on POWER9 + V100
Unified Memory on POWER9 + V100Unified Memory on POWER9 + V100
Unified Memory on POWER9 + V100
inside-BigData.com
 
Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
National Cheng Kung University
 
Understaing Android EGL
Understaing Android EGLUnderstaing Android EGL
Understaing Android EGL
Suhan Lee
 
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC ClustersSR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
Glenn K. Lockwood
 
Delivering the Future of High-Performance Computing
Delivering the Future of High-Performance ComputingDelivering the Future of High-Performance Computing
Delivering the Future of High-Performance Computing
AMD
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
AMD Developer Central
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
Novell
 
AMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor ArchitectureAMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor Architecture
AMD
 
Project meeting: Android Graphics Architecture Overview
Project meeting: Android Graphics Architecture OverviewProject meeting: Android Graphics Architecture Overview
Project meeting: Android Graphics Architecture Overview
Yu-Hsin Hung
 
Efficient Buffer Management
Efficient Buffer ManagementEfficient Buffer Management
Efficient Buffer Management
basisspace
 
Vulkan introduction
Vulkan introductionVulkan introduction
Vulkan introduction
Jiahan Su
 
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld
 
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime RipardKernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Anne Nicolas
 
Render thead of hwui
Render thead of hwuiRender thead of hwui
Render thead of hwui
Rouyun Pan
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
Emertxe Information Technologies Pvt Ltd
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラ
NVIDIA Japan
 
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
Kernel TLV
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)
self employed
 

What's hot (20)

SR-IOV Introduce
SR-IOV IntroduceSR-IOV Introduce
SR-IOV Introduce
 
Unified Memory on POWER9 + V100
Unified Memory on POWER9 + V100Unified Memory on POWER9 + V100
Unified Memory on POWER9 + V100
 
Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
 
Understaing Android EGL
Understaing Android EGLUnderstaing Android EGL
Understaing Android EGL
 
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC ClustersSR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
 
Delivering the Future of High-Performance Computing
Delivering the Future of High-Performance ComputingDelivering the Future of High-Performance Computing
Delivering the Future of High-Performance Computing
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
 
AMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor ArchitectureAMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor Architecture
 
Project meeting: Android Graphics Architecture Overview
Project meeting: Android Graphics Architecture OverviewProject meeting: Android Graphics Architecture Overview
Project meeting: Android Graphics Architecture Overview
 
Efficient Buffer Management
Efficient Buffer ManagementEfficient Buffer Management
Efficient Buffer Management
 
Character Drivers
Character DriversCharacter Drivers
Character Drivers
 
Vulkan introduction
Vulkan introductionVulkan introduction
Vulkan introduction
 
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
 
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime RipardKernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
 
Render thead of hwui
Render thead of hwuiRender thead of hwui
Render thead of hwui
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラ
 
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
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)
 

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

2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPCDVClub
 
Nvidia Cuda Apps Jun27 11
Nvidia Cuda Apps Jun27 11Nvidia Cuda Apps Jun27 11
Nvidia Cuda Apps Jun27 11
Dominic Monkhouse
 
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 Engines
Pooya Eimandar
 
GPU-Virtualization-in-openSUSE.pdf
GPU-Virtualization-in-openSUSE.pdfGPU-Virtualization-in-openSUSE.pdf
GPU-Virtualization-in-openSUSE.pdf
Liang Yan
 
GPU Programming with Java
GPU Programming with JavaGPU Programming with Java
GPU Programming with Java
Kelum Senanayake
 
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
John Holden
 
ArcGIS Server a Brief Synopsis
ArcGIS Server a Brief SynopsisArcGIS Server a Brief Synopsis
ArcGIS Server a Brief Synopsis
ewug
 
[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
 
PG-Strom
PG-StromPG-Strom
PG-Strom
Kohei KaiGai
 
Introduction to GPU
Introduction to GPUIntroduction to GPU
Introduction to GPU
babuece
 
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 Drivers
Harsha Padmanabha
 
Cross platform computer vision optimization
Cross platform computer vision optimizationCross platform computer vision optimization
Cross platform computer vision optimization
Yoss Cohen
 

Similar to 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
 
2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPC
 
3 d to_hpc
3 d to_hpc3 d to_hpc
3 d 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
 

Recently uploaded

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

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