2004上半年,显卡市场什么是你最期待的?我想一定会是Nvidia 6800Ultra和ATi X800!PCHOME评测室就将为从技术角度全面分析这两款GPU的特性。
烽烟四起 显卡巅峰决战——Nvidia 6800Ultra和ATi X800技术对比
2004上半年,显卡市场什么是你最期待的?我想一定会是Nvidia 6800Ultra和ATi X800!PCHOME评测室就将为从技术角度全面分析这两款GPU的特性。
从身世说起
1.ATi X800系列辉煌的延续
大家真正开始关注ATi的显卡是从ATi 9xxx开始的,ATi的性能随着它的驱动的成熟,所谓的兼容性问题一点点从我们记忆中消退。而ATi的显卡的性能画质却成为广大玩家津津乐道的话题,ATi一度被奉为画质显卡的典范。现在ATi通过它的9xxx产品线在高中低三段消费市场全面同Nvidia竞争,原来Nvidia的老大宝座正处于风雨缥缈中。ATi为保持它的产品优势,继续在高端不断前行,如今又推出了X800系列产品,同9800XT相比X800的开发带好提高了很多,从R370提升到了R420,不过R420却是一款R370改进而来的产品,不过和9800pro和9800XT的关系不同,显然R420不会是R370的频率提升版,但它延续了9800系列的成功构架,而且事实证明这样设计还是非常成功的,不仅产品更新速度快,而且相对来说开发成本也低,同时也降低了开发风险。下表显示了9800系列和X800系列的主要区别。
相比9800系列X800的晶体管提升了5000万,不过大家不应该太担心它的热量问题,因为RADEON X800系列图形处理器采用了最先进的0.13微米low-k铜制制程,这个制程比9800系列所运用的0.15制程技术每单位约高出33%晶体管。并且,这会让晶体管多跑快100 MHz,而且完全不会增加电力和热量的负荷,因此我们可以看到X800的散热装置相比9800XT那个并没有“提升”很多。延续到功率方面X800的功率提升也不多,X800pro全速工作的功率为75w,这相对于Nvidia的显卡的超级功率要好了很多很多。而在反锯齿上ATi仍然沿用了它一直使用的“多采样”技术,它通过“量”换质的方式,相对来说对于显卡运算的负荷不如“超采样”方式那么厉害。
2.Nvidia 6800Ultra系列推倒一切从头再来
相对于ATi如今的沉稳,面对对手的高压Nvidia再也坐不住了,他们急需一款可以压制对手的高端产品,以在技术上保持领先。由于Nvidia的显卡有点接近于CPU市场的Intel,对于频率它们是提升狂人,但是对于显卡,提升频率并不是唯一的出路,因此一款可以打倒对手的新产品Nvidia选择全新设计,它就是6800系列。
相对于原先Nvidia的最高端产品5950Ultra,6800的晶体管数量的提升非常惊人提高了几乎50%,而他的核心频率却从5950的475MHz下降到了400MHz,但是来自官方的声音,它的性能却提升了一倍,显然他的核心和5950的nv38完全没有任何关系,不然就不能解释降频却提高了50%的性能这一“不合常理”的现象了。性能的巨大提升应该就是来源自提升一倍的着色管线以及提升将近一倍的三角形生成能力。不过功率方面仍然是Nvidia的心病,这块6800Ultra的功率达到了惊人的120w,官方居然推荐使用480w的开关电源!这意味着要使用它,我们现在配备的绝大多数电源都要被替换成500w这样的大功率电源否则很难使用之。相比较它的对手X800的75瓦提升的幅度是非常厉害的,当然这和它更惊人的2亿2200万的晶体管数密不可分的。
在反锯齿技术上Nvidia采用了大小通吃的方法,它支持:超采样、多采样、复合方式,相对ATi只支持多采样的技术组合上更灵活,可以根据具体机器的配置情况获得最好性价比的画质水准。
究竟这两块卡有什么,为什么能带来那么多的性能提升,它们的特点又在哪里?下面将为你逐一分解。
有点相似的顶点处理器
从上页的技术表格可以看到他们的顶点处理器单元都是6个,下面我们通过结构框图来了解它们。
ATI的顶点处理器:
在X800中共有6条可编程的顶点处理器,而每个顶点处理器中包含一个128位的浮点向量ALU以及一个32位的浮点标量ALU,以及一个控制器,它可以允许执行诸如循环、子程序、分支的执行。
顶点运算引擎的固定功能部份,是专门处理顶点遮影程序完成之后产生的顶点数据。首先,去背功能先除去视野上已模糊的三角形,因为在影像成品上也看不到。接着,裁剪阶段会找出部份跑出窗口的三角形(或任何其它应用程序定义的区域),然后修掉三角形这些看不到的部份。然后在透视切割阶段调整与透视有关的顶点,产生立体深度感,最后,视角转换把3D 多角形投射在2D平面上。
由顶点运算单元得来的数据包括3 度空间位置信息、材质坐标、标准向量、颜色和质料信息。这些单元最基本的功能是将位置数据做转化,每个顶点位置通常含四个32-位的数值(x,y 和 z坐标值, 加上一个w 坐标值供计算透视图)。这类的转化过程需要一个4x4 矩阵乘法,并可将它们分割为4个向量乘积指令。RADEON X800中的每个128-位向量ALU 是设计来执行每个时脉周期产生的向量乘积指令。因为有六个这种ALUs,所以每个时脉周期共可处理1.5个顶点转化。
Nvidia的顶点处理器:
上图显示了单个NV40的顶点处理器的内部结构,和R420不同在NV40的顶点处理器中是一个32位的浮点向量ALU、32位的浮点标量ALU,以及一个顶点材质阴影单元(这个材质单元还有一个专用的cache),相比较X800的128位的向量处理器似乎少了一点,但是在nv40的顶点处理器中最至关重要的就是他的顶点材质处理器,这是ATi所没有的,这个处理单元是nv40所使用的Vertex shader 3.0技术所必需的,这项技术会在稍后为大家展示它的魅力。
各有特色的像素处理器
虽然nv40和r420的像素管线都是16条,但是在具体结构上却有很大的区别,究竟有什么不同下面笔者将为大家分析。
ATi的16管线像素处理器
这张图是它的16条管线的结构框图,我们看到这16条管线被分成了4条一组,也就是说r420没个VPU周期可以处理4块材质。每四条管线组成一个处理单元可以独立使用资源。
这张图为大家展示了每组像素管线的内部构架。在这张图中我们可以更明确的看到了这4条管线的分工,它们组合在一起成为一个完整的像素处理单元。我们还需要注意的是在每个单元中都独立增加了一个HYPER Z处理单元,大家知道在三维世界里是有物体远近之分的,再明确点就说就是前面的物体可以阻挡掉后面的物体,这时必须增加一个Z轴数据(即数学中三维坐标系的Z轴)这样才能判别像素的阻挡与否。在r420中我们可以看到在每个像素单元中都会有这样一个独立的Z轴数据处理器,这极大提高了三维像素处理效率。
Nvidia的16管线像素处理器
和r420不同,nv40的16条像素管线仍然并行分布,而不是上面我们看到r420那样将16条管线分成了4组,并规定了各自的功能。这样的优点是可以非常的灵活组合,nv40支持8x2以及16x1以及32x0三种管线模式,即一个GPU周期同时处理两块像素,每块材质可以有8条管线;或者同时只处理一块材质但是其中使用了全部16条管线;当处理Z轴数据时它不需要分两次独立处理,也就成为事实上的32管线。
该图展示了每个像素处理器内部的结构框图,我megn可以看到它由一个z轴处理器和一个像素处理器组成。而在r420中z轴处理器是每组处理单元一个,因此nv40可以实现处理z轴数据时32x0即将像素处理单元也作为z轴处理器使用。
nv40的像素处理器的另一个特点就是使用了超标量技术,我们知道这项技术最好的应用典范便是Intel的CPU。这项技术使得nv40在处理像素时每个GPU周期可以处理最多达到8个像素点,效率比不使用这项技术时理论上最多可提高50%的性能。
综合两种像素处理的模式,虽然各有特点,而且出发点很明确便是提高运算速度,在一个周期里尽可能多处理像素,以提高处理能力。两款产品更是在像素处理器增加了z轴数据处理器,使得对3D数据的处理效率得到极大提高。但是我们也可以注意到它们之间的区别,如果用RISC和CISC来作一个不太恰当的比喻,ATi的r420算是Risc而Nvidia的nv40就是CISC了,为什么这么说呢?笔者更倾向于ATi的技术,r420的技术虽然固定了像素处理单元的功能这样失去了灵活性,但是这样固定的设计的好处是简化了控制单元这样带来的直接好处就是晶体管数量的减少,这样有利于频率提升、提高成品率降低成本。事实也是如此Nvidia付出了更多的晶体管数量才做到了这些。当然从性能上差别不会太大,毕竟虽然ATi同时能处理4块材质但是每个处理模块的处理单元少,这样其实和8x2的Nvdia模式在理论上性能不会有太大的不同,究竟差距有多少,PCHOME稍后的实战测试会为大家揭晓。
为效率和画质的平衡而战——ATI的3Dc(一)
一切的显卡都是为了画质,当然新一代的产品绝对不会输给前一代的,首先为大家介绍ATi的3Dc技术。
什么是3Dc?
1999年一组名为DXTC的图像压缩算法推出,它对于图像压缩的能力已经获得了业界肯定。但是随着3D shader技术的深入,DXTC的弊端也渐渐显露,它对材质压缩的能力远远不如它对图像数据的压缩能力。3Dc便是针对DXTC的技术不足所推出的新一代的图像压缩算法。它相当有助于两项逐渐普遍应用的作业,一是压缩法线贴图,另一则是把多道数据封装成单一材质。
法线贴图
法线贴图是一可增加3D 外表细致度的特制材质。它们是由早期凹凸贴图所衍生出来的材质,其中每个图素的高度值,主要功用是制造出其它光滑外表的凹凸外观。法线贴图蕴含更为细致的外表信息,可表现出更加复杂的外表形状。
法线通常都建立在3D 模型的每个顶点处。由于因顶点的数目和它们在间距上的长短不一,便有可能无法精确算出法线的方向,而造成顶点间产生极大的差距。如此便无法利用法线来制造出精细的材质。为求解决此一问题,改良后的法线贴图可呈现出每单位图素,令法线得以更为精确的定义出在外表任一位置上的法线方向。
法线贴图能提供一个捕捉外表细部更加有效的方法,不再需要大量的多边形运算。唯一的限制便是不能用在大型尺寸的造型方面,因为它们无法真实改变一个对象形状的缘故。法线贴图最常用的方式是运用足够的多边形来形成一个对象的形状,并将轮廓呈现出完美的外观,再用法线贴图来细修材质。这些材质可能只占一小片面积,但却能让整体影像看起来更加真实而细致。
3Dc 如今提供一个对于法线贴图压缩难题最为理想的解决方案。它提供了将近4:1的法线贴图压缩率,同时影像品质与未压缩前的图样几乎一致。此一技术系采用硬件加速,对影像表现的冲击最小。因此,研发人员可以不受限制的使用更高分辨率,甚至更加细致的法线贴图,同时/或是将它们套用在所有布景当中的所有对象上,而不只是选择性的套用在单一对象上。
为效率和画质的平衡而战ATI的3Dc(二)
3Dc运作方式:
3Dc 乃是一以区块为基准的压缩技术。主要是将一个材质贴图分割成4x4个区块,每一区块均含16数的矩阵。每块含最大值与最小值,这些数值并以8 位为单位储存。随后以每组6 项中间值加以合计,并自最小值到最大值之间均分。如此取自于每一区块的每一组件当中,便有共计8 项的数值。每一组件均指定一3 位指数,此指数可使这些数值对应于其最接近的原始值。
最终压缩后的区块,则是由4组8位数值和32组3位数值所组成,总计为128位。由于原始区块是由16组32位数值所组成,总计为512 位,故表示压缩比率为4:1。若原始数值是16位而非32位,那么依旧可达到2:1 的压缩率。
要运用3Dc 来压缩法线贴图,则需外加一道步骤。主要是因为法线贴图里的每个数值实际上都是一个3D 向量,由3项组件(x, y & z)所组成。要运用3Dc就必须将3项组件减为2项组件才行。所幸,此问题可利用一个简单方式处理,也就是假设所有的法线向量长度均为1。设定好每一向量的两项组件数值,第三项组件数值便可运用数学公式计算得知结果。上述公式只需用到几个图素遮蔽器指令就能进行计算。
可以看到3Dc技术的目的很明确,就是用最小的计算复杂度达到最大的数据压缩,这样可以有效解决不足的数据带宽和显存容量,从官方提供的资料来看3Dc技术确实可以在几乎不损画质的情况下,获得数据最大的压缩以及最简化的压缩算法。
为效率和画质作战——Nvidia CineFX 3
第三代的Nvidia CineFX是新一代应用 Geforce 6系列的GPU对于游戏画面是一次创新的革命,通过微软的 DX9的shader Model 3.0和OpenGL1.5,而且通过 CinfFX 3.0技术它不会对速度影响太多,这样可以保持效率和画质的最大优化。
关键技术:shader Model 3.0
shader Model 3.0包括两项核心技术:VertexShader 3.0以及PixelShader 3.0,通过下面的列表我们来看看shader Model 3.0和2.0的差别:
| Pixel Shader Feature | Shader 2.0 | Shader 3.0 |
|
Shader length |
96 |
65535+ |
|
Dynamic branching |
No |
Yes |
|
Shader anti-aliasing |
Not supported |
Built-in derivative instructions |
|
Back-face register |
No |
Yes |
|
Interpolated color format |
8-bit integer minimum |
32-bit floating point minimum |
|
Multiple render targets |
Optional |
4 required |
|
Fog and specular |
8-bit fixed function minimum |
Custom fp16-fp32 shader program |
|
Texture coordinate count |
8 |
10 |
Pixel Shader 2.0同3.0的最大区别:shader length长度支持无限长度,这意味着3.0里可以使用更复杂的材质,能够实现更复杂的特效,然后更能免除在程序调用上的资源浪费,而且能够用一个程序实现原来多个程序的功能,让效率得到明显增加。Dynamic branching可以使得开发者时拥有更大的自由度。它提供了一些新的指令,例如IFC/BREAKC、IF/BREAK/CALLNZ。这些指令大大丰富了程序开发者所拥有的功能,让过去需要用很多指令才能实现的效果变得轻而易举。另外它还支持:次表面散射、柔和阴影、环境和地面阴影、全局照明
| Vertex shader feature | Shader 2.0 | Shader 3.0 |
|
Shader length |
256 Instructions |
65535 instructions |
|
Dynamic branching |
No |
Yes |
|
Vertex texture |
No |
Any number of lookups from up to 4 textures |
|
Instancing support |
No |
Required |
Vertex Shader 2.0同3.0的最大区别:shader length长度支持无限长度,这意味着3.0里可以使用更复杂的材质。Dynamic branching可以使得开发者时拥有更大的自由度。它提供了一些新的指令,例如IFC/BREAKC、IF/BREAK/CALLNZ。这些指令大大丰富了程序开发者所拥有的功能,让过去需要用很多指令才能实现的效果变得轻而易举。另外它独有的置换贴图功能可以极大降低材质数量。最后一项独有技术就是顶点着色器复用流分频器,这项技术可以制造出场景宏大的三维画面,而不需要将所有的细节都描绘出来。顶点着色器复用流分频器(Vertex Frequency Stream Divider),这个技术能够实现相同模型的不同动作,让大批量的模型显得是形态各异。
孰优孰劣还是用测试来说话
通过以上简单的技术分析,终于知道了这两块为何可以号称提高100%的性能,关键就是大幅增加的顶点处理器和像素处理器,并且不断加入软件方面的新技术,以弥补带宽不足的问题,但是具体实现上有所不同。
在ATi方面它仍然沿用了9800XT的构架,事实也证明这个构架是完全成功的,因为他使用了更少的晶体管,却实现了性能上的突破,而且在采用了0.13um的制作工艺后,频率也获得了提升,我们也可以看到X800上的散热器没有像6800Ultra那样夸张,这对于进一步的性能提升很有好处。
而来自于Nvidia方面由于一直困扰它的热量问题,我们已经看到过几款超级变态的显卡散热装置比如5800Ultra、5950Ultra的,因此Nvidia不得不重新设计他们的新款芯片,虽然性能得到了提高,尤其它采用了Intel P4 CPU所采用超标量技术使得该芯片在处理像素和顶点时有更高的性能,不过可惜的是付出了更多的晶体管对比X800它的晶体管数几乎多了40%由此带来的问题就是频率无法提升因此它只有400MHz的主频,而且功耗和热量都是空前的,尤其它夸张的120w功率实在太惊人了,笔者真不知道以后Nvidia还会怎样发展他们的GPU,难道真的要走上3Dfx那条老路?不过不管怎么说这款6800Ultra确实还是成功的一款产品性能优秀。画质也非常不错。
如果想知道他们的实际效能的话,敬请等待我们的测试专题,PCHOME评测室已经收到了多款X800pro以及6800Ultra的样卡,相信不久就可以看到性能测试的报告。

网友评论