CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014



Similar documents
Cloud Gaming & Application Delivery with NVIDIA GRID Technologies. Franck DIARD, Ph.D. GRID Architect, NVIDIA

GRID SDK FAQ. PG January Frequently Asked Questions

AGENDA. Overview GPU Video Encoding NVIDIA Video Encoding Capabilities. Software API Performance & Quality. Kepler vs Maxwell GPU capabilities Roadmap

HIGH-PERFORMANCE GPU VIDEO ENCODING ABHIJIT PATAIT SR. MANAGER, NVIDIA

Amazon EC2 Product Details Page 1 of 5

HIGH PERFORMANCE VIDEO ENCODING WITH NVIDIA GPUS

NVIDIA GRID OVERVIEW SERVER POWERED BY NVIDIA GRID. WHY GPUs FOR VIRTUAL DESKTOPS AND APPLICATIONS? WHAT IS A VIRTUAL DESKTOP?

Cloud Computing. Adam Barker

SierraVMI Sizing Guide

4Kp60 H.265/HEVC Glass-to-Glass Real-Time Encoder Reference Design

Get the Best out of NVIDIA GPUs for 3D Design and Engineering in the Cloud

Chapter 19 Cloud Computing for Multimedia Services

Amazon AppStream. Developer Guide

Performance Testing in Virtualized Environments. Emily Apsey Product Engineer

REMOTE HIGH FIDELITY VISUALIZATION. May 2015 Jeremy Main, Sr. Solution Architect GRID

Enabling Technologies for Distributed and Cloud Computing

S Hands on Tutorial: Deploying GRID in Citrix and VMware Virtual Desktop Environments

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

NVIDIA GeForce GTX 580 GPU Datasheet

NVIDIA VIDEO ENCODER 5.0

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

PNY Professional Solutions NVIDIA GRID - GPU Acceleration for the Cloud

TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING

Scalability in the Cloud HPC Convergence with Big Data in Design, Engineering, Manufacturing

Stream Processing on GPUs Using Distributed Multimedia Middleware

PLANNING FOR DENSITY AND PERFORMANCE IN VDI WITH NVIDIA GRID JASON SOUTHERN SENIOR SOLUTIONS ARCHITECT FOR NVIDIA GRID

Enabling Technologies for Distributed Computing

Manjrasoft Market Oriented Cloud Computing Platform

ArcGIS Pro: Virtualizing in Citrix XenApp and XenDesktop. Emily Apsey Performance Engineer

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

Amazon EC2 XenApp Scalability Analysis

Optimizing AAA Games for Mobile Platforms

ITG Software Engineering

S5445 BUILDING THE BEST USER EXPERIENCE WITH CITRIX XENAPP & NVIDIA GRID THOMAS POPPELGAARD

INSTALLATION GUIDE ENTERPRISE DYNAMICS 9.0

Red Hat VDI. David Simmons

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen Powergen 3

1. INTRODUCTION Graphics 2

Low power GPUs a view from the industry. Edvard Sørgård

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

VMware and NVIDIA: Bringing Workstations to the cloud

NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist

OCIO HIGH RESOLUTION GRAPHICS DESKTOP VIRTUALIZATION POC. Chip Charnley Technical Expert Client Technologies Infrastructure Architecture

GTC EXPRESS WEBINAR: GETTING THE MOST OUT OF VMWARE HORIZON VIEW VDGA WITH NVIDIA GRID. Steve Harpster - Solution Architect NALA

Logitech ConferenceCam CC3000e. Best Practices for use with Software Clients. UC for Real People

Remoting Your 3D. Ian Williams Manager, PSG Applied Engineering NVIDIA Corporation.

Android Development: Part One

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Virtualization of ArcGIS Pro. An Esri White Paper December 2015

GOLD20TH-GTX980-P-4GD5

Tizen SDK Annual Report Key Improvements. Changseok Oh (Samsung), Yeongkyoon Lee (S-Core)

Dell Desktop Virtualization Solutions Stack with Teradici APEX 2800 server offload card

GPU Hardware and Programming Models. Jeremy Appleyard, September 2015

Lecture 1 Introduction to Android

Manjrasoft Market Oriented Cloud Computing Platform

Introduction to GP-GPUs. Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1

Android Virtualization from Sierraware. Simply Secure

ANDROID INTRODUCTION TO ANDROID

Choosing a Computer for Running SLX, P3D, and P5

NVIDIA GeForce GTX 750 Ti

Video Monitoring and Log System

Several tips on how to choose a suitable computer

SAPPHIRE TOXIC R9 270X 2GB GDDR5 WITH BOOST

