Introduction to Data-Oriented Design.ppt

上传人:eastlab115 文档编号:376647 上传时间:2018-10-08 格式:PPT 页数:28 大小:1.80MB
下载 相关 举报
Introduction to Data-Oriented Design.ppt_第1页
第1页 / 共28页
Introduction to Data-Oriented Design.ppt_第2页
第2页 / 共28页
Introduction to Data-Oriented Design.ppt_第3页
第3页 / 共28页
Introduction to Data-Oriented Design.ppt_第4页
第4页 / 共28页
Introduction to Data-Oriented Design.ppt_第5页
第5页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、Introduction to Data-Oriented Design,So what is this Data-Oriented Design?,Its about on shifting focus to how data is read and written,Why should we care?,Performance,A read from memory takes 600 cycles at 3.2 GHz,A read from memory takes 40 cycles at 300 MHz,Performance,Disks (Blu-ray/DVD/HDD),Main

2、 Memory,L2 Cache,L1 Cache,CPU / Registers,Latency,:(,600 cycles,40 cycles,1 2 cycles,Multithreading,Object,Read?,Write?,Object,update(),Object,Cannot multithread without knowing how data is touched Adding locks always protects data not code,Read?,Write?,Read?,Write?,Offloading to co-unit,?,SPU/GPU/A

3、PU,?,If data is unknown hard/impossible to run on co-unit,Better design,Data focus can lead to isolated, self-contained, interchangeable pieces of data and code This can make it easier to test data and code in isolation,Example - OOD,class Bot .Vec3 m_position;.float m_mod;.float m_aimDirection;.voi

4、d updateAim(Vec3 target)m_aimDirection = dot3(m_position, target) * m_mod; ,icache-miss,data-miss,Unused cached data,Very hard to optimize!,Example - OOD,void updateAim(Vec3 target) m_aimDirection = dot3(m_position, target) * m_mod; ,Lets say we call this code 4 times (4 diffrent Bots),iCache 600,m_

5、position 600,m_mod - 600,aimDir 100,20 cycles,iCache 600,m_position 600,m_mod - 600,aimDir 100,iCache 600,m_position 600,m_mod - 600,aimDir 100,iCache 600,m_position 600,m_mod - 600,aimDir 100,7680,Example - DOD,Design ”back to front” and focus on the output data Then add the minimal amount of data

6、needed to do the transform to create the correct output,Example - DOD,void updateAims(float* aimDir,const AimingData* aim,Vec3 target, uint count) for (uint i = 0; i positionsi,target) * aim-modi; ,Only read needed inputs,Write to linear array,Loop over all the data,Actual code unchanged,What has ch

7、anged?,Code separated,Example - DOD,void updateAims(float* aimDir, const AimingData* aim, Vec3 target, uint count) for (uint i = 0; i positionsi, target) * aim-modi; ,iCache 600,positions 600,mod - 600,aimDir 100,20 cycles,1980,Data layout OOD vs DOD,pos0,mod0,aimDir0,pos0,Pos1,mod1,aimDir1,pos0,pos

8、0,pos0,pos1,pos1,pos1,pos1,pos2,pos2,pos2,pos2,pos3,pos3,pos3,pos3,mod0,mod1,mod2,mod3,aimDir0,aimDir1,aimDir2,aimDir3,pos0,pos0,pos0,Each color block is one 128 byte cache line,Its all about memory,Optimize for data first then code Most code is likely bound by memory access Not everything needs to

9、be an object,Remember,We are doing games, we know our data. Pre-format. Source data and native data doesnt need to be the same,Example: Area Triggers,position,position,position,position,next,position,position,position,position,next,position,position,position,position,next,Source data (Linked List),N

10、ative Data (Array),position,position,position,position,position,position,position,position,position,position,position,position,position,position,count,Example: Culling System,Old System,New System (Linear arrays and brute force),3x faster, 1/5 code size, simpler,Data Oriented Design Delivers:,Better

11、 Performance,Often simpler code,More parallelizable code,Questions?,Links,Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP) http:/ Practical Examples in Data Oriented Design http:/ The Latency Elephant http:/seven-degrees-of- Pitfalls of Object Oriented Programming ht

12、tp:/seven-degrees-of- Insomniac R&D http:/ CellPerformance,Image credits,Cat image: http:/ photo by: Arinn capped and submitted by: Andy Playstation 3 and Playstation 2 Copyright to Sony Computer Entertainment Xbox 360 Image Copyright to Microsoft “WTF” Code quality image: Copyright by Thom Holwerda http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1