The Effects of Parallel Programming on Gaming Anthony Waterman.

Slides:



Advertisements
Similar presentations
DATA PROCESSING SYSTEMS
Advertisements

Parallel Computing Glib Dmytriiev
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
TO COMPUTERS WITH BASIC CONCEPTS Lecturer: Mohamed-Nur Hussein Abdullahi Hame WEEK 1 M. Sc in CSE (Daffodil International University)
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
Lesson 1 Computers and Computer Systems
Click Here to Begin. Objectives Purchasing a PC can be a difficult process full of complex questions. This Computer Based Training Module will walk you.
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
Sony PLAYSTATION 3 and the Cell Processor Dr. Hayden So Department of Electrical and Electronic Engineering 3 Sep, 2008.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
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.
Types of Computers and Computer Systems.
Network coding on the GPU Péter Vingelmann Supervisor: Frank H.P. Fitzek.
Games at Bolton Programming multiple cores Andrew Williams
XMT-GPU A PRAM Architecture for Graphics Computation Tom DuBois, Bryant Lee, Yi Wang, Marc Olano and Uzi Vishkin.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
CHAPTER 17 Creating an Interactive 3D Environment © 2008 Cengage Learning EMEA.
Router Architectures An overview of router architectures.
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
Ping-O-TronicColor TV GameTelstar (game console) The players controlled their paddles with dials attached directly to the machine. Additionally, as an.
Criteria and Selection of a Gaming Computer By Deanna, Helen and Isabelle.
Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich.
D. Beecroft Fremont High School Types of Computers & Computer Hardware.
AGENT SIMULATIONS ON GRAPHICS HARDWARE Timothy Johnson - Supervisor: Dr. John Rankin 1.
Sony PlayStation Company From: “PlayStation” By: Gabrielle Williams From: “PlayStation” By: Gabrielle Williams.
Modern Consumer Video Card Cheng-Han Du. What Is Video Card? A separated card to generate and output image to display. Not the integrated graphic processor.
Computer Graphics Graphics Hardware
By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts.
THE PARTS OF A PERSONAL COMPUTER Adrian St.Hill Faith Christian Academy Basic Computer Training August 2010.
Dragged, Kicking and Screaming: Multicore Architecture and Video Games.
GPU in HPC Scott A. Friedman ATS Research Computing Technologies.
1 © 2012 The MathWorks, Inc. Parallel computing with MATLAB.
Emergence of GPU systems and clusters for general purpose high performance computing ITCS 4145/5145 April 3, 2012 © Barry Wilkinson.
Computational Biology 2008 Advisor: Dr. Alon Korngreen Eitan Hasid Assaf Ben-Zaken.
PARALLEL COMPUTING overview What is Parallel Computing? Traditionally, software has been written for serial computation: To be run on a single computer.
Vector/Array ProcessorsCSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Vector/Array Processors Reading: Stallings, Section.
CENTRALISED AND CLIENT / SERVER DBMS. Topics To Be Discussed………………………. (A) Centralized DBMS (i) IntroductionIntroduction (ii) AdvantagesAdvantages (ii)
University of Washington What is parallel processing? Spring 2014 Wrap-up When can we execute things in parallel? Parallelism: Use extra resources to solve.
What is gaming console & platform? A game console is a device which outputs video signal into TV screen to display the video game. A platform is in which.
The Octoplier: A New Software Device Affecting Hardware Group 4 Austin Beam Brittany Dearien Brittany Dearien Warren Irwin Amanda Medlin Amanda Medlin.
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.
Unit 1—Computer Basics Lesson 1 Understanding Computers and Computer Literacy.
Playstation2 Architecture Architecture Hardware Design.
Keyboard Computer Mouse Input devices is the information you put into the computer.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
Parallel processing
Copyright © Curt Hill SIMD Single Instruction Multiple Data.
The Effects of Parallel Programming on Gaming Anthony Waterman.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Hybrid Parallel Implementation of The DG Method Advanced Computing Department/ CAAM 03/03/2016 N. Chaabane, B. Riviere, H. Calandra, M. Sekachev, S. Hamlaoui.
Threads by Dr. Amin Danial Asham. References Operating System Concepts ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, and GREG GAGNE.
Accelerating K-Means Clustering with Parallel Implementations and GPU Computing Janki Bhimani Miriam Leeser Ningfang Mi
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
CS120 Purchasing a Computer
Computer Graphics Graphics Hardware
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
GPU Architecture and Its Application
Game Systems, Personal Computers, and Hardware
Generalized and Hybrid Fast-ICA Implementation using GPU
Graphics Processor Graphics Processing Unit
High Performance Computing on an IBM Cell Processor --- Bioinformatics
CS 147 – Parallel Processing
Lecture 2: Intro to the simd lifestyle and GPU internals
Multithreaded Programming
Computer Graphics Graphics Hardware
Presentation transcript:

The Effects of Parallel Programming on Gaming Anthony Waterman