Remote Graphical Visualization of Large Interactive Spatial Data

CHAPTER FIVE RESULT ANALYSIS

ACANO SOLUTION VIRTUALIZED DEPLOYMENTS. White Paper. Simon Evans, Acano Chief Scientist

Technical Brief. Userful Multiplatform Desktop Virtualization Software

Cloud Computing with Red Hat Solutions. Sivaram Shunmugam Red Hat Asia Pacific Pte Ltd.

-Android 2.3 is the most used version of Android on the market today with almost 60% of all Android devices running 2.3 Gingerbread -Winner of

CS378 -Mobile Computing. Android Overview and Android Development Environment

Mobile Phones Operating Systems

Here is a demonstration of the Aqua Accelerated Protocol (AAP) software see the Aqua Connect YouTube Channel

QuickSpecs. NVIDIA Quadro M GB Graphics INTRODUCTION. NVIDIA Quadro M GB Graphics. Overview

StruxureWare TM Center Expert. Data

Computer Graphics Hardware An Overview

Aqua Accelerated Protocol (AAP) For Mac User Manual

9/26/2011. What is Virtualization? What are the different types of virtualization.

Whitepaper. NVIDIA Miracast Wireless Display Architecture

Overview of CS 282 & Android

IBM Platform Computing Cloud Service Ready to use Platform LSF & Symphony clusters in the SoftLayer cloud

Data Centers and Cloud Computing

2) Xen Hypervisor 3) UEC

Benchmarking the Performance of XenDesktop Virtual DeskTop Infrastructure (VDI) Platform

Technology and Cost Considerations for Cloud Deployment: Amazon Elastic Compute Cloud (EC2) Case Study

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Network performance in virtual infrastructures

Scaling in a Hypervisor Environment

Product Description. Licenses Notice. Introduction TC-200

Virtualization in Enterprise Environment. Krisztian Egi

FreeTAB 1017 IPS2 X4+ Sint-Truidensesteenweg Hakendover

NVIDIA GeForce Experience

================================================================== CONTENTS ==================================================================

Background on Elastic Compute Cloud (EC2) AMI s to choose from including servers hosted on different Linux distros

NVIDIA GeForce GT630 DP (2GB) PCIe x16 Card Graphics Card. QuickSpecs. Overview. Models. DA Worldwide Version 4 November 27, 2012 Page 1

Technical Brief. NVIDIA nview Display Management Software. May 2009 TB _v02

Virtualization for Cloud Computing

Transcription:

CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014

Introduction

Cloud ification < 2013 2014+ Music, Movies, Books Games

GPU Flops GPUs vs. Consoles 10,000 PC GPU GeForce Titan Console 3x PS4 1,000 Xbox 720 Xbox 360 GeForce 8800 100 GeForce 7800 PS3 8 years 10 Xbox 2x 5 years 1 GeForce 3 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 Jon Peddie Research

Cloud Gaming Advantages For Publishers For Gamers No Piracy Mobility Precise Accounting Ubiquity Game Updates Instant Play

Architecture CLIENT SERVER Render Kybd/Mse Decode IP Network NIC CPU Encode Render Capture GRID Client <16ms Network 30 ms 2 Frames GRID 30 ms

Native Windows DirectX / OpenGL Linux OpenGL Cloud Gaming Content Sources Players Android Games GeniMotion: 3D OGL VirtualBox + Android x86 BlueStacks Flash player New Engines Shiva 3D

GRID SDK Components Server Side on GRID HW Client Side on NV NvFBC Low Latency Desktop Capture NvIFR Low Latency Render Target Capture Low Latency Decode on GeForce & Tegra NvENC Low latency Hardware Encoder Sample Code (NvIFR & NvFBC) GRID Programming Guide GRID Server Setup Guide Amazon G2 Getting Started Guide

GRID SDK

Full VM Environment Windows Windows NVEnc 3D DX CSC Shader 3D DX Windows NvFBC GPU GPU Single Exclusive Game Process Streamer VM VM XEN One stream per VM, one VM per GPU

Increasing CCU with light Sandboxing and Shimming With m>n 1 Single instance of Windows GPU GPU

NVIDIA Client Decode API is designed for Low latency (1 frame) Power efficient using the H.264 hardware decoder GRID SDK Examples: Windows PC Based on DX9CUDAGPUDecode NVIDIA Shield (Android) Based on TegraH264HWDecode Decoder Client Binary available Handles Audio, Video, and Input For development and testing Client Side Low Latency Decode & Display on GeForce &Tegra

