gpu virtualization on vmware's hosted i/o architecture

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

Upload: guestb3fc97

Post on 13-Jan-2015

13.068 views

Category:

Technology


1 download

DESCRIPTION

Presentation slides from the talk of the same name at the USENIX Workshop on I/O Virtualization: WIOV '08.

TRANSCRIPT

Page 1: GPU Virtualization on VMware's Hosted I/O Architecture

GPU Virtualization on VMware’s Hosted I/O Architecture

Micah DowtyJeremy Sugerman

USENIX WIOV 2008

1

Page 2: GPU Virtualization on VMware's Hosted I/O Architecture

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

Page 3: GPU Virtualization on VMware's Hosted I/O Architecture

What is a GPU, anyway?

• Video playback, 2D graphics, drawing triangles and rectangles and lines...

• Computation.

3

Page 4: GPU Virtualization on VMware's Hosted I/O Architecture

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

Page 5: GPU Virtualization on VMware's Hosted I/O Architecture

Programmable 3D Pipeline

Vertex Data Vertex Pipeline

•Position•Material•Texture coordinate

Rasterization

•Plot triangles, lines•Interpolate vertices

Pixel Pipeline Framebuffer

Texture Data

State

PixelShader

State

VertexShader

(State of the art circa 2002...)5

Page 6: GPU Virtualization on VMware's Hosted I/O Architecture

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

Page 7: GPU Virtualization on VMware's Hosted I/O Architecture

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 App App

OpenGL Direct3D Compute

7* With a few notable exceptions.

Page 8: GPU Virtualization on VMware's Hosted I/O Architecture

What are GPUs good for?

• Desktop Apps– Entertainment

– CAD

– Multimedia

– Productivity

• Desktop GUIs– Quartz Extreme

– Vista Aero

– Compiz

8

Page 9: GPU Virtualization on VMware's Hosted I/O Architecture

GPUs in the Data Center

• Server-hosted Desktops

• GPGPU

9

Page 10: GPU Virtualization on VMware's Hosted I/O Architecture

API Remoting

GPU

GPU Driver

OpenGL / Direct3D

Hardware

Kernel

HostGuest

API

User-levelRPC EndpointApp App App

API OpenGL / Direct3D Redirector

Page 11: GPU Virtualization on VMware's Hosted I/O Architecture

Device Emulation

GPU

GPU Driver

OpenGL / Direct3D

Hardware

Kernel

HostGuest

API

User-level

Rendering Backend

Virtual GPU

Virtual GPU Driver

App App App

Virtual HW

Kernel

API OpenGL / Direct3D

Shader / State Translator

Resource Management

GPU Emulator

Shared SystemMemory

Page 12: GPU Virtualization on VMware's Hosted I/O Architecture

Virtual Machine

Fixed pass-through

OpenGL / Direct3D / Compute

App

GPU Driver

App App

API

Pass-through GPU

Physical GPU

PCIIRQMMIO

VT-d

DMA

Page 13: GPU Virtualization on VMware's Hosted I/O Architecture

Mediated pass-through

Physical GPU

GPU Resource Manager

Virtual Machine

OpenGL / Direct3D / Compute

App

GPU Driver

App App

API

Emulation

Pass-through GPU

Virtual Machine

OpenGL / Direct3D / Compute

App

GPU Driver

App App

API

Emulation

Pass-through GPU

Page 14: GPU Virtualization on VMware's Hosted I/O Architecture

GPU Virtualization Taxonomy

Front-end

Back-end

Fixed Pass-through1:1

Mediated Pass-through1:N

Hybrid(Driver VM)

API Remoting Device Emulation

14

Page 15: GPU Virtualization on VMware's Hosted I/O Architecture

VMware’s Virtual GPU

• Compatibility– Any physical GPU

– Any guest driver stack

– Adjustable capabilityexposure

– No direct access toGPU 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 App App

OpenGL / Direct3D

Shader / State Translator

Resource Management

Device Emulation

Page 16: GPU Virtualization on VMware's Hosted I/O Architecture

VMware SVGA II

16

Page 17: GPU Virtualization on VMware's Hosted I/O Architecture

Virtual Graphics Stack

GPU

GPU API / Driver

Host

GuestSVGA FIFO / Registers

VMware SVGA Driver

DMA Engine

MKS / HostOps Dispatch

SVGA Device

Guest Mem

ShaderProgram

Translator

Guest VRAM

SVGA GMR

App

3DRendering

SurfaceAbstraction

StateTranslator

3D Drawing Path

2DCompositing 2D 3D

Video

17

Page 18: GPU Virtualization on VMware's Hosted I/O Architecture

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

Page 19: GPU Virtualization on VMware's Hosted I/O Architecture

Application Benchmarks

19

Page 20: GPU Virtualization on VMware's Hosted I/O Architecture

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

Page 21: GPU Virtualization on VMware's Hosted I/O Architecture

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

Page 22: GPU Virtualization on VMware's Hosted I/O Architecture

Questions?

[email protected]

22