- 1、本文档共54页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chapter10-流水线优化
Chapter 10. Pipeline Optimization
Chapter 10. Pipeline Optimization
流水线优化
流水线优化
金小刚 Email: jin @cad.zju.edu.cn
金小刚 Email: jin @cad.zju.edu.cn
浙江大学CADCG国家重点实验室
浙江大学CADCG国家重点实验室
简 介
简 介
“We should forget about small efficiencies, say about
97% of the time: premature optimization is the root of all
evil.” -Donald Knuth
绘制图象时,采用的是一个基于流水线的结构。
包含三个概念层:application, geometry,
rasterizer.
流水线结构决定了其中最慢的一层永远是瓶颈,
也是我们优化中最应重视的。
优化绘制流水线与优化流水线处理器类似,主要
包含两步:
(1). 找出流水线的瓶颈
(2). 优化该层。如果性能仍未达到要求,则重复
第一步。
瓶颈的位置是随不同帧动态变化的。在某一帧,
由于有大量的细小三角形需要绘制,几何层可能
是瓶颈;而在另一帧,由于三角形覆盖了屏幕的
大半部分,光栅化层可能变成瓶颈。
利用流水线构造的另一个要素
利用流水线构造的另一个要素
当最慢的层不能再优化时,则尽量让其它层满负
荷工作,直至速度接近最慢的层。
这不会改变系统的性能,因为最慢层的速度没有
变化。例如,假设应用层为瓶颈,耗时50毫秒,
其它层耗时25毫秒。这意味着在不改变绘制流水
线速度的情况下,几何和光栅化层可以充分利用
这50毫秒时间。我们可以采用更精致的光照明模
型、加入阴影、加入反射等来提高绘制的真实程
度。
把流水线划分成application, geometry and
rasterizing三层只是概念上的划分。根据系统的
结构,真正的流水线层可能与此不同。例如,假
如应用层和几何层都在单个CPU上实现,则优化
时应把他们当成一个层来看待。
在优化流水线过程中,应先尽量提高绘制速度,
然后让不是瓶颈的层耗费与瓶颈层一样的时间。
在流水线优化时,
永远记住“Know Your Architecture” 。
找出瓶颈
找出瓶颈
优化过程是一个非常费时的过程,因此对图形流
水线中的每一层都进行优化是不合适的。
(1). 如果对每一层都进行优化,整个绘制性能肯
定能得到提高,但需要耗费程序员大量的时间,
并有可能对绘制精度进行不必要的折衷。
(2). 优化每一层的另一个缺点是我们不能确定流
水线中的哪些层不是瓶颈层。我们可以在不影响
整体性能的情况下,充分利用这些非瓶颈层来得
到更高的绘制质量。
优化流水线的第一步为找出瓶颈
优化流水线的第一步为找出瓶颈
对于任意给定的一帧,总是存在一个瓶颈,而这个瓶颈决定了
绘制的速度。我们的目的是查到这个瓶颈并消除它。
瓶颈不能简单地通过对进程计时来找到。因为这样得到的是从
绘制开始到结束,也即数据经过整个流水线的时间。
比较合理的方法为在源代码的某处开始计时(例如,在一清屏
操作之后),并在该位置下次被执行到时终止计时。这样我们
可以得到瓶颈层的执行时间,但并非瓶颈位置。
由于绘制一幅图象的总时间为瓶颈层的时间,而瓶颈可以是应
用
文档评论(0)