Topics to Discuss Are online games conceptually parallel? What portions of a game benefit from parallelization? Graphics Processing Units (GPUs) General-Purpose Computing on Graphics Processing Units (GPGPU) History of Parallel Programming in Consoles Parallelization = Game Development Success?

Online Client-Server Games are Conceptually Parallel Clients are identical programs with different data (SPMD - Single Program Multiple Data) Multiple client computers take input from a user, execute local game functions, and communicate necessary information to the master server Server takes information from the clients, executes local server-side functions, and communicate necessary information back down to the clients Server Client A Client B Client C Both the clients and the server contribute to as well as make up the overall state of the game

Additional Similarities Between Client/Server & Classical Parallel Programming Communication between processors/computers is time consuming Communication time can create bottle necks in both applications Both applications can use local sequential functions to compensate Client/Server Game Classical Parallel Application (Prime Number Sieve) Communication Bottleneck appears as: Game lag Sluggish response time Significantly slower completion time Solution: Local prediction of upcoming game state Locally calculated starting values

What portions of a game benefit from parallelization? Graphics Graphics in video games are not accomplished in the same way movies/videos are done In a video game, what the player sees is created as the game is played Processors must decide what color each pixel needs to be in order to show the correct image Graphics Processing Units (GPUs) are responsible for nearly all video game graphics

What portions of a game benefit from parallelization? Physics Many modern games have simulated physics Simulation Games are generally built around a complex physics environment What happens in the game is a direct result of a multitude physics equations and parameters

What portions of a game benefit from parallelization? Artificial Intelligence (AI) AI is an essential component to most video games AI programs generally involve large data sets and robust decision trees, making them prime candidates for parallel computation Another parallelizable function closely linked to AI is pathfinding Pathfinding uses decision tree algorithms to find the most direct/desired path by checking a vast number of possible paths

What portions of a game benefit from parallelization? World Generation Example: Minecraft On the PC version of Minecraft, maximum blocks that can be generated in a world is approximately 921,600,000,000,000,000. *This example is only to show the scale of what could be accomplished. Minecraft generates small portions of the world procedurally.

What portions of a game benefit from parallelization? Character Generation Custom created characters are common among RPGs Using the same slider type architecture, characters could be created using parallel computing This could be especially useful for generating multiple characters at once Machine created characters should be created intelligently

Graphics Processing Units (GPUs) A GPU is essentially a chip with tiny built-in processors or cores often referred to as shaders designed to process graphics Shaders are simplistic by design and are used to process large magnitudes of image data to create the desired picture Generally divided into two types (though others exist) Pixel Shaders – determine the color and attributes of a pixel Vertex Shaders – process 3D data in order to display it on a 2D screen The number of shaders vary by GPU, but the most recent console GPUs have 768 (Xbox One) and 1152 (PS4)

General-purpose computing on graphics processing units (GPGPU) What is GPGPU? GPGPU is the use of graphics processing unit’s inherent parallel structure to perform non- graphic calculations GPGPU is used in the #2 ranked supercomputer in the world, the Titan which takes advantage of Nvidia GPUs In gaming, GPGPU can help with some of the more computation intensive tasks such as AI and physics modeling PlayStation 4 is one console that is confirmed to use their GPU in physics simulation applications GPGPU applications are constrained by limited number of operations the GPU cores are able to process

General-purpose computing on graphics processing units (GPGPU)

History of Parallel Programming in Consoles First use of multiple processors Non-parallel applications (Late 1980’s) 4 th Generation of gaming consoles Super Nintendo Entertainment System (SNES) Sega Genesis/Mega Drive Used Central Processing Unit (CPU) + Graphics Processing Unit (GPU) + Sound Processor Distinct processors carried out specific tasks

History of Parallel Programming in Consoles Multiple Processors (Parallel applications) Sega Saturn (1994) (5 th Gen) First console to use 2 CPUs Game developers lacked the ability to program parallel game components Processors were primarily given separate tasks

History of Parallel Programming in Consoles Xbox 360 (2005) (7 th Gen) Tri-core CPU with shared memory GPU consisting of 48 cores PlayStation 3 (2006) (7 th Gen) Cell microprocessor using a "Power Processing Element" (PPE) and 6 available “Synergistic Processing Elements” (SPEs) First commercial use of the cell microprocessor architecture in any system, not consoles exclusively GPU consisting of 32 cores (Some graphics tasks handled by Cell CPU)

History of Parallel Programming in Consoles Current Generation of Consoles (8 th ) Xbox One (2013) (8 th Gen) CPU consists of 2 quad-core processors, 8 cores total GPU consisting of 768 cores *** PlayStation 4 (2013) (8 th Gen) CPU consists of 2 quad-core processors, 8 cores total GPU consisting of 1,152 cores ***

Recent Parallelization Popularity (CPU)

Recent Parallelization Popularity (GPU)

Not all games require parallelization in order to be successful Parallelization provides benefits: Better graphics More accurate simulations Smarter artificial intelligence Etc. Some games, most notably Independent or Indie games, succeed through captivating gameplay and story Parallelization is a tool that expands a developers options in terms of game design Parallelization = Game Development Success?

Questions?