泡泡网显卡频道 PCPOP首页      /      显卡     /      评测    /    正文

ATI重登性能王座 48管线R580完全测试

  • 管线处理能力提高三倍:R580集成48个像素渲染单元

    众所周知,ATI现有的R520显示芯片仅仅拥有16个像素渲染单元,而对手NVIDIA的G70为24个,这使得R520在于G70的竞争当中处于不利局面,不得不依靠高频率来弥补不足。而现在ATI将R580的像素渲染单元一举提升至48个的境界,足足是R520的三倍,让人刮目相看!

    48个像素渲染单元,R580显示芯片带给我们的震撼力是前所未有的,核心集成度如此之高那么功耗与发热量将会到什么样的地步?这恐怕是绝大多数人所担心的问题!

  • R520到R580核心架构演变:
{imageTitle}
R520核心架构图
 
    ATI全新架构的R520晶体管数已经达到了3亿,如果按此标准将像素渲染管线提高到了48条,那么后果不堪设想,能否造出来还是个问题。然而ATI通过了巧妙的方法依然维持16条像素渲染管线不变,但将像素处理单元翻了三倍:
 
{imageTitle}
这是之前网上泄露出来的R580核心架构图
 
    可以明显地看出,R580与R520的整体架构是完全一致的,最大的区别就在像素渲染管线上面,像素渲染单元依然按照之前的四阵列流水线架构排列,因此通常所说的像素渲染管线维持16条不变,而像素渲染单元却是实实在在的48个,它并没有占据太多的晶体管,但渲染能力却理论上达到了3倍与原来的水平!

    ATI并没有单纯的增加像素渲染管线,因为一味的提高管线数目对芯片工艺要求非常高。因此ATI巧妙通过增加像素渲染单元,让传统的每条像素渲染管线能够在单时钟周期内进行三次像素操作,从而大幅提升显卡的像素渲染能力!

    那么像素渲染单元与通常所说的像素渲染管线到底有何区别呢?

    众所周知,我们通常说X1800XT和7800GTX有多少条管线时,严谨的说法应该是16×1和24×1,因为他们的每条管线都拥有1个处理单元,所以像素渲染管线和像素处理单元是完全等同的。然而到了R580一代就不同了,虽然R580的规格依然是传统的16条像素渲染管线,但每条管线却拥有3个像素渲染单元,也就是相当于48条管线的规格!

  • 48个像素渲染单元的指挥中心:R580 Ultra-Threaded技术
    原来R580并非真正拥有48条管线,很多人对这种16×3的规格表示怀疑,其执行效率肯定不如真正意义上的48管线,理论上说是没有错的。但ATI通过集成专用的Ultra-Threaded模块能够将48个像素渲染单元充分调度起来:
 
{imageTitle}
ATI官方R580像素渲染引擎架构图
 
    R580的像素渲染引擎当中除了48个像素渲染单元之外,最核心的部分是一个叫做“Ultra-Thearding Dispatch Processor”的模块,这个单元负责将线程分派给下面的像素渲染处理器。而且可以看出Ultra-Thearding能够统一调度48个单元之间的协同工作,让16×3管线的效能远远超越16×1,媲美48管线的水平!
 
    DirectX 9 API的Shader Model 3.0规范中最重要的特性就是像素渲染的动态流控制,它可以根据每单个像素的状态,允许单像素渲染程序执行不同的代码循环和多次代码循环。对于一个画面,是有很多数据需要处理的,而这些数据几乎都是平等的,像素之间、纹理之间、或者顶点之间。于是每个图形芯片都需要能够同时执行这些操作,也就是并行运算。

    但是现在出现了一个矛盾:一方面为了要求并行计算,很多像素要求同时进行操作,将画面分成一个个小块来处理将能够很明显的提高效率,但是如果一个块中的像素需要进行不同的操作,那么将适得其反。另一方面,如果将每个像素作为最小的单位进行处理,那么出现问题的可能就没有了,但是这样效率将会很低,因为不同的像素的处理要求是不同的,简单的处理的快,复杂的处理的慢。

    ATI的Ultra-Thearding Dispatch Processor便是用来解决这个问题的,首先,可以将每一个像素的处理过程理解成为一个“线程”,那么这个Ultra-Thearding Dispatch Processor的功能就是分配这些线程的执行。它可以动态检测到每个像素渲染单元的工作情况,避免了空闲的情况存在。

    Ultra-Thearding通过一个庞大的联合线程计数器、小线程单元、专门的分歧单元,和一个巨大的、高性能任务堆栈列表,可以在高速的动态流控制和扩展并行处理见取得最好的平衡,这些技术可以让R580的像素渲染效率进一步提高,充分释放48个像素渲染单元的潜能,将新技术特效发挥得淋漓尽致!

  • 为什么需要如此众多的像素渲染单元:
{imageTitle}

    上图为近年来主流3D游戏当中使用像素渲染指令的变化曲线,可以看出未来游戏将更加频繁的使用像素渲染操作。这是因为当今主流3D API——微软DirectX自8.0开始导入可编程的渲染引擎之后,大量D3D游戏基于这一标准使用像素渲染变得非常普通,而且指令的复杂程度也是与日俱增!

    这就是为什么ATI和NV的显卡像素渲染单元逐年递增的原因!

