VMGL: VMM-Independent Graphics Acceleration H. Andrés Lagar-Cavilla, U of Toronto Niraj Tolia (CMU), Eyal de Lara (Toronto), M.

Slides:



Advertisements
Similar presentations
Introduction to Direct3D 10 Course Porting Game Engines to Direct3D 10: Crysis / CryEngine2 Carsten Wenzel.
Advertisements

GPU Virtualization on VMware’s Hosted I/O Architecture Micah Dowty Jeremy Sugerman USENIX WIOV
Virtual Machines What Why How Powerpoint?. What is a Virtual Machine? A Piece of software that emulates hardware.  Might emulate the I/O devices  Might.
Snowbird: Interactive Resource-Intensive Applications Made Easy H. Andrés Lagar-Cavilla * Niraj Tolia † ‡, Eyal de Lara *, M. Satyanarayanan ‡ & Dave O’Hallaron.
Fast rendering of 2D applications with text and images Combines the power of DirectX and the convenience of.NET Adopted by most triple-A titles.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
Network Implementation for Xen and KVM Class project for E : Network System Design and Implantation 12 Apr 2010 Kangkook Jee (kj2181)
Virtualising 3D Hardware. Basically VM 1 VM 2 Multiplex real hardware.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Virtualization for Cloud Computing
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
OPTIMIZING AND DEBUGGING GRAPHICS APPLICATIONS WITH AMD'S GPU PERFSTUDIO 2.5 GPG Developer Tools Gordon Selley Peter Lohrmann GDC 2011.
E Virtual Machines Lecture 4 Device Virtualization
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
May l Washington, DC l Omni Shoreham Nick Dobrovolskiy VP Parallels Open Platform May 19 th, 2008 Introducing Parallels Server.
SAIGONTECH COPPERATIVE EDUCATION NETWORKING Spring 2009 Seminar #1 VIRTUALIZATION EVERYWHERE.
Presenter: Hung-Fu Li HPDS Lab. NKUAS vCUDA: GPU Accelerated High Performance Computing in Virtual Machines Lin Shi, Hao Chen and Jianhua.
CS533 Concepts of Operating Systems Jonathan Walpole.
Remus: VM Replication Jeff Chase Duke University.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Device Drivers.
Benefits: Increased server utilization Reduced IT TCO Improved IT agility.
Xen Overview for Campus Grids Andrew Warfield University of Cambridge Computer Laboratory.
Virtual Machine Monitors: Technology and Trends Jonathan Kaldor CS614 / F07.
VirtualBox What you need to know to build a Virtual Machine.
Operating Systems JEOPARDY Computer Repair NetworkOS OS Tasks ConceptsComponentsMisc
Xen and The Art of Virtualization Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt & Andrew Warfield.
RMesa (Remote Mesa) Kutty S Banerjee Emmanuel Agu.
COMS E Cloud Computing and Data Center Networking Sambit Sahu
CS 4363/6353 OPENGL BACKGROUND. WHY IS THIS CLASS SO HARD TO TEACH? (I’LL STOP WHINING SOON) Hardware (GPUs) double in processing power ever 6 months!
Introduction to virtualization
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Full and Para Virtualization
Introduction Why are virtual machines interesting?
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
E Virtual Machines Lecture 5 Network Virtualization Scott Devine VMware, Inc.
6/13/20161 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam King,
Tgt: Framework Target Drivers FUJITA Tomonori NTT Cyber Solutions Laboratories Mike Christie Red Hat, Inc Ottawa Linux.
VMM-Independent Graphics Acceleration H. Andrés Lagar-Cavilla, U of Toronto Niraj Tolia (CMU), Eyal de Lara (Toronto), M. Satyanarayanan.
Virtualization Neependra Khare
Xen GPU Rider. Outline Target & Vision GPU & Xen CUDA on Xen GPU Hardware Acceleration On VM - VMGL.
From VIC (VRVS) to ViEVO (EVO) 3 years of experiences with developing of video application VIC for VRVS allowed us to develop a new video application.
Introduction to Operating Systems Concepts
Virtualization for Cloud Computing
Virtual Machine Monitors
GPU Architecture and Its Application
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CLOUD COMPUTING
L2- Virtualization Technology
Chapter 1 An overview on Computer Graphics
NEWS LAB 薛智文 嵌入式系統暨無線網路實驗室
OpenGL® on Windows Vista™
Virtual Machines: Versatile Platforms for Systems and Processes
Computer Graphics Lecture 32
Operating Systems Design (CS 423)
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Operating System Structure
Java Win32 native Java VM Linux OS ARM VM Runtime Windows OS
CS490 Windows Internals Quiz 2 09/27/2013.
XenFS Sharing data in a virtualised environment
Virtualization Techniques
Microsoft Virtual Academy
3D programming in Delphi
Windows Virtual PC / Hyper-V
Desktop Window Manager
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Operating Systems Structure
A Virtual Machine Monitor for Utilizing Non-dedicated Clusters
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
OpenGL Background CS 4722.
Presentation transcript:

