New Dog, Old Tricks: Running Halo 3 Without a Hard Drive Mat Noguchi BUNGIE Studios

Slides:



Advertisements
Similar presentations
Multi-Level Caches Vittorio Zaccaria. Preview What you have seen: Data organization, Associativity, Cache size Policies -- how to manage the data once.
Advertisements

Lecture 8: Memory Hierarchy Cache Performance Kai Bu
Optimization on Kepler Zehuan Wang
Copyright ©: Lawrence Angrave, Vikram Adve, Caccamo 1 Virtual Memory III.
ABC HFG JKLW OPQR NTU VS YZ.
MCTS GUIDE TO MICROSOFT WINDOWS 7 Chapter 10 Performance Tuning.
CSE506: Operating Systems Block Cache. CSE506: Operating Systems Address Space Abstraction Given a file, which physical pages store its data? Each file.
Lecture 14 I/O Devices & Hard Disk Drives. vgetmem only from private heap.
CS4432: Database Systems II Data Storage - Lecture 2 (Sections 13.1 – 13.3) Elke A. Rundensteiner.
1 Advanced Database Technology February 12, 2004 DATA STORAGE (Lecture based on [GUW ], [Sanders03, ], and [MaheshwariZeh03, ])
CS 3013 & CS 502 Summer 2006 Scheduling1 The art and science of allocating the CPU and other resources to processes.
©Brooks/Cole, 2003 Chapter 5 Computer Organization.
Chapter 3.5 Memory and I/O Systems. Memory Management 2 Only applies to languages with explicit memory management (C, C++) Memory problems are one of.
Disks.
Chapter 3.7 Memory and I/O Systems. 2 Memory Management Only applies to languages with explicit memory management (C or C++) Memory problems are one of.
Overview: Memory Memory Organization: General Issues (Hardware) –Objectives in Memory Design –Memory Types –Memory Hierarchies Memory Management (Software.
1 CS222: Principles of Database Management Fall 2010 Professor Chen Li Department of Computer Science University of California, Irvine Notes 01.
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.
Secondary Storage Management Hank Levy. 8/7/20152 Secondary Storage • Secondary Storage is usually: –anything outside of “primary memory” –storage that.
 Contents 1.Introduction about operating system. 2. What is 32 bit and 64 bit operating system. 3. File systems. 4. Minimum requirement for Windows 7.
Introduction to Database Systems 1 The Storage Hierarchy and Magnetic Disks Storage Technology: Topic 1.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Transactions and Reliability. File system components Disk management Naming Reliability  What are the reliability issues in file systems? Security.
CS4432: Database Systems II Data Storage (Better Block Organization) 1.
Physical Memory By Gregory Marshall. MEMORY HIERARCHY.
Animation. Pre-calculated Animation Do more now, less later.
MCTS Guide to Microsoft Windows 7
CS 111 – Aug – 1.3 –Information arranged in memory –Types of memory –Disk properties Commitment for next day: –Read pp , In other.
Ch 6. Performance Rating Windows 7 adjusts itself to match the ability of the hardware –Aero Theme v. Windows Basic –Gaming features –TV recording –Video.
Next-Gen Asset Streaming Using Runtime Statistics David Thall Insomniac Games.
CSE 381 – Advanced Game Programming Loading & Caching Data.
Chapter 3.5 Memory and I/O Systems. 2 Memory Management Memory problems are one of the leading causes of bugs in programs (60-80%) MUCH worse in languages.
1  2004 Morgan Kaufmann Publishers Multilevel cache Used to reduce miss penalty to main memory First level designed –to reduce hit time –to be of small.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Chapter 2: Memory.
CSE 241 Computer Engineering (1) هندسة الحاسبات (1) Lecture #3 Ch. 6 Memory System Design Dr. Tamer Samy Gaafar Dept. of Computer & Systems Engineering.
Computer Architecture Lecture 27 Fasih ur Rehman.
Unit 2 - Hardware Data Storage. How is data stored? ● Data is stored as a combination of 0’s and 1’s (bits). We will learn more about this later! ● Bits.
12/18/20151 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam.
Disk Basics CS Introduction to Operating Systems.
Multilevel Caches Microprocessors are getting faster and including a small high speed cache on the same chip.
CS 101 – Sept. 28 Main vs. secondary memory Examples of secondary storage –Disk (direct access) Various types Disk geometry –Flash memory (random access)
Memory Hierarchy: Terminology Hit: data appears in some block in the upper level (example: Block X)  Hit Rate : the fraction of memory access found in.
Am I RAM Or am I ROM?.
CS333 Intro to Operating Systems Jonathan Walpole.
PROOF Benchmark on Different Hardware Configurations 1 11/29/2007 Neng Xu, University of Wisconsin-Madison Mengmeng Chen, Annabelle Leung, Bruce Mellado,
File System Performance CSE451 Andrew Whitaker. Ways to Improve Performance Access the disk less  Caching! Be smarter about accessing the disk  Turn.
Maximizing Performance – Why is the disk subsystem crucial to console performance and what’s the best disk configuration. Extending Performance – How.
Lecture Topics: 11/22 HW 7 File systems –block allocation Unix and NT –disk scheduling –file caches –RAID.
Improving Performance using the LINUX IO Scheduler Shaun de Witt STFC ISGC2016.
1 Query Processing Exercise Session 1. 2 The system (OS or DBMS) manages the buffer Disk B1B2B3 Bn … … Program’s private memory An application program.
Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics Organisation.
Lecture 17 Raid. Device Protocol Variants Status checks: polling vs. interrupts Data: PIO vs. DMA Control: special instructions vs. memory-mapped I/O.
Lecture 3 – MapReduce: Implementation CSE 490h – Introduction to Distributed Computing, Spring 2009 Except as otherwise noted, the content of this presentation.
Processor support devices Part 2: Caches and the MESI protocol
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
New Dog, Old Tricks: Running Halo 3 Without a Hard Drive
MCTS Guide to Microsoft Windows 7
CSC 4250 Computer Architectures
CS 554: Advanced Database System Notes 02: Hardware
CSE451 I/O Systems and the Full I/O Path Autumn 2002
Operation System Program 4
Lecture: DRAM Main Memory
CS 140 Lecture Notes: Technology and Operating Systems
Lecture: DRAM Main Memory
Chap. 12 Memory Organization
Morgan Kaufmann Publishers Memory Hierarchy: Cache Basics
Secondary Storage Management Brian Bershad
Secondary Storage Management Hank Levy
File System Performance
Lecture Topics: 11/20 HW 7 What happens on a memory reference Traps
Presentation transcript:

New Dog, Old Tricks: Running Halo 3 Without a Hard Drive Mat Noguchi BUNGIE Studios

Loading... Done: How to Think About Content Mat Noguchi BUNGIE Studios

Next gen is more More CPU: 6x or more More RAM: 8x More GPU: bajillion

Next-gen is more I/O bound I/O transfer speed: 2x I/O latency: ~1x DVD size: ~1x

What is Next-gen streaming? For players –Minimal load times –Wide and deep content For the platform –Run (well) on all configurations For developers –Designers –Programmers –Producers

Overview High level I/O design What to load Loading RTM!

Case study: The Storm Total content size: 1,226 MB Available content memory: MB

The Storm statistics YAY. Total size: 1,225 MB DVD total required size: 465 MB HDD total required size: 395 MB DVD zone-set bsps only required size: 327 MB HDD zone-set bsps only required size: 256 MB DVD maximum required size: 260 MB HDD maximum required size: 209 MB

040_voi: The Storm MB of memory –[Higher than that for shipping, but necessary to run test builds. DAMN YOU FIXED MEMORY SIZE!]

PART 1: HIGH LEVEL I/O DESIGN

Goals Minimum quality guarantees Maximize I/O performance Globally optimizable

Policies One system to rule content I/O Usage based optimizations

DVD vs. HDD DVD –6-18 MB/s – ms seek times HDD –17-30 MB/s –10-30 ms seek times

DVD vs. HDD DVDHDD Sequential I/O 12 MB/s17 MB/s Random I/O ~850 kB/s 250 ms seeks ~6290 kB/s 37 ms seeks Reliability VariableConstant

DVD vs. HDD DVDHDD Sequential I/O Good Random I/OBAD!Okay ReliabilityVariableConstant

DVD vs. HDD DVDHDD Sequential I/O Good ReliabilityVariableConstant

Goals: Maximizing I/O performance MINIMIZE SEEKS!

Classifying content by access Global data: 49.2 MB –Always loaded –Metadata –References to resources Resources: 1,177 MB –Everything else –Can be unloaded

Classifying resources by access Required –Required for correct behavior Textures (N-1 mipmaps) Geometry Animation Optional –More detailed/richer experience Highest texture mipmap

Goals: Minimum quality guarantees Required resources –HARD CONSTRAINT! –Assume this data is available Optional resources –Flavor! –Check this data is available

I/O behavior by resource Required resources –Synchronous/Blocking Optional resources –Asynchronous/Background

Sound... Streaming sound implies Random I/O Is sound Optional? –HDD: Yes –DVD: Not exactly

Sound... the big giant screw (again!) 566 MB!

Sound... the big giant screw (again!) Why so big? –Everything makes a sound –Repetition is annoying

What sound can we stream? Not a lot for DVD –Streams == Seeks –Seeks == BAD! Stream sounds resilient to latency –Music –Mission dialogue –Multiplayer announcer Everything for HDD

How can we cull sound? Accept repetition … except for footsteps … and dialogue (crap!)

Why is dialogue so bad? Repetition is annoying … unless you are making a point Such as: repetition is annoying

AI dialogue tree branch: Praise

Full AI dialogue tree (The full dialogue tree makes PowerPoint choke) –97 top vocalizations –143 first level vocalizations –23 second level vocalizations

Full AI dialogue tree size 295 MB(!), lines Count, Size by specializations –130 MB, 9331 lines for top vocalizations –143 MB, 1214 lines for first level vocalizations –22 MB, 1214 lines for second level vocalizations

Shrinking AI dialogue Remove virtually all dialogue Add back –Involuntary dialog –Sound designer specified dialog “Take it!” “Found enemy!” “Where did they go?”

This is for DVD-only! HDD will always sound great!

So... what?

Checkpoint... The Storm: DVD Working Set Available memory: MB DVD working set : MB –Global data: 49.2 MB –Required resources: 465 MB Textures: MB Geometry: 138 MB Sound: 70.5 MB Animation: 39.9 MB

PART 2: WHAT TO LOAD

[Mapping resource usage to position]

[MAP TEMPLATE] NOT DRAWN TO SCALE!

Mapping resource usage to position NOT DRAWN TO SCALE!

Mapping resource usage to position Break up into sections, a.k.a BSPs

Mapping resource usage to position

Multiple bsps = Zone set Example: “Intro”

Multiple bsps = Zone set Example: “First Encounter”

Zone set activation volumes Loading…Loading… done Active zone set: “Intro” Active zone set: “First Encounter”

Checkpoint... The Storm: DVD Working Set Available memory: MB DVD working set: MB –Global data: 49.2 MB –Max zone-set resources: MB –Sandbox resources: MB

[Mapping resource usage more automatically]

Scarab

Ghost

Brute

Sandbox resources NOT DRAWN TO SCALE!

Restrict sandbox resources per zone set Zone set: “Intro” Disallow:

Restrict sandbox resources per zone set Zone set: “Intro”

Checkpoint... The Storm: Working Set Available memory: MB DVD working set: MB –Global data: 49.2 MB –Max zone-set resources: MB Available memory > DVD working set Hooray!

Checkpoint... The Storm: Working Set HDD working set: MB –Global data: 49.2 MB –Max zone-set resources: MB

PART 3: LOADING... Finally!

Canonical streaming model Streaming (I/O) Game Thread Render Thread Resourc e Access State

Canonical streaming conflicts Streaming (I/O) Game Thread Render Thread Resourc e Access State

Halo 3 streaming model Game Thread Render Thread Cached Resourc e Access State Streaming (I/O) Resourc e Access State

Halo 3 streaming model Game Thread Render Thread Streaming (I/O) Resourc e Access State Cached Resourc e Access State

Resource access state resourceaddress ……

Generic loading process Determine working set Load Publish

Generic using process Grab published access object Run frame/tick/loop Release published access object

Generic loading process

Generic using process

Block for required resources

Required loading process Determine working set Load Publish

Required loading process Determine working set from active zone set Blocking Load required resources Publish

Transitioning between zone sets

Zone set transitions

Intro First Encounter

Intro -> First Encounter Loading… done

Checkpoint... The Storm: Available memory Final build, HDD –Available memory: MB –HDD Max required memory: MB HDD Available memory: 132 MB!

Generic I/O scheduler Scheduler I/O Request I/O Request s I/O Request

Pop Quiz! Optimal # of I/O in flight –1–1 –2–2 –6–6 –Infinity –None of the above –I don’t know

Pop Quiz! Optimal # of I/O in flight: Zero

Pop Quiz! Optimal # of I/O in flight: 1

Generic I/O scheduler Un-bad generic solution Not-good specific solution

Optional I/O scheduler One I/O at a time Fast changeover Priority

Optional I/O scheduler [fix] Desired [a,b,c] Desired [a,b,c]

Optional I/O scheduler [fix] Desired Loaded [c, d, e] Loaded [c, d, e]

Optional I/O scheduler [fix] Desired Loaded To-load [a,b] To-load [a,b]

Optional I/O Scheduler Desired resources –{A, B, C} Loaded resources –{C, D, E} To-load resources –{A, B} –Desired - Loaded

Optional I/O scheduler [fix] Scheduler I/O Request Desired {…} Desired {…} Loaded {…} Loaded {…}

Optional I/O priority [fix] Scheduler I/O Request Desired Soon {…} Desired Soon {…} Loaded {…} Loaded {…} Desired Later {…} Desired Later {…} Desired Now {…} Desired Now {…}

Optional I/O optimizations Bounded set == bit vector Bit vector ordered by optimal load order Minimum seeks!

PART 4: RTM!

Total game size Total: GB –Main menu: MB –Multiplayer: 4.27 GB –Campaign: GB

Shared resource files Commonly used resources in global files –Multiplayer & Campaign –Campaign only

Total game size, shared maps Total: 7.07 GB –Main menu: 82.0 MB –Shared: 927 MB –Multiplayer: 1.67 GB –Campaign: 5.37 GB

FULL GAME OPTIMIZATION: FRANKENBUILD Super Ninja Art!

Optimizing map layout Determine resource “usage” –“Usage” == all zone sets is it used in Package resources with identical “usage”

Optimizing single map layout

Optimizing shared map layout Determine shared resource “global usage” –“Global usage” == all maps and zone sets is it used Package shared resources with identical “global usage”

Optimizing shared map

Relink map files Obvious diagram (and SmartArt spew)

Total game size, Frankenbuild Total: 5.36 GB –Main menu: 52.6 MB –Shared: 704 MB –Multiplayer: 1.06 GB –Campaign: 3.55 GB

Don’t throw stuff away! that you need... later Don’t unload shared resources –Store disk location with each resource before loading next map –Match resources based on disk location before loading more data Preload map resources from main-menu –Load resources for next map, then associate disk location for each resource

Halo 3: Optimized for Hard drive Framework for content usage Minimize or eliminate load times Guaranteed gameplay experience

Target Streaming for Massive Damage