SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

エニグマ暗号とは何だったのか
エニグマ暗号とは何だったのかエニグマ暗号とは何だったのか
エニグマ暗号とは何だったのかTakahiro (Poly) Horikawa
 
モバイル×VRにおける3Dサウンド実践
モバイル×VRにおける3Dサウンド実践モバイル×VRにおける3Dサウンド実践
モバイル×VRにおける3Dサウンド実践GREE/Art
 
Supermicro Servers with Micron DDR5 & SSDs: Accelerating Real World Workloads
Supermicro Servers with Micron DDR5 & SSDs: Accelerating Real World WorkloadsSupermicro Servers with Micron DDR5 & SSDs: Accelerating Real World Workloads
Supermicro Servers with Micron DDR5 & SSDs: Accelerating Real World WorkloadsRebekah Rodriguez
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也harePreferred Networks
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことNVIDIA Japan
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
 
InfiniBand Essentials Every HPC Expert Must Know
InfiniBand Essentials Every HPC Expert Must KnowInfiniBand Essentials Every HPC Expert Must Know
InfiniBand Essentials Every HPC Expert Must KnowMellanox Technologies
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
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 柏瑀 黃
 
Snabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterSnabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterIgalia
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeNA
 
HPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなのHPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなのNVIDIA Japan
 
Game Programming 03 - Git Flow
Game Programming 03 - Git FlowGame Programming 03 - Git Flow
Game Programming 03 - Git FlowNick Pruehs
 
Arxan導入前後で変わったこと
Arxan導入前後で変わったことArxan導入前後で変わったこと
Arxan導入前後で変わったことYusuke Shirakawa
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconDeNA
 
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」KLab Inc. / Tech
 

Tendances (20)

Cuda tutorial
Cuda tutorialCuda tutorial
Cuda tutorial
 
エニグマ暗号とは何だったのか
エニグマ暗号とは何だったのかエニグマ暗号とは何だったのか
エニグマ暗号とは何だったのか
 
モバイル×VRにおける3Dサウンド実践
モバイル×VRにおける3Dサウンド実践モバイル×VRにおける3Dサウンド実践
モバイル×VRにおける3Dサウンド実践
 
Hacking QNX
Hacking QNXHacking QNX
Hacking QNX
 
Supermicro Servers with Micron DDR5 & SSDs: Accelerating Real World Workloads
Supermicro Servers with Micron DDR5 & SSDs: Accelerating Real World WorkloadsSupermicro Servers with Micron DDR5 & SSDs: Accelerating Real World Workloads
Supermicro Servers with Micron DDR5 & SSDs: Accelerating Real World Workloads
 
Cuda
CudaCuda
Cuda
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
InfiniBand Essentials Every HPC Expert Must Know
InfiniBand Essentials Every HPC Expert Must KnowInfiniBand Essentials Every HPC Expert Must Know
InfiniBand Essentials Every HPC Expert Must Know
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
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
 
Snabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterSnabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporter
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
HPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなのHPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなの
 
Game Programming 03 - Git Flow
Game Programming 03 - Git FlowGame Programming 03 - Git Flow
Game Programming 03 - Git Flow
 
Arxan導入前後で変わったこと
Arxan導入前後で変わったことArxan導入前後で変わったこと
Arxan導入前後で変わったこと
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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 organizationRadu Cotescu
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
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 2024Rafal Los
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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 productivityPrincipled Technologies
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

Dernier (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

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