07年还是DX9时代谈3:1架构对游戏影响

互联网 | 编辑: 张惠俊 2007-04-17 00:30:00转载

X1950PRO为何被称作36管线的显卡?在很多最新的游戏大作中,同样是1000-1500元的显卡为何性能差距之大令人瞠目结舌?DX10能否在07年的主流游戏中一展身手?相信很多DIYER都有上述的一个或几个疑问,今天我们就来谈谈大家关心的问题以及07年游戏的发展趋势。

通过数年的分析和不计其数的应用模拟,ATI的工程师们认为在未来游戏中显卡Pixel Shader部分的ALU算术指令所占的比例将越来越大,TMU纹理贴图指令所占的比例将缩小。在ATi针对Pixel Shader内部负载的调查显示:在2006年在Pixel Shader操作中Arithmetic操作的负荷超过了80%。这种趋势已经在近期的几个游戏大作中有所体现,比如时下流行的彩虹6号、极品飞车10《卡本山谷》以及细胞分裂4等等。

所谓3:1架构就是指Arithmetic:Texture=3:1或是ALU:TMU=3:1。(Arithmetic指算术运算,由ALU完成;Texture也可以指纹理运算,由TMU完成).在极品飞车9《最高通缉》时代,N卡在游戏中的表现要略好于同档次的A卡(X1800以前的产品),一些网友甚至抛出了EA刻意对NVIDIA产品进行了优化的言论。而到了极品飞车10《卡本山谷》,情况彻底改变,在和ATI X19XX/X16XX系列显卡的对阵中NVIDIA显卡几乎完全败下阵来,近期的当红小生GF7600GT在1280*1024的分辨率下,如果特效全开最高甚至不能保证游戏的基本流畅。不过,最近发布的G80是一个例外,当然这和G80所采用的统一着色器架构(使得G80的Pixel Shader数量远远超过G7X)以及频率超高的Pixel Shader是分不开的。反观ATI方面,这一代的R580/RV560/RV570等GPU在极品10中的表现相当出众,究其原因主要是因为ATI在RV530/RV560/RV570/RV580中增加了Pixel Shader内部ALU算术运算器的数量。

实际上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的算术指令参数来配合纹理贴图,就能做出千变万化的效果。


为了对比ATI的3:1架构,我们先来看看过去的显卡对流水线定义:传统流水线定义是“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的架构,顺应了近期主流游戏大作的需求。以RV530为例,它拥有4条真正意义上的流水线,只不过ALU、TMU以及ROP形成3:1:1的关系。具体而言,X1600有12个ALU,而TMU和ROP却只有4个,因此这款GPU核心在一个周期内可以进行12次Arithmetic运算,输出4个纹理和4个像素。也就是说,X1600在Pixel Shader运算上等同于12管线的显卡,但在纹理填充率和像素填充率上等同于4流水线显卡。正是因为这个道理,很多媒体在宣传X1650XT/X1950XT的时候称其为24管线/48管线显卡。
 
日前已经有技术爱好者抓取了NFS10的shader出来分析,结果表明该游戏Pixel shader中的ALU:TMU指令比例高达10:1或者更多,这时专为高负荷ALU应用而设计的R580/V570/RV530架构(3:1架构)就将发挥最大威力,将对手远远甩在身后。在未来,这种ALU高复合的游戏也将越来越多,3:1构架的优势也将更加明显。现在,我们再掉过头来看看同样是定位于1000元之上的GF7900GS与X1950PRO在极品9、10中的表现。


极品9

极品10

纵观测试数据,在极品9中两款显卡的表现相差不是很大。而到了场景更加复杂的极品10中,X1950PRO将GF7900完全抛于脑后。尤其是在1280*1024以及1600*1200的分辨率下,GF7900GS的速度已经丧失了可玩性。对于使用20寸以上液晶的玩家,如果选择了G80以外的N卡,在运行极品10这种最新大作的时候,画质和游戏速度就如同鱼和熊掌,不可兼而得之了。

回顾历史,DX9.0C的游戏普及用了2年多的时间,而如今VISTA刚刚露面,DX10游戏数量尚在个位数,因此基于3:1架构的显卡完全可以服役到2008年。也许有人会说,那我们买显卡不会只用1年吧?其实只要看看昔日的6800ULTRA就可以想象现在的GF8800GTX在2年后的表现了。目前DX10的显卡价格全部在3000元以上,绝非常人所能承受。我们是选择一款昂贵且过于超前的产品还是选择经济实惠的产品相信大家已经心中有数。

07年三大图形引擎,EA的3D引擎,育碧以及虚幻的新引擎都将是充分发挥3:1架构的Dx9引擎,毕竟DX10离实际软件应用还太远,诸如Crysis这样的DX10游戏也只是在开发时期用到了DX10的技术,表现出来的效果距离DX9相差不大,更值得注意的是Crysis最快也才是明年3季度末才会出来,因此DX10的应用尚早,游戏引擎和显卡核心的架构在DX9游戏中充分发挥,才是明年的重点。在G80和R600的衍生品没有上市之前,选择统一着色器架构的成本远远高于3:1架构。笔者希望NVIDIA尽快拿出相应产品,不要重蹈昔日FX5700之覆辙,同时也提醒20寸以上液晶的用户,在挑选显卡的时候需要格外注意:不是每一款千元以上的显卡都可以满足你的要求。

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