GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV 2008 1.

Slides:



Advertisements
Similar presentations
GPU Virtualization Support in Cloud System Ching-Chi Lin Institute of Information Science, Academia Sinica Department of Computer Science and Information.
Advertisements

Prepared 5/24/2011 by T. O’Neil for 3460:677, Fall 2011, The University of Akron.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
GPUs on Clouds Andrew J. Younge Indiana University (USC / Information Sciences Institute) UNCLASSIFIED: 08/03/2012.
OS Case Study: The Xbox 360  Instructor: Rob Nash  Readings: See citations in the slides.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Status – Week 283 Victor Moya. 3D Graphics Pipeline Akeley & Hanrahan course. Akeley & Hanrahan course. Fixed vs Programmable. Fixed vs Programmable.
Graphic Architecture introduction and analysis
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
OpenSSL acceleration using Graphics Processing Units
Realtime 3D Computer Graphics Computer Graphics Computer Graphics Software & Hardware Rendering Software & Hardware Rendering 3D APIs 3D APIs Pixel & Vertex.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
Background image by chromosphere.deviantart.com Fella in following slides by devart.deviantart.com DM2336 Programming hardware shaders Dioselin Gonzalez.
1 ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Dec 31, 2012 Emergence of GPU systems and clusters for general purpose High Performance Computing.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
May 8, 2007Farid Harhad and Alaa Shams CS7080 Over View of the GPU Architecture CS7080 Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad &
Virtual Machines: Versatile Platforms for Systems and Processes
Computer Graphics Graphics Hardware
Virtualization Concepts Presented by: Mariano Diaz.
GPUs and Accelerators Jonathan Coens Lawrence Tan Yanlin Li.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
VirtualBox What you need to know to build a Virtual Machine.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
Applying GPU and POSIX Thread Technologies in Massive Remote Sensing Image Data Processing By: Group 17 King Mongkut's Institute of Technology Ladkrabang.
Emergence of GPU systems and clusters for general purpose high performance computing ITCS 4145/5145 April 3, 2012 © Barry Wilkinson.
GPU Architecture and Programming
XGL: X11 replacement ? O.Couet, ROOT meeting 11/07/2006.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
A Neural Network Implementation on the GPU By Sean M. O’Connell CSC 7333 Spring 2008.
1)Leverage raw computational power of GPU  Magnitude performance gains possible.
May 8, 2007Farid Harhad and Alaa Shams CS7080 Overview of the GPU Architecture CS7080 Final Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Introduction Why are virtual machines interesting?
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Lecture.
David Angulo Rubio FAMU CIS GradStudent. Introduction  GPU(Graphics Processing Unit) on video cards has evolved during the last years. They have become.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
Ray Tracing using Programmable Graphics Hardware
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 © Barry Wilkinson GPUIntro.ppt Oct 30, 2014.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
VMM-Independent Graphics Acceleration H. Andrés Lagar-Cavilla, U of Toronto Niraj Tolia (CMU), Eyal de Lara (Toronto), M. Satyanarayanan.
Xen GPU Rider. Outline Target & Vision GPU & Xen CUDA on Xen GPU Hardware Acceleration On VM - VMGL.
VMGL: VMM-Independent Graphics Acceleration H. Andrés Lagar-Cavilla, U of Toronto Niraj Tolia (CMU), Eyal de Lara (Toronto), M.
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 July 12, 2012 © Barry Wilkinson CUDAIntro.ppt.
GPU Architecture and Its Application
Chapter 1 An overview on Computer Graphics
Virtual Machines: Versatile Platforms for Systems and Processes
Chapter 1 An overview on Computer Graphics
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Graphics Processing Unit
From Turing Machine to Global Illumination
GPGPU Applications Introduction
The Graphics Rendering Pipeline
GRAPHICS PROCESSING UNIT
CSC 2231: Parallel Computer Architecture and Programming GPUs
Introduction to Computer Graphics with WebGL
Graphics Processing Unit
Virtual Machines (Introduction to Virtual Machines)
Introduction to Virtual Machines
Introduction to Virtual Machines
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV

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? Source: AnandTech review of NVidia GT200 Intel Core 2 Duo: 291 million transistors NVIDIA GeForce GTX 280 : 1.4 billion transistors 4

Programmable 3D Pipeline Vertex DataVertex Pipeline Position Material Texture coordinate Rasterization Plot triangles, lines Interpolate vertices Pixel PipelineFramebuffer Texture Data State Pixel Shader State Vertex Shader (State of the art circa ) 5

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 – Diverse, changes frequently – Closely guarded secret * – Speed vs. portability Hardware state – Up to gigabytes of data – Highly device-specific format – In-progress DMA and computation GPU App GPU Driver App OpenGLDirect3DCompute 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 GPU GPU Driver OpenGL / Direct3D Hardware Kernel HostGuest API User-levelRPC Endpoint App APIOpenGL / Direct3D Redirector

Device Emulation GPU GPU Driver OpenGL / Direct3D Hardware Kernel HostGuest API User-level Rendering Backend Virtual GPU Virtual GPU Driver App Virtual HW Kernel APIOpenGL / Direct3D Shader / State Translator Resource Management GPU Emulator Shared System Memory

Virtual Machine Fixed pass-through OpenGL / Direct3D / Compute App GPU Driver App API Pass-through GPU Physical GPU PCIIRQMMIO VT-d DMA

Mediated pass-through Physical GPU GPU Resource Manager Virtual Machine OpenGL / Direct3D / Compute App GPU Driver App API Emulation Pass-through GPU Virtual Machine OpenGL / Direct3D / Compute App GPU Driver App API Emulation Pass-through GPU

GPU Virtualization Taxonomy Front-end Back-end Fixed Pass-through 1:1 Fixed Pass-through 1:1 Mediated Pass-through 1:N Mediated Pass-through 1:N Hybrid (Driver VM) Hybrid (Driver VM) API RemotingDevice Emulation 14

VMware’s Virtual GPU Compatibility – Any physical GPU – Any guest driver stack – Adjustable capability exposure – No direct access to GPU memory Efficiency – Flexible guest memory management – Few copies – Asynchronous rendering 15 GPU GPU Driver OpenGL / Direct3D Rendering Backend VMware SVGA II Virtual GPU Driver App OpenGL / Direct3D Shader / State Translator Resource Management Device Emulation

VMware SVGA II 16

Virtual Graphics Stack GPU GPU API / Driver Host Guest SVGA FIFO / Registers VMware SVGA Driver DMA Engine MKS / HostOps Dispatch SVGA Device Guest Mem Shader Program Translator Guest VRAM SVGA GMR App 3D Rendering Surface Abstraction State Translator 3D Drawing Path 2D Compositing 2D 3D Video 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 HD

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? 22