正文内容 评论(0)
[黄金分割 3:1构架为游戏而生]
所谓3:1架构就是指Arithmetic:Texture=3:1或是ALU:TMU=3:1。(Arithmetic指算术运算,由ALU完成;Texture也可以指纹理运算,由TMU完成),目前,R580/RV530/RV560/RV570都采用了这种构架。虽然支持DX10的VISTA操作系统已经发布,但支持DX10的游戏还没有真正出现,所以DX9游戏还将伴随我们很长一段时间,使得 ATi 3:1构架成为现阶段游戏最为理想的构架方案。
目前根据一些发烧友对极品飞车10的shader分析,结果表明该游戏Pixel shader中的ALU:TMU指令比例高达10:1或者更多,这时专为高负荷ALU应用而设计的R580/570/RV530架构(3:1架构)就将发挥最大威力。在未来,这种ALU高复合的游戏也将越来越多,3:1构架的优势也将更加明显。
实际上ATI这种强化ALU算术运算器的设计理念也符合DirectX本身的发展趋势。Pixel Shader流水线的功能就是在几何处理和转换完成后为每个象素“画”上它的色彩。基本操作可以分为三部分:一个就是按照贴图坐标去纹理贴图里读到颜色数据(Texture Fetch),这一步属于TMU的工作。第二个是把读到的数据和前面算好的光照强度混合进行一系列的运算,得到这个像素的颜色(Texture Blending),这个步骤主要在ALU里运算完成。最后就是把它和屏幕上当前像素的颜色进行一定的处理,然后画到这个像素上(Alpha Blending)。简单的而言,Pixel Shader就是根据需要对贴图进行处理,或者就是说通过一系列的运算来改变贴图的形状,色彩等参数。
ALU算术指令和TMU纹理贴图指令都属于Pixel Shader流水线的操作,在固定流水线时代它们分别是片段着色过程的第一和第二步。但在DX9的高度可程式化Shader中,这两个步骤现在已经没有先后之分了。它们之间的区别在于,纹理拾取(Texture Fetch)本身涉及到对外部存储器(显存)的读写,性能容易受到外部资源影响,在GPU并行能力和工作频率都迅猛发展的今天,显存将会成为一个严重的瓶径。例如,一个工作频率为500MHz的GPU,它内部的单个时钟周期长度在2ns以下,但即使是GDDR3 1000MHz的显存,延迟也高达几十ns,这意味着从GPU向DRAM发出存储指令开始到第一个数据包送出之间会有几十个ns的时间差,换算成GPU内部的时钟周期,就是几十上百个,如果不是因为多执行诸架构能隐藏一定的延迟,这种状况将会给GPU带来灾难性的停顿。而大部分常用的ALU算术指令如mul,add,dp3等都能在单个ALU周期内完成,是纯计算性的值,不涉及DRAM存储,自然也就节约了宝贵的传输带宽,并且延迟可以忽略不记。所以,最近的游戏,都把提高画面表现的重点放到了Pixel Shader渲染的ALU运算得到象素颜色的部分。我们只要改变相应的各种ALU的算术指令参数来配合纹理贴图,就能做出千变万化的效果。
传统流水线定义是“Pixel Shader(像素着色器)+TMU(纹理单元)+ROP(光栅化引擎,ATi将其称为Render Back End)。从功能上简单的说,Pixel Shader完成像素处理,TMU负责纹理渲染,而ROP则负责像素的最终输出,因此,一条完整的传统流水线意味着在一个时钟周期完成1个Pixel Shader运算,输出1个纹理和1个像素。以GeForce 6600LE为例,一块传统的4流水线构架显卡(4X1)在一个时钟周期内完成4个Pixel Shader运算,输出4个纹理和4个像素。流水线=Pixel Shader+TMU+ROP,这一概念一直得到GPU厂商的拥护。然而随着技术的发展,3D游戏开始有明显的取向性,此时这一平衡也自然被打破。
R580/RV530/RV560/RV570正是顺应了这一需求的设计,它们在保持TMU(Texture Mapping Unit,纹理映射单元)数量不变的情况下,将Pixel Shader的另一个部分--ALU算术运算器增加了三倍,构成ALU:TMU=3:1的架构,顺应了近期主流游戏大作的需求。
本文收录在
#快讯
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...