本人水平有限,谨以技术的角度与大家进行交流,如有错误之处,还望指出。
记得第一次被3PSU:1TMU的架构所触动,是在ATI Radeon X1900发布的前些时间,还记得当时讨论“48管线”时隐约有些恐怖的感觉。从2006年1月24日发布以来,X1900已经度过了一周岁的生日。
3:1(3PSU_象素渲染单元:1TMU_纹理渲染单元以下简称3:1架构)架构是个从来不缺少争议的架构,一年来,3:1架构也随着X1000系列的起起伏伏走过了不平静的一年。在前段时间X1650XT发布以后,随着AMD-ATI在极品飞车10等几个游戏里取得了不俗的成绩。对3:1架构的溢美之声随即便铺天盖地的传到每个角落。可事实上,3:1真的有如此的神通么?
● 3:1生于忧患
X1000系列里,有两种产品其实是不包含3:1架构的,第一个是X1800及其衍生型号,第二个是X1300(X1550)及其衍生型号。其中X1800XTX是ATI的一代旗舰级产品(虽说它称王的时间很短)。
在R4XX的时代,ATI几乎被NV4X全线压制。如果不考虑DircetX9.0C的问题,Radeon X800/850的性能并不逊色于GeForce 6800系列,但是在技术上的硬伤却令ATI如梗在喉。在长时间的忍耐后,以X1800XTX领衔的X1000系列终于登上舞台。但是起初,X1000的表现并不能令人满意。
Radeon X1800XTX面对的直接对手便是GeForce 7800GTX。起初这款产品并不被人看好,16传统线性管线的设计,比起7800GTX数量偏少的执行资源都显得不够看。当初甚至有评说“它除了采用90nm的先进制程以外一无是处。只是单纯的不完全支持SM3.0的Radeon X800版本。”虽然对R520架构有所了解的人都该知道这段评价是多么荒谬,但是的确能够反应出当时对X1800XTX的规格有所失望的一种想法。
单纯从X1800XTX的架构示意图中我们可以看到很多先进的地方。正是凭借先进的架构与率先采用90nm工艺的高频优势(也有一种说法是因为ATI当时的90nm工艺不成熟,所以只塞进了16pipeline,其实现在的X1900XTX与80nm的X1950XTX也都是16pipeline,这个说法应该不成立),X1800XTX在与7800GTX的对决中不落下风。但是另ATI始料不及的是,NVIDIA随即就拿出了高频的7800GTX-512M。与之相比,X1800XTX则摇摇欲坠。
转眼到了2006年,Radeon X1800并没有很好的压制住GeForce 7800。人们开始将希望寄托在R580上面。在它发布之前便已经有了“32管90nm G71”的传言,尽管也有“48管R580”的传言,但是相信的人不是很多。
理由很简单,以X1800XTX的表现看来,采用了90nm工艺却只塞进了16pipeline,要扩张到3倍的规模,显然是难以实现的。(当时对于“管线”的定义多是指的是像X1800XTX这样的线性组合。48管也就是说48PSU:48TMU……)但是当R580真身的发布的时候,却令很多人目瞪口呆。从那时算起,关于3:1的争论也拉开帷幕。
● 3:1带来的究竟是什么?
借助在极品飞车9里的出色表现,GeForce 6600GT热销一时。而今天X1650XT借着极品飞车10红火起来。与R520相比,R580暴力地塞进了3倍的PSU。纵观X1800XTX与X1900XTX,其实除了3:1架构之外的差别都很小。X1900XTX很快就战胜了7800GTX-512M,帮助ATI重夺民用显卡性能的王座,3:1架构走红起来。
至于为什么要采用3PSU:1TMU的架构,听到最多的一个说法是:根据ATI的统计,在现在以及以后的应用中,每用到5条ALU指令才会用到一条TMU指令。包括最近看到某些程序、游戏中这个比例能达到10:1的说法。因此设计更多的PSU可以达到事半功倍提升性能的作用。先让我们来看几个观点:
增加PSU的做法直接带来的效果便是大幅度的提高了执行资源的规模。X1000系列的PSU中包含两个ALU(逻辑算术单元),48个PSU也就意味着有个96个ALU的庞大数量,与之相比R520则要少很多。更多的PSU资源显然大大加强了象素渲染能力。
R580拥有强大的动态分支能力,作为DX9.0C所包含的技术之一,动态分支技术可以实现通过分支语言来对程序运行的控制。在渲染各种场景的时候,只要对固定与动态的语句进行编排,在符合设定的情况下,GPU可以“按条件自动循环重复”的执行相应的指令,避免了资源浪费,大大提高了运行速度。与同类产品比较,强大的动态分支能力保证了R580的领先。
这是几个经常会被提到的观点,就这几个观点看来,R580的强大似乎是顺理成章的。加之最近在几个游戏里的表现似乎也印证了这点,可是仔细想一想,这些观点里又有很多值得商榷的地方。
既然提到了ALU的规模,就不得不提一下R580的对手G71。当初G71发布时,同样也出乎很多人的意料。架构上G71与G70几乎完全相同,可以认为G71是G70的90nm版。因为减少了集成晶体管的数目,同频率下GeForce 7900的效率甚至比不上7800。(当然,G71的精简设计降低了生产成本。使得NVIDIA可以大批量生产。在不同的市场策略下N、A两家的设计思路也不一样,这就不详细说明了。)
7900GTX在性能上与X1900XTX也是处在一个档次上。我们来看一下7900GTX的ALU规模:8VS(顶点渲染单元),24PSUX2(每个PSU包含两个ALU),24TMU,16ROP。而X1900XTX是8VS 48PSUX2 16TMU 16ROP。显然在ALU的规模上X1900XTX很占优势,但是两者的性能关系能与两者ALU的规模关系挂钩么?其实这只是想说明一个简单的问题,ALU处理性能并不是ALU的数量能决定的。
当然,G71与R580的架构不同,直接对比ALU并不合适。那么就来看看架构大同小异的R520与R580。在PSU上—不必多讲,这是3倍关系。按道理来说R580比R520要强很多才对,事实上,就测试的成绩看来,R580领先R520在15%-20%左右,这个幅度远没有ALU的差距那么大。一方面,暴力增加PSU的数量会使得TMU的资源相对削减,另一方面,就现在看来,R580的资源闲置率可能会比较高,不过总归R580是要强于R520了。由这点基本可以判定执行资源的暴增所带来的性能提升有限。
再看有关动态分支的说法,的确,R580有着强大的动态分支能力。就长远来看,动态分支的应用很有意义,他为节省程序员的负担提供了一个新的途径,也可以使GPU在同等处理能力下大幅提高应用的速度。但是,动态分支并非是提高平衡度的唯一途径。就现在的应用来讲,包括最近几个X1000表现出众的“以后的游戏”里,动态分支也只是作为辅助存在的。按照游戏不同的编译方式它也会有不同的表现,也许将来它会有更多的发挥空间,可今天它只是配角,它为R5XX做的贡献也没有人们想象的那么大。
最后关于指令比例的观点是被传的最广,最能被接受的一个观点。的确,从思路上来讲,3:1的设计不可谓不对,而且还是一个很有创意值得赞赏的设计。R580也从3:1的设计里受益,但是,是否是因为3:1才是变强的主要原因?是否就是几比几的指令比例,才让3:1在今天变的如此光辉灿烂?
3PSU:1TMU的比例宣称是按照指令比例的发展趋势来设计的,但是这就涉及到一个指令与周期与比例配合问题。在一个游戏当中,TMU所处理的材质并非是固定的,完成不同类型的材质处理所对应的处理周期也相应的在变化。所以说这个比例并不可靠。
其实关于ALU指令多出TMU指令在很早之前就已经得以体现,如果按ATI的说法传统线性比例的架构在03年就已经跟不上时代了。追朔到一年前,ALU指令大幅超过TMU指令的游戏与程序已不在少数。在这些应用里,线性架构的7900GTX与3:1的X1900XTX表现都是在同一个档次上,或者我们换一个更直观的比较,拿X1800XTX与X1900XTX在同频率下运行这些程序,可以比较明确看看到性能提升的幅度不是太大。
可为什么3:1在近日的一些游戏里突然爆发了呢?难道说那些游戏才是能够代表“未来趋势”?
其实自己看一下就不难发现,这些游戏多数都是由游戏机XBOX360移植而来。对于XBOX360来说只有采用ATI C1的唯一版本,它在设计上很多地方都可以看到R580的影子。所以X1900系列会有优势这不足为怪。这些游戏又分为两种,如NFS10这种原本为XBOX360设计的游戏,R580大幅领先也能说的过去。(其实这么大的差距也包含了G7X表现失常的因素。)而像彩虹六号.维加斯这样的游戏,差距则要小的多。综合一下,考虑这些因素后,指令比例的问题似乎只能放到次要位置。
注:彩虹六号.维加斯的“虚幻3”引擎原本针对NV40开发的。
● 3:1走下神坛
列举了这么多原因,可以看出3:1并非是能创造奇迹的神。那么为何X1000会有比较强的性能呢?其实在文章开头就有提过,这源于R5XX架构的先进性。其实上面所举出的因素都是先进性的一部分,下面就做一下简单的补充:
总是有拿G7X与R5XX对比晶体管数目的言论,其实G7X与R5XX在架构上区别很大,直接对比晶体管效率没有什么意义。晶体管数目多并不代表性能一定会强,R5XX之所以集成了这么多的晶体管,其中一个原因是因为他们的环行内存控制器。
R580拥有8路32bit内存通道,在处理简单的数据时能够有效避免占用过多的内存带宽。环行内存控制器的存在,提供了一个高灵活性的内存架构。
R5XX的PSU具备了超线程控制器,流水线Multi-threading(类似于超线程技术)化。可以将一个大数据量的任务拆分成最多512份小的任务后分配给各个单元处理。这样就照顾到了平衡度,减少了延迟。
提升显卡性能,加入更多的集成晶体管是必然的。比较一下提升PSU,TMU,ROP,VS的代价,单纯提升PSU所需的晶体管数目最小。
就设计思路来讲,在DircetX9时代的显卡里,R580已是颠峰之作
从这些信息里,我们可以得知R5XX的较强性能是由于架构中多个先进的要素共同作用的结果。3:1的架构作为其中的一部分也在发挥着自己的作用,但它并不是唯一,也不是自己就可以左右大局的“黄金比例”。我们应该更理性的去看待有关3:1架构,而不是将它捧到神坛上鼎礼膜拜。对于技术的讨论应该持有严谨的科学态度,技术不是宗教,不应讲盲目崇拜。
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}