Dragged, Kicking and Screaming: Multicore Architecture and Video Games.

Slides:



Advertisements
Similar presentations
Larrabee Eric Jogerst Cortlandt Schoonover Francis Tan.
Advertisements

Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
Types of Parallel Computers
Sony PLAYSTATION 3 and the Cell Processor Dr. Hayden So Department of Electrical and Electronic Engineering 3 Sep, 2008.
A many-core GPU architecture.. Price, performance, and evolution.
SYNAR Systems Networking and Architecture Group CMPT 886: Special Topics in Operating Systems and Computer Architecture Dr. Alexandra Fedorova School of.
OS Case Study: The Xbox 360  Instructor: Rob Nash  Readings: See citations in the slides.
Software Group © 2006 IBM Corporation Compiler Technology Task, thread and processor — OpenMP 3.0 and beyond Guansong Zhang, IBM Toronto Lab.
PhD/Master course, Uppsala  Understanding the interaction between your program and computer  Structuring the code  Optimizing the code  Debugging.
PlayStation 2 Architecture Irin Jose Farid Momin Quy Ngo Olivia Wong.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Introduction to Symmetric Multiprocessors Süha TUNA Bilişim Enstitüsü UHeM Yaz Çalıştayı
Programming the Cell Multiprocessor Işıl ÖZ. Outline Cell processor – Objectives – Design and architecture Programming the cell – Programming models CellSs.
Computer System Architectures Computer System Software
Cell Architecture. Introduction The Cell concept was originally thought up by Sony Computer Entertainment inc. of Japan, for the PlayStation 3 The architecture.
GPU – Graphic Processing Unit
Computer Science 1000 Terminology. The Language of Computer Science field is notorious for cryptic terms WYSIWYG GPU flops even recognizable terms may.
Unit 2 - Hardware Microprocessors & CPUs. What is a microprocessor? ● The brain of the computer, the microprocessor is responsible for organizing and.
Shared memory systems. What is a shared memory system Single memory space accessible to the programmer Processor communicate through the network to the.
Computer Graphics Graphics Hardware
Raster-scan system In addition to the central processing unit a special purpose processor called the video controller or display controller is used to.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
GPUs and Accelerators Jonathan Coens Lawrence Tan Yanlin Li.
Multi-threading basics
Parallel and Distributed Systems Instructor: Xin Yuan Department of Computer Science Florida State University.
Multi-core architectures. Single-core computer Single-core CPU chip.
Multi-Core Architectures
Multiprocessing. Going Multi-core Helps Energy Efficiency William Holt, HOT Chips 2005 Adapted from UC Berkeley "The Beauty and Joy of Computing"
University of Washington What is parallel processing? Spring 2014 Wrap-up When can we execute things in parallel? Parallelism: Use extra resources to solve.
1. 2 Pipelining vs. Parallel processing  In both cases, multiple “things” processed by multiple “functional units” Pipelining: each thing is broken into.
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.
Multi-core processors. 2 Processor development till 2004 Out-of-order Instruction scheduling Out-of-order Instruction scheduling.
Computer Software Types Three layers of software Operation.
Copyright © Curt Hill Parallelism in Processors Several Approaches.
Lecture#15. Cache Function The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that.
The Effects of Parallel Programming on Gaming Anthony Waterman.
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
Sony PlayStation 3 Sony also laid out the technical specs of the device. The PlayStation 3 will feature the much-vaunted Cell processor, which will run.
Computer performance issues* Pipelines, Parallelism. Process and Threads.
Debunking the 100X GPU vs. CPU Myth An Evaluation of Throughput Computing on CPU and GPU Present by Chunyi Victor W Lee, Changkyu Kim, Jatin Chhugani,
Kernel Synchronization in Linux Uni-processor and Multi-processor Environment By Kathryn Bean and Wafa’ Jaffal (Group A3)
Shouqing Hao Institute of Computing Technology, Chinese Academy of Sciences Processes Scheduling on Heterogeneous Multi-core Architecture.
Understanding Parallel Computers Parallel Processing EE 613.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
The Effects of Parallel Programming on Gaming Anthony Waterman.
Parallel IO for Cluster Computing Tran, Van Hoai.
SSU 1 Dr.A.Srinivas PES Institute of Technology Bangalore, India 9 – 20 July 2012.
Background Computer System Architectures Computer System Software.
Carnegie Mellon /18-243: Introduction to Computer Systems Instructors: Anthony Rowe and Gregory Kesden 27 th (and last) Lecture, 28 April 2011 Multi-Core.
Processor Level Parallelism 2. How We Got Here Developments in PC CPUs.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
Lecture 5. Example for periority The average waiting time : = 41/5= 8.2.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 4: Multithreaded Programming.
Computer Graphics Graphics Hardware
NFV Compute Acceleration APIs and Evaluation
Graphics Processor Graphics Processing Unit
Lynn Choi School of Electrical Engineering
CS427 Multicore Architecture and Parallel Computing
Microarchitecture.
Chapter 4: Multithreaded Programming
CPU Central Processing Unit
CPU Central Processing Unit
Unit 20 Software Part 2.
Unit 20 Software Part 2.
Windows Virtual PC / Hyper-V
Computer Graphics Graphics Hardware
Multicore and GPU Programming
Presentation transcript:

Dragged, Kicking and Screaming: Multicore Architecture and Video Games

Summary of Topics: Console Architecture Meaning of Paper’s Title/Why the Video Game Developer HATED the new Techniques/Problems The Future

Video Game Architecture For the most part, same as computer: Very operating system-linked. With PCs, almost always have been games. Mac Gaming is sparse, recently increased. Linux users have to compile/make their own. Console Games = primarily single-core processors…until 2005.

XBOX GHz “Xenon” triple-core PowerPC, 2 hardware threads per processor 256 MB main RAM 500 MHz ATI “Xenos” GPU -CPU accesses memory through the GPU! GPU has 10 MB RAM embedded frame buffer

XBOX 360 vs. Playstation 3 Triple-Core PPC Xbox MB, 700 MHz, GDDR3, shared by CPU and GPU CPU accesses memory through the GPU! GPU has 10 MB RAM embedded frame buffer Multicore Cell Engine PS MB total 256 MB 3.2 GHz XDR main RAM for the CPU 256 MB 700 MHz GDDR3 video RAM for the GPU

Multiple synergistic core units that attach to local stores, which then feed into DMAs going into the on-chip bus. One set-off PPE (Power Processing Element), with an L1 and L2 cache. Developers are having some serious problems with this model. Cell Architecture

Why So Unhappy? Delays, setbacks, ecetera = unhappy fans. Yu Suzuki; Saturn Virtua Fighter: “One very fast central processor would be preferable...I think that only one in 100 programmers are good enough to get this kind of speed out of the Saturn.” Not implementing parallelism, use of multicore architecture, etc = unhappy fans. If game developers utilize parallelism, the game will be delayed – 6 months, 1 year?

“I guess, if we have to.” Multicore Parallelism Implementations

Beginning Techniques Patches, so computers at least realize there’s multiple cores available. Patches, so computers at least realize there’s multiple cores available. Intel releases several multicore assists; especially in the beginning (coaxing people into it) Intel releases several multicore assists; especially in the beginning (coaxing people into it) Building Blocks Building Blocks Codeplay’s sieve compilers Codeplay’s sieve compilers Broke a program into “sieve blocks” where automatic parallelization could be utilized Broke a program into “sieve blocks” where automatic parallelization could be utilized

What do we do today? Multithreading from the ground up Decent (and fast!) parallelization One of two main ways: Every process on a different thread Dependencies galore~!

Main gaming thread, with branches coming off for specific parts of the game and splintering into other threads. Particularly beastly programs get their own multithreading implementations. Networking and I/O get their own threads. “Best” Multithreading Approach

CASE EXAMPLE: Kameo, which achieved 2.2~2.5 cores in 6mos. Rendering, decompression were on a separate thread Latter saved space on the DVD and improved load times for the game. Additionally, file I/O was separated onto two threads – one for reading, and one for decompressing. CASE EXAMPLE: Kameo

Best Processes for MT File decompression – improve load times. Rendering – separate update and render; can be problematic Physics Engine? – Physics/Update/Render, but latency issues. Graphical Fluff – always and forever. Artificial Intelligence - position independency of data, cache coherency

Cascade Project Fix dataflow by sending data from the parent to the child before the parent had completed! Respect dependencies, divided AI Resulted in reducing “the average time per frame from 15.5ms using a single thread to 7.8ms using eight threads.” 51% Speedup! Work in progress – CDML List constraints in language instead of working out later.

Multithreading is Tricky Threads can fight over the cache Dependencies Data corruption, deadlocks Bugs might not be apparent right away Debugging sets developers back

The Future ARM’s GPU/CPU Chip Intel’s Larrabee Chip Mobile Gaming Platforms laugh for now… Mobile Gaming Platforms laugh for now… Unreal 4 Engine – “We’re waiting for massively multicore processors.”

Thanks for watching! It’s just not that easy anymore.