VMGL: VMM-Independent Graphics Acceleration H. Andrés Lagar-Cavilla, U of Toronto Niraj Tolia (CMU), Eyal de Lara (Toronto), M. Satyanarayanan (CMU)

Why Virtualize 3D Acceleration? Two simultaneous trends VMs out of the server room Client apps going 3D

Virtualization of Client Apps Soulpads The Collective Internet Suspend/Resume Virtual Appliances Moka5

The World Is Going 3D

Why Is 3D Virtualization Hard? 3D vendors compete through HW diversity Lack of unifying hardware abstraction Closed specs Open HW abstractions simplify virtualization: Network -> Ethernet Frame Block Devices -> BIO request SCSI drives -> SCSI command packet.... How could we ever write 3D applications?

3D Rendering APIs De facto unifying sotware abstraction Developer gets vendor independence Two main APIs OpenGL Direct3D OpenGL Cross-platform

VMGL: Virtualizing OpenGL Provides 3D HW acceleration to applications running inside virtual machines GPU independent VMM independent Guest OS independent 87% or better of native HW acceleration Two orders of magnitude better than Mesa

VMGL Design API virtualization GPU vendor independence OpenGL: cross-platform API Guest OS independence Network Communication VMM independence

OpenGL Apps In X11 Systems GPU Application X Server Vendor Open GL 3D 2D

VMGL Apps in X11 Guest VMs GPU VM Viewer: VNC, SDL VMGL Stub Vendor Open GL Application X Server VMGL GL Commands Guest Host: Dom 0

Implementation Aspects Efficient GL network transport 3D and 2D output composing in VM viewer Suspend/Resume implementation Dom0 drivers

Efficient GL Transport Transport over network VMM Independence WireGL / Chromium Only send updates that “matter” glTextureXY only when texture visible Combine, reorder and buffer commands glRotate + glTranslate -> Single matrix transformation

Window Manager Extension Compose 3D and 2D output on VM viewer Extension in VM's X server tells viewer 3D output Position Size Clipping

Suspend / Resume Think each GL app as a GL device Runtime: keep track of OpenGL state Suspend: “freeze” GL device (trivial) Resume: flush state to new GL stub OpenGL state is GPU independent Suspend/resume across different GPUs OpenGL state is bounded Upper bound: GPU mem size

VMGL Suspend / Resume State Windows Visual bits Binding to window manager extension GL Contexts Context data: fog, transformations... Textures: pixmap, clamp mode Display Lists: verbatim unrolling

Domain 0 GPU Drivers ATI & Nvidia: GPU Mem mapping in user-space GL lib Oblivious to Xen additional indirection Virtual -> Physical (VM) -> Machine Even for domain 0 Fix open source portion of driver Use Xen-paravirt mem mapping functions

VMGL Evaluation VMGL: OpenGL Virtualization API v1.5 Shaders through extensions Frames per second CPU, bandwidth consumption Resume latency, state size Workloads Games & entertainment fuel 3D industry

Workloads Enemy Territory Unreal 2004 Quake 3 Mplayer

Performance (FPS)

87% or better of native performance

VMM Portability (FPS) VMM and VM type independent

Guest OS Portability (FPS) Easily ported to other X11-based OSs

Suspend Resume Performance State Size(MBs)Resume Time (ms) State size bounded Also across GPUs from different vendors

Wrapping Up VMGL: OpenGL virtualization -> 1K downloads Enable intersection of two growing trends Virtualization 3D Graphics GPU/vendor independence VMM independence Guest OS independence To VEE 2007 More eval & details there

TODO Xen-specific improvements Shared memory transport (XenSocket?) Windows Code porting Window Manager hooks Direct3D support via translation layers

THANKS Demo Q&A