GRID Gaming Products Product Name GRID K340 GRID K520 GPUs 4 x GK107 2 x GK104 Total shader (SMs) 8 16 Core Clocks 900 MHz 800 MHz Memory Size 4GB 8GB 720p30 Encodes ~40 ~20 1080p30 Encodes ~16 ~8 Driver Support Target Apps GeForce Drivers and Game Profiles High Density Gaming GeForce Drivers and Game Profiles High Performance Gaming Next gen GRID will enable 2x encoding and 2x 3D performance 1 Number of users depends on application and screen resolution

Where does it run? Dedicated capacity In telco data centers Flood the map, cutting down latency Running on top of Amazon Web Services Flexible Less initial investment rent what you need Big BW from servers to Internet backbone

Building GRID Servers Dual Xeon E5 2x10 core 2.5 GHz CPUs SuperMicro, ASUS Up to 5 boards = 20 GPUs Xeon E3 systems 4x 4-core 3.5 GHz CPUs 2 boards = 8 GPUs Cirrascale, CARRI/GIGABYTE

Resources https://developer.nvidia.com/grid-app-game-streaming http://www.nvidia.com/object/cloud-get-started.html GRID-devtech-support@nvidia.com Thanks

Amazon Instance = NMOS A VM with a GPU connected through a hypervisor. A background process NvFBC, captures screen contents and encodes to H.264. GRID SDK Sample: NvFBCH264 captures full-screen graphics and encodes to H.264. Full Streaming Server binary available Capture, Encode, and Stream Audio and Video Receives game input with a network connected client Games requires minimal changes. NVIDIA GRID Server

GAME STREAMING ON AMAZON G2 AND GRID Eric Young

Overview Game Streaming Amazon G2 and GRID Onboarding Games for GRID

Streaming Games from the Cloud Client User Client Internet Client Input Controls Video + Audio Stream Server Application or Game

Overview Game Streaming Amazon G2 and GRID Onboarding Games for GRID

Stream on Amazon G2 What is required? Middleware based on GRID SDK. Server captures frames, encodes to H.264, and streams. Rent Amazon G2 instances for $0.78- $0.82 per hour. Spin up/down instances based on traffic demand. http://aws.amazon.com/ec2/ Partner Middleware Solution Amazon G2 instance: g2.2xlarge 1 NVIDIA GRID GK104 (GeForce GTX 670) Quad-Core CPUs 15GB Memory 60GB Storage

Challenges GRID Streaming Rapid Prototyping Game developer want an easy way to prototype a streaming solution without developing a full solution Software to handle Gamepad Input, Audio and Video streaming Use Amazon G2 rent a GRID hardware/hour and not require purchasing hardware. NVIDIA Streaming Tools Streaming Tool not part of the GRID SDK. Useful for rapid prototyping to help onboard games running in cloud Testing the game streaming experience running over the cloud

Onboarding Games for GRID How do I get started? Use Private Amazon AMI images with GRID Streaming components. Contact NVIDIA (GRID-devtech-support@nvidia.com) for the software components. GRID Streaming Prototype is a tool to help Game Developer onboard your games.

GRID Streaming Prototype GRID Streaming Server Streaming Client NvFBC Video Capture Audio Capture Decode Audio and Video on GeForce & Tegra NvENC H.264 Hardware Encoder Keyboard, Mouse, Gamepad Input

Game Streaming Prototype on Amazon G2 Client Game Client GRID SDK Decode Internet Client Input Controls Video + Audio Stream G2 GRID Server Game Program GRID SDK Capture Encode GRID Driver

Overview Game Streaming Amazon G2 and GRID Onboarding Games for GRID

