视觉时代的回响 GPU十年历史追忆.docx
- 文档编号:30182746
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:110
- 大小:9.02MB
视觉时代的回响 GPU十年历史追忆.docx
《视觉时代的回响 GPU十年历史追忆.docx》由会员分享,可在线阅读,更多相关《视觉时代的回响 GPU十年历史追忆.docx(110页珍藏版)》请在冰豆网上搜索。
视觉时代的回响GPU十年历史追忆
一个属于梦想的时代
10年的时间对于一个人意味着什么?
岁月的变迁可能让他从毛头小伙变成朗朗俊男,也可能在他的发迹刻下了不惑之岁的印记。
时光是最好的大师,它可以在每个人身上剪裁出值得回望的特别部分。
那么对于GPU业界而言,10年的时间又意味着什么呢?
在经历了上半年NVIDIA连续的新品发布之后,我们终于迎来了一段“闲暇”的时光。
无论AMD还是NVIDIA,GPU业界的竞争者们都进入了相对稳定的调整期。
既然没有新产品发布,业已问世的架构又已经足够成熟,我们是不是可以利用这段时间来进行一些回顾和总结呢?
无论人或者事,十年的时光都不是一个短暂的概念了,这样的时间跨度不仅可以被称作“时代”,其长度也足以承载充沛的阴晴圆缺,对于发展迅速且更新频繁的GPU业界而言更是如此。
回望其中,经历过种种往事的我们也许会对许多物是人非有不一样的理解,甚至还能抓住一些过去错失的精彩。
所以,借这个难得的空闲,我们决定以一组四期连载的篇幅仔细回望和梳理过去十年间GPU业界的发展历程,再次追寻一个个闪光的足迹,重温那些令人唏嘘不已的往事以及发人深省的内在哲理。
这不仅是对GPU的总结和再度审视,同时也是对我们自身的总结和再度审视。
DirectX 9时代的经典——3Dmark03测试场景:
Mother Nature
该从哪里开始呢?
不如就以DirectX的更新为分野,从2003~2006年的DirectX 9时代开始吧。
要让我们来说的话,那简直就是一个属于梦想的时代啊……
AgeofGods
●AgeofGods
对于许多人来说,我们所要回顾的GPU十年时代的起点甚至可以用辉煌来形容。
那些属于那个时代的名字至今依旧璀璨夺目,它们不仅是图形时代难以磨灭的烙印,同时也是无数硬件爱好者甜美的回忆之一:
Radeon9700Pro/R300,2002年8月发布,GPU十年时代的开启者以及当之无愧的王者,全球首款完整支持DirectX9.0的GPU,首款晶体管数量超过1亿的GPU,ATi收购ArtX之后达到全盛时期的经典之作。
充满了简洁美感的R300
GeForceFX5800Ultra/NV30,2002年11月发布,Radeon9700Pro的竞争者和对立面,NVIDIA首款完整支持DirectX9.0的GPU,首款采用DDRII显存的桌面级显卡产品,GPU十年时代的第一位竞争者,同时也是一位失败的竞争者。
Geforce FX 5800Ultra
GeForce6800Ultra/NV40,2004年3月发布,全球首款完整支持DirectX9.0C的GPU,NVIDIA成功扭转颓势的复兴之作,它一扫NV3X架构的各种弊端,在很多场合甚至提供了两倍以上于前代产品的性能提升。
与此同时,伴随它发布前后出现的一系列戏剧性事件也是GPU十年时代的最浓墨重彩的一笔。
Geforce 6800 Ultra
RadeonX800XTPE/R420,2004年5月发布,GeForce6800Ultra的竞争者,同时也和GeForceFX5800Ultra一样成了自己竞争者的对立面。
RadeonX800XTPE虽然提供了称职的性能提升,但缺乏DirectX9.0C的支持依旧让其在竞争中处在了不利的位置。
一代天骄R580
RadeonX1900XTX/R580,2006年1月发布,ATI在GPU十年时代中的顶点之作,同时也是其最终的作品,基于R580架构,拥有强调PixelShader吞吐的独特架构设计以及DirectX9.0时代最强大的性能,其1:
3的比例的甚至被拥趸们奉为“黄金比例”。
基于G71架构的GeForce7900GTX
GeForce7900GTX/G71,2006年3月发布,GPU十年时代开端部分的收官之人。
它的出现向我们展现了成本与性能达成平衡的重要性,同时也为NVIDIA的未来奠定了坚实的基础。
那是一个激动人心的时代,每当一个新的名字横空出世之际,我们都能收获近乎翻倍的性能增长,可即便如此,每一个身在其中的人仍旧会处在永不满足的状态中。
在市场自身的需求以及整个业界励精图治的双重刺激之下,我们面前的画面不仅帧数越来越高,而且每一天都比前一天更加真实,一段段引人入胜的悲欢离合借由这些画面的进步而得以更完美的呈现。
我们享受了图形进步带来的感官刺激,同时也为能够置身于那样一个激昂的年代而感到荣耀和自豪。
不过自豪之余,萦绕在我们最珍视的这段回忆周围的一个重要问题显然是无法忽视的——在那个空气中都回荡着“向前,向前,向前”的图形盛世当中,推动我们以及GPU快速前进的力量究竟是什么呢?
隐形的主宰
●隐形的主宰
从1.25亿晶体管到今天的71亿晶体管、从combine到全功能ALU集群、从固定渲染管线到并行运算架构……GPU的逻辑结构和规模在过去十年间发生了翻天覆地的变化。
如果将基于Kepler架构的GK110展示给一位2003年的硬件爱好者,他甚至可能完全无法猜到这一坨规模大的吓人的集成电路究竟是做什么用的。
如果没有一股强大的力量在推动并约束方向,GPU有如此规模的发展几乎是不可能实现的。
那么究竟是谁充当了这股强大而且稳定的推动力呢?
这股力量,就是我们熟悉却又不常提起的图形API。
典型图形API之一:
JAVA图形API
其实不管创造或者使用了多么玄乎的概念或者操作之类的东西,计算机图形的发展方向始终都还是很单纯的,那就是视觉虚拟现实。
实现视觉虚拟现实的相关操作需要以数学的方式构建一套可以被硬件执行的函数集合,这个函数集合包含了组成被渲染目标一切可视信息,通过对这个集合的演算以及操作,最终将我们需要的形状和色彩输出到输出装置中去。
在这一过程中,将不同种类形式的函数与具体指令进行对应衔接的工作显然是最为重要的,如果没有这一步骤,指令的执行以及硬件的有效运作都将无从谈起。
而完成这一工作的,正是图形API。
简而言之,图形API就是一个大量底层图形指令的集合,每种指令都有特定的功能和作用。
软件只需将自己所要进行的工作表达成特定的函数,进而根据API中规定好的指令功能设定出函数的执行和指令的调用方式,便可以调用硬件来执行这些函数进而完成图形的表达工作了。
而被调用的硬件,也就是GPU的设计则很明显的需要遵循API的需求。
GPU逻辑构架需要对应并满足图形API的需求
API是软件和硬件之间的桥梁,同时也是约束和推动硬件发展的重要动力。
每一代图形API都会依据制定者的期望提出相应的指令以及执行需求,这些需求为GPU的设计限定了舞台的范围,设计者必须研究这些指令的特点以及执行需求的细节,并对应的拿出能够正确并且高效的执行这些指令的逻辑结构。
GPU的实际性能表现,实际上完全由与API的契合度决定。
所以,这就是我们以API的版本更迭为界限来进行GPU十年历史回顾的原因——表面上看我们所经历的似乎是GPU硬件架构的蓬勃发展,但其实真正“说了算”的却是躲在幕后的图形API,所有GPU的进步都是围绕着“如何满足图形API需求”这样的课题而进行的,它才是决定一切的隐性主宰。
当然,图形API的对于图形业界的统治和刺激并非全然都是正面的和积极的,在GPU十年时代的大部分时候,硬件与API之间的关系其实并没有我们想象中那样平顺,这一点在微软的DirectX上尤为明显,但它依旧造就了我们现在所追忆的属于GPU的DirectX9时代,一个孕育无限可能的上帝时代。
全能上帝
● 全能上帝
DirectX是微软创建的以图形为主的多媒体API集合,曾经与Open GL和3Dfx的Glide激烈竞争并成功胜出,伴随着3Dfx的消逝以及Open GL的逐渐没落,DirectX 在带来Shader Programs之后开始了对图形业界实施统治的努力。
DirectX
2002年12月,微软发布了全新一代图形API——DirectX 9。
如果说DirectX 8.1的Pixel Shader1.4改动来的太小,支持度和意义都不是很大的话,DirectX 9的Pixel Shader2.0就可谓是脱胎换骨了。
全新的Pixel Shader2.0所引入的更大的指令数也让Pixel Shader2.0获得了更好的效率,同时FP24浮点格式的RGB数据处理让程序员第一次有了能够完整正确的表达颜色的可能。
得益于极大提升的数据精度,DirectX 9.0带来了大量令人印象深刻的图形特效更新,比如说更为真实的水面特效——相信每一个经历过那个时代的人,心中都会铭记第一次在屏幕前看到实时生成的波光淋漓的水面时内心那种难以名状的激动吧。
DirectX 9.0带来了水面特效质变
接下来,微软继续对DirectX 9.0进行了数次版本更新和升级,并最终进化到了值得纪念的DirectX 9.0C。
它将Vertex Shader和Pixel Shader的最大指令数提升至65535,引入了动态程序流控制,将分支和跳转能力彻底开放给了程序员,允许顶点单元直接进行纹理操作(Vertex Texture),同时通过多目标渲染(MRT)和延迟渲染(Deferred Shading)等创造性的技术保证了光栅化过程中整个流水线的整体效率。
通俗的说,DirectX 9.0C解决了ALU利用率和效率之外的几乎所有问题,如果不考虑效率,DirectX 9.0C甚至完全可以实现迄今为止出现过的所有图形特效。
往后版本的DirectX 在光栅化过程中的其他改进基本上都集中在了效率层面,所有我们已经见过或者正在体验的视觉效果都可以在DirectX 9.0C中找到影子或者前身,甚至可以说只是简单的放大和完善而已。
DirectX 9.0C测试软件:
3Dmark 06
DirectX 9.0C确实跨过了一个非常重要而且积极的节点。
对程序员来说,DirectX 9.0C比先前的所有版本DirectX 都更让他们近乎于不受约束的尽情堆砌指令来实现越来越接近于现实的色彩和特效,并且不用担心这些色彩和特效会出现致命性的错误,这让DirectX 9.0C成了DirectX 史上支持度最高的版本。
它是如此的完美和成功,以至于我们无需多言它的种种事迹,单看几乎是照抄规则的OPEN GL 2.0即可窥见一斑了。
从DirectX 9.0C开始,图形API这位隐形的主宰真正蜕变成了一位控制图形业界发展方向的“全能上帝”。
而那个令人激动的大时代中涌现出的每一款GPU,都是以不同并自认为正确的行动追随这位上帝的追随者。
于是,在全能上帝摆下的祭坛上,荣耀殿堂中英名们开始了令人热血沸腾的厮杀。
万神殿之战
●万神殿之战
DirectX9时代之所以能够成为GPU发展历程中最具活力的时代,来自设计思路、理念以及设计者运作能力的激烈碰撞绝对是最重要的因素。
几乎每一次架构更迭都有属于自己的故事,几乎每一代产品都能向我们诉说着成功与失败间的因果循环,这些故事和循环恰到好处的彼此相连,优美的为我们演绎了一连串“你方唱罢我登场”的好戏。
激动人心的对决开始于R300/NV30时代,作为一个时代大门的开启者,Radeon9700Pro的地位是无可争议的,这款基于R300架构,拥有8条渲染管线的显卡不仅在图形史上首次真正意义上完整支持了DirectX9.0(此前的Parhelia512未能提供PixelShader2.0的支持),同时也向我们展现了一颗简洁高效的图形GPU所应该具有的全部素质。
Radeon9700Pro的每个PixelShader单元拥有完整的3D+1DminiALU,这为其带来了相当理想的FP24 Shader吞吐能力,32个TempRegister的寄存器资源也让缓冲体系达到了相当充沛的程度,再加上在2002年底已经十分成熟的150纳米工艺,我们在Radeon9700Pro身上看到了流畅简谐的美感,同时也收获了令人印象深刻的绝对性能/性能功耗比表现。
一个时代的经典——R300架构
与R300相比,和它同场竞技的NV30几乎完全站到了对立面上。
它并不具备PixelShader2.0中常规的处理3D+1D以及co-issue的能力,如果遇到坐标变换等需要非绑定4D运算的场合,NV30将一筹莫展。
与此同时,NV30的PixelShader单元还不具备miniALU,shadercore后端包含的是两个完全符合DirectX8.1要求的FX12combine,由于PixelShader2.0并不支持混合精度以及非浮点精度指令,所以这两个FX12combine单元在DirectX9的场合中完全就是废物。
除此之外,整个NV30构架的TempRegister也被限定在了13个,仅比PixelShader2.0所要求的12个的最低要求多1个。
Register被分为2个bank,这2个bank加在一起每周期内只能向shadercore输送一个FP32或者两个FP16数据,由此造成的延迟是十分巨大的。
在此基础上,本来就不够多的Register还会被拿去做OutputBuffer,或者说Register与OutputBuffer竟然使用了同一片存储区域,如果某个shaderProgram的数据需要调用2个FP32Register或者4个FP16Register,NV30的整体渲染效率就会开始大幅下降,这种下降还会随着调用寄存器的增多而不断加剧,当FP32Register调用达到5个时,整个流水线的像素填充率只能达到理论值的1/4。
如果说我们在R300身上看到的是充满了流畅和简洁的数学美感,那么在NV30身上,我们就只能看到非常全面的缺点和失败了……
失败的NV30
NV30是NVIDIA进入ShaderModel2.0时代伊始便遭遇的一次重大挫折,这打击甚至险些让NVIDIA陷入一蹶不振当中。
好在历史给了我们希望,在接下来的DirectX9.0C时代,得失双方的角色发生了逆转。
还记得CeBIT2004上那个“完美支持DirectX9.0,8条流水线,每条流水线2组TMU单元,单周期能够进行16次浮点像素操作及贴图操作,特别包含来自3Dfx未发布的rampage所使用的先进技术”的“NV40”么?
这个看上去像是NV35放大一倍,同时有火星科技加持的东西几乎欺骗了全世界,不仅包括竞争对手ATI,全世界所有的玩家以及关注者,投资家,股评人,甚至还包括一部分尚未得到芯片的显卡厂商。
相对于NV3X,NV40的改进可谓大刀阔斧。
它彻底去掉了只属于DirectX8的Combine,代之以具备完整功能miniALU且支持co-issue的shaderUnit2,完全修正了愚蠢的Registerbank问题、OutputBuffer与Register使用同区域以及极少Register总量的错误,NV40构架可以做到同时调用4个FP32Register或者8个FP16Register,像素填充率仍然不出现下降。
有了这些改进,再加上整体放大的规模,NV40的各方面性能均可以达到NV35的2倍以上,在很多DirectX9类得场合甚至可以达到4倍以上。
数学的“简谐之美”,这一次回到了NVIDIA的头上。
反败为胜的GeForce6800Ultra
NV40让ATI陷入了空前的尴尬和窘迫之中,因为根据之前多方面汇总的情报,ATI已经做出了确认NVIDIA要推出“完美支持DirectX9.0,8条流水线,每条流水线2组TMU单元,单周期能够进行16次浮点像素操作及贴图操作,特别包含来自3Dfx未发布的rampage所使用的先进技术”的新构架的判断,同时将自己完整支持DirectX9.0C的R400构架的研发速度控制在了一个相对缓慢的程度。
在NV40发布前后,陷入巨大慌乱的ATI彻底乱了阵脚,本来计划中利用R350的结构基础+支持DirectX9.0b,用来对付那个不存在的软弱对手的构架显然不能应付目前的局面了,ATI不得不转而寻求一种将先前的改进型构架放大规模到与NV40同等规模,同时尽可能多的提高频率的解决方案,以便让其获得与NV40抗衡的可能,这一方案就是与NV40规模相近的R420。
仓促上阵的R420虽然得益于R3XX的优秀基因而具备了不错的ShaderModle2.0性能,但相对于NV40来说,在效能上始终乏善可陈,而且缺乏对ShaderModle3.0的支持让其注定无法与NV40同场竞技。
毫无疑问,这一次的胜利者从ATI变成了NVIDIA。
仓促上阵的R420
这就是令人激动的DirectX9时代,无论谁出现了失误,都能够在挫折之后迅速站起来重新投入战斗,并且在不久之后为我们奉上更为精彩的翻身之作。
正是双方这种锲而不舍的对高效率图形架构的追求,造就了GPU十年历史中令人难以忘怀的部分。
而与之相伴的情报战之类精彩的故事,则成了点缀这个时代的最好装饰。
值得纪念的DirectX9时代在尾声处迎来了最终的高潮,在经过了第二代DirectX9.0C架构的调整之后,ATI和NVIDIA分别选择了两条不同的前进道路,前者坚持技术为本的研发理念,而后者则更加务实的选择了在成本与性能之间谋求平衡的方向。
最终,双方都在自己的道路上递交了令人满意的答卷,那就是属于G71/R580的“双赢”。
强调吞吐的R580架构
作为R520的继任者,R580拥有了ShaderModle3.0时代唯一的一次构架突破,它将传统的每个shaderunit的ALU数量原先的1个提升到了3个,这一改动让R580在流水线总数不变的前提下拥有了3倍于R520的ShaderProgram吞吐能力。
R580的构架设计赢得了大多数人,尤其是程序员们的好评,它强大的吞吐能力带来了极其强劲的ShaderModle3.0性能,同时也满足了当时通过更多像素效果来提升整体视觉效果的诉求。
R580获得了性能层面的胜利,成了ShaderModle3.0时代当之无愧的单芯卡皇,在一片溢美的赞誉之声中,3:
1“黄金构架”的一代天骄将ATI的声望推向了顶峰。
在性能及成本间达成平衡的G71
以逻辑结构而言,G71相较于前代的G70并没有太多变化,甚至与更早的NV40也没有太多规模以及co-issue能力之外的不同。
它没有太多矫饰的特性,也不具备R580那样令人生畏的Shader吞吐能力。
但就是这样一个看似羸弱的架构,却创造了NVIDIA历史上的销售记录。
G71拥有比R580更为简单的ShaderUnit,所以也就避开了后者因结构复杂以及互联需求激增而不得不面对的单元规模问题。
配合co-issue能力,G71在特定的场合下的吞吐能力并没有落后R580多少,而其简单结构最终也转化成了尺寸更为小巧同时功耗表现更加出色的芯片。
借此成功控制住成本的NVIDIA不仅赚取了大量的利润,同时也让市场接纳了这样一款注重性能功耗比表现的DirectX9末代架构。
而属于我们的DirectX9时代,也以“一方赢得了技术层面的胜利和赞誉,一方赢得了市场的认可以及丰厚的回报”的结果画上了圆满的句号。
对决、谋略、失误后的励精图治、发展中的奋力上升……这就是属于GPU的DirectX9时代。
这是最好的时代,这是糟糕的时代,这是我们的时代。
诸神的黄昏
● 诸神的黄昏
毋庸置疑,作为我们所回顾的GPU十年历史的开端部分,DirectX 9时代是精彩纷呈的。
无论硬件、软件还是市场,整个业界都处在蓬勃发展的状态。
截至到目前为止,Direct 9时代都是GPU技术及市场发展最为迅速的阶段,GPU能有今天的地位并成为DIY中最重要的部件之一,几乎完全拜这一时代所赐。
良性竞争催生了技术进步,HDR+AA便是其中之一
GPU业界在整个DirectX 9时代的蓬勃发展并非偶然,其中的必然要素不仅值得我们注意,同时也对我们后续部分的追忆有相当重要的借鉴作用。
纵观整个DirectX 9.0时代,无论ATI还是NVIDIA都经历了一次重要的战略性失误,这些失误都深及骨髓但也都没有将失误方彻底打倒。
历经痛苦的双方都对失误进行了充分的自我审视和总结,并在接下来的一次架构更迭中对失误进行了必要且非常有针对性的修正,与技术层面上来讲,这些修正不仅帮助双方扭转了竞争中的颓势,对于当时的GPU架构进步也是弥足珍贵的。
而双方同时具备的锲而不舍的态度则更为重要,它造就了良好的竞争氛围,并且为技术的进步奠定了坚实的基础。
另外,与之同时伴生的此消彼长的节奏也给市场带来了充分的期待,在一定程度上刺激了关注度和资本的投入——无论对谁而言,悬念和希望是最好的催化剂。
半条命2几乎成了DirectX 9的代名词
更为难能可贵的是,这一时期的游戏应用与硬件发展达成了相辅相成的彼此促进关系,在优秀GPU层出不穷的同时,HalfLife2、Farcry、后续出现的Crysis、S.T.A.L.K.E.R以及基于Open GL的Doom3等等大量经典到骨灰级的游戏亦在这一时期涌现,它们不仅最大限度的发挥了当时硬件的设计优势,刺激了市场需求的增长,同时为后续的GPU架构发展指出了前进的方向,这种良性促进作用对GPU业界而言无疑是极为重要的。
良性的竞争氛围、充分且快速的技术进步、与技术相呼应的需求以及需求的被满足、对市场的良性刺激和循环,这一系列要素对于任何一个业界的健康发展而言都是健康的正反馈刺激。
所以对于整个DirectX 9时代,我们没有任何可以挑剔和指摘的余地,它完全是GPU诞生以来最为繁华昌盛的黄金时代。
DirectX 10并未复现DirectX 9的黄金时代
遗憾的是,这样的黄金时代已经一去不复返了……
在DirectX 9更迭到新一代的DirectX 10之后,整个业界以及GPU的历史前进方向都发生了翻天覆地的变化,无论竞争环境、技术进步速度还是市场的发展都转入了与先前完全不同的状态。
究竟市场和业界发生了怎样的变化?
又是什么促成了这些变化?
我们的GPU历史又将会走向何方呢?
这些问题的答案,就留待我们下一期的《GPU十年历史追忆(中)》来为您一一揭晓吧。
凛冬将至……
在上一周的《视觉时代的回响GPU十年历史追忆(上)》,我们以DirectX9作为时间分野对GPU十年时代的开端部分进行了回顾,黄金时代是对2003~2006年期间GPU业界的最好概括。
那么按照DirectX的版本更新,伴随接下来出现的DirectX10的GPU时代又是怎样的呢?
没有永远的繁盛,这也许能够作为我们对GPU十年时代的最恰当的评语吧……
在经历了DirectX9如诸神黄昏般灿烂的激烈对决和兴隆之后,我们的GPU业界在接下来的DirectX10时代滑入了一条漫长而且凛冬一样寒冷的下行轨道。
技术进步陷于停滞,硬件更新亮点缺缺,甚至连DirectX10这个API本身的存在感都稀薄到了极点——让屏幕前的您立刻说出完美支持DirectX10的游戏大作的名字,您能做得到么?
即便做得到,又能总共说出几个呢?
几乎是唯一的而且还不是原生的DirectX10大作——CrysisWarhead
DirectX9如果是金色的梦想王朝,那么DirectX10对于GPU十年的历史而言就是不折不扣的黑暗时代了。
是什么造就了那个不堪回首的时代呢?
又有那些东西是那片浑浑噩噩的岁月里值得被我们记住的呢?
在今天的文字里,就让我们继续拨
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 视觉时代的回响 GPU十年历史追忆 视觉 时代 回响 GPU 十年 历史 追忆