5800/5900(8)→6800(16)→7800(24)→7900(32)
9700/9800(8)→X800(16)→X1800(16)→X190(48)

  • 渲染方式也发生了微妙变化:

    渲染操作越来越频繁,渲染复杂程度越来越夸张,除此之外在游戏中的渲染方式也发生了微妙的变化。目前3D游戏中常用的渲染指令大致可以分为两类:

1.纹理操作:从显存中拾取数据
2.算术处理操作:完成数学变换

{imageTitle}
算术处理操作与纹理操作在游戏中所占的比重

    早期的渲染处理是粗略的把渲染资源平等的分配给上述两种类型的渲染指令,但近来分配给算术处理操作的渲染处理资源比重越来越大。在最近的游戏当中,两类渲染指令的比例大约为:算术处理操作:纹理操作=5:1。从很多游戏的设计蓝图来看,这一比例还有继续增大的趋势。

    算术处理与纹理操作之间很重要的一个差异就是:纹理操作过多依赖于显存容量、速度和带宽这些外界因素,当在硬件条件限制下显存规格无法继续提升时,增加更多的纹理单元对纹理操作性能的提升非常有限;而算术处理则完全不同,它的处理能力完全取决于显示核心集成的算术处理单元数量。

  • 为什么R580顶点处理单元维持8个不变?

    人们在谈论一款显卡的规格时,最常提到的就是两个重要部分——像素渲染单元和顶点处理单元,这也成为了ATI和NVIDIA划分高中低端显卡的重要手段!举个简单的例子:7800GTX为24像素8顶点,而7800GT为20像素7顶点。前面刚刚介绍了像素渲染部分,下面就来看看R580的顶点引擎有何变化?

    不管NVIDIA还是ATI,逐年提高像素渲染单元的数量绝大多数人都能够理解,这几乎成为了近年来显卡性能提高墨守成规的定律,然而回头看看几年来顶点处理单元似乎一直处于原地踏步状态,为什么两大巨头对顶点处理单元如此漠不关心?

    如果按照3D图形处理顺序而言,顶点部分是需要首先执行的。很早之前,顶点坐标的运算是由CPU完成的,到了GeForce和Radeon以后,图形芯片便具备了T&L(Transform&Lighting 变换和光照)的功能。

    不管是哪款显卡,3D图形的处理顺序都是最先从顶点部分开始,因为顶点是用来构造几何物体的,进行3D运算建模顶点是最基本最核心的内容。而像素对应工作就是将显卡合成的三维图形以二维的方式输出,简单说像素是二维而顶点则是三维的。这就是他们虽然都被称作Shader,而顶点常被译为处理、着色,而像素译为渲染的原因。

R520 R520

    然而与3D息息相关的顶点运算的需求是取决于游戏本身,每一个游戏的3D模型一旦确定,在一个静态的3D场景中,顶点数目也就固定下来了,这并不会因为游戏的细节程度、特效和分辨率而发生改变。所以顶点引擎往往没有像素引擎那么繁忙,游戏开发者通常会利用贴图等手段控制模型的3D顶点数目。

    因此R580与R520相比像素渲染单元翻了三倍,而顶点处理单元没有任何变化。关于R580顶点处理单元的细节部分资料,可参阅“三年架构大革命!R520脱胎换骨全测试”一文,此处不再多做介绍。

  • 小结:

    R520显示核心拥有16个像素单元和16个纹理单元,两者的比例为1:1,而R580拥有48个像素单元和16个纹理单元,两者的比例为3:1。

    可以看出,R580与R520相比最重大的变化就是像素渲染单元翻了三倍达到了48个,纹理单元和顶点处理单元都没有变化。这是主要是因为按照游戏发展的趋势、以及当前硬件条件的限制,顶点处理单元够用即可,增加纹理单元对性能的提升非常有限;而提高像素单元、增加像素与纹理的比例,能够更加贴近未来游戏发展的需要,可以最大化显卡的渲染效率!

    当然,ATI并没有单纯的增加像素渲染管线,因为一味的提高管线数目对芯片工艺要求非常高。因此ATI巧妙通过增加像素渲染单元,让传统的每条像素渲染管线能够在单时钟周期内进行三次像素操作,从而大幅提升显卡的像素渲染能力!

1人已赞

关注我们

泡泡网

手机扫码关注