Step 1 Setup AWS Account Register for AWS Amazon Account (http://aws.amazon.com)

Step 2 Create and Launch an Instance Choose GPU Instance (g2.2xlarge) from EC2 Management Console Configure and Launch the Instance

Step 3 Install the Game on the Instance Remotely connect to your Instance using VNC Copy and install the game to the Instance Start up the Streaming Server (waiting for client)

Step 4 Connect Client for Game Streaming Launch the NVIDIA Streaming Client from Local System with Server IP Address to connect Launch Game from your Client Start Playing!

Onboarding Goals Test the Gameplay experience Validate Visual Quality for the end user Test end to end playability Additional Guidelines for Game Developers Contact (GRID-devtech-support@nvidia.com) if you are interested having your game in the GRID Beta

OPTIMIZING GAMES FOR CLOUD GAMING Samuel Gateau

Samuel Gateau Devtech Enginer Checklist for boarding (your game in the cloud) Render, Capture & Encode Cloud Game Engine Perspectives

Onboard your game in the cloud Help us run your game on cloud gaming services GRID (beta) for SHIELD Cloud Gaming Partners

Configure game settings Support config files to assign game settings Need to assign the optimal video settings Find the proper balance of CPU / GPU usage for the best quality Ideally just rely on the GeForce Experience interoperability API Your game can be configured externally http://developer.nvidia.com/geforce-settings-api And you benefit the integration with the GeForce Experience program!

Support the GAMEPAD Fully support GAMEPAD controllers through XINPUT The only universal controller solution Easily emulated on mobile or desktop Make sure ALL the menus & dialogs are navigable with the gamepad Take a look at NvGamepad library A crossplatform gamepad abstraction layer for Windows and Android http://developer.nvidia.com/cross-platform-gamepad-api

Annihilate text edit Entering credential information is painfull Just like for settings, the game should provide a way to get the logging information from command line or a file Cloud service can automatically fill the credential for the user making it seamless We will propose an API to delegate any form filling or dialog box to the client side Better integration with the client s device using the local interface kit Just make it actually usable with any client s platform Call for volunteers

Improve the cloudy user experience Skip all these amazing pre-game screens & videos Time is money Hide any video/audio/performance settings Taken care of by the service Follow recommendations for Valve s Big Picture Gamepad!!! Screen size goes from 4 to 4 whatever

MySuperGame.exe -clouding Introduce a streamming mode to the game that facilitate the onboarding & support the cloud constraints Improve the user experience Improve the performance profile of the game by capping the rendering framerate to what is needed The game logic and simulation can still run at 1000Hz Less power required 40Hz

Checklist for boarding (your game in the cloud) Render, Capture & Encode Cloud Game Engine Perspectives

Rendering Thread? Hz Rendering the video stream R R+1 Framerate of the game is not very stable Capturing these frames for video encoding is not good enough Streaming needs a fixed rate R+2 R+3

Encoding the video stream 30 Hz E-1 Encoding Thread Introduce a new thread in charge of encoding the video stream at the target framerate Broadcast to remote client E E+1

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R copy to Shared Surface R

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R Shared Surface R E

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R Shared Surface R E copy from R

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R Shared Surface R+1 R E R

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R R+1 copy to Shared Surface E R+1 R

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R R+1 R+2 Shared Surface R+1 E R

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R R+1 E Shared Surface R R+2 copy to R+2

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R R+1 E R R+2 Shared Surface R+2 E+1

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R R+1 E R R+2 Shared Surface R+2 E+1 copy from R+2

Rendering Thread? Hz 30 Hz Encoding Thread E-1 R R+1 E R+2 Shared Surface E+1 R+3

Rendering Thread Asynchronous? Hz capture 30 & Hz encode E-1 Encoding Thread Minimal latency for encoding Does not block physics engine/input Game loop is running free R+1 Need 2 extra color surfaces R Rendering thread could be capped above the targeted framerate to avoid unecessary rendering R+2 E Shared Surface E+1 R+3

Checklist for boarding (your game in the cloud) Render, Capture & Encode Cloud Game Engine Perspectives

GRID server as a platform Your next next gen With Baremetal, a game can take over the full server Run several game sessions at the same time Graphics engine use all the GPUs and SHARE common resources Game engine use all the CPU cores Render & stream as many game sessions as possible (think 100) Partners working on it already Square Enix Project Flare

One Game Engine Same game, many sessions, share all the graphics resource If the game is happening live for each session Perform all the animations and update once Compute the world physics simulation once All the shadows and lighting can be evaluated and shared Then render each session s view and encode

Conceptual Engine GRID Engine GK104 CPU CPU Global Illumination Server Node Game State GK104 AI & PhysX GK107 NVENC GK107 NVENC GK107 NVENC GK107 NVENC GK107 NVENC GK107 NVENC GK107 NVENC GK107 NVENC Client Video Stream 1-4 Client Video Stream 1-4 Client Video Stream 5-8 Client Video Stream 5-8 Client Video Client Video Client Video Stream 9-12 Client Video Stream 29-32 Stream 9-12 Stream 13-16

Amortized Computation Many graphics techniques are tolerant of latency but expensive to calculate NVIDIA Research created a demo where global illumination was calculated once for a number of clients using an additional cloud based GPU https://research.nvidia.com/publication/cloudlight-system-amortizing-indirect-lighting-real-time-rendering

Amortized Computation Not limited to lighting techniques Any state that is expensive to calculate yet shared between clients AI Physics Simulation Animation

Thanks!! Questions? eyoung@nvidia.com fdiard@nvidia.com sgateau@nvidia.com