1遥望破晓
《视觉时代的回响 GPU十年历史追忆》的连载已经过半了,我们对GPU十年时代进行的回顾已经走过了充满停滞的DirectX 10时代,在些黯淡的岁月里,繁盛这个词无情的离开GPU业界,有没有谁能够打破这样的黯淡并重新给予业界以新的希望呢?
没有人喜欢无边的长夜,但要想让自己重获光明,除了祈祷并遥望破晓的到来之外,业界还需要做许多更加实际的事情,寻找从根本上解决停滞问题的办法就是其中之一。想要改变GPU业界在DirectX 10时代的沉闷,重新刺激需求端的增长和业界的前进,最有效的办法似乎只有一个,那就是更新一个更有革命性和刺激性的图形API版本。
DirectX 11最重要的革新——Compute Shader
在RV770与GT200的对决落下帷幕之后,微软发布了全新一代图形API——DirectX 11,其中的Shader Modle5.0将人类对像素的处理,以及对像素处理单元的应用提升到了一个全新的高度。在先前的Shader Modle4.0更加灵活的shader应用的基础上,微软引入了Compute Shader这一创造性的概念,通过打破几何关联的方式将像素处理单元的运算能力释放了出来。在Shader Modle5.0中,通用计算和像素乃至整个图形计算的界限已经变得模糊,过去看似对图形计算毫无帮助的通用计算设计,现在都显露出了应有的价值。再加上并行kernel等新技术的引入,Shader Modle5.0成了有史以来最强大同时最高效的Shader版本,这种高效给更多优秀特效的实现提供了完美的基础,人们都热切的期待着AMD和NVIDIA能够奉献出完美支持新API的图形构架,并将GPU带入全新的光明时代。
DirectX 11带来的图形质量进步能够让业界重获光明么?
但在DirectX 11时代的起点上,我们等到的并不是曙光,而是黎明前最深沉的黑暗……
2黎明前最深沉的黑暗
● 黎明前最深沉的黑暗
RV770为AMD取得了双赢,于技术层面上,它巧妙的使用大规模并行吞吐来掩盖延迟的做法得到了广泛的肯定,于市场层面,得益于小芯片策略的运作以及广大爱好者的期许,它也抢回了很多曾经失去的市占率。这本来是一片大好的形势。AMD完全可以利用这次机会思考自己在架构设计层面所面临的问题,积累经验,展开与微软的进一步合作,将未来构架设计以及整个图形领域推向更好的未来。
但在获得了RV770的成功之后,AMD再次收获了一个错误的信号。跟以前一样,AMD再次误以为自己所选择的方向以及对未来的预测是正确的。微软什么的都不重要,它说的根本不算,我甚至可以说微软在阻碍技术的进步和发展(事实上当时的AMD确实这么做了……)!吞吐才是王道,shader灵活性以及泛用性问题无关紧要,起码是可以慢慢悠悠的去弥补的。只要我推出的东西市场就会买账,我说的市场就会去相信和接受,我想要的市占率即便现在不属于我,总有一天也会回到我身边。我为此所要付出的代价,只不过是再去赌一下先进工艺,然后不停地放大规模就行了。只要能赌赢,I'm the King of the World!Again!
收获了错误信号的AMD果然没有辜负历史的铁律,摆在我们面前的RV870,可以说已经完全达到了不知所云的状态——RV870的ALU团簇结构相对于RV770完全没有任何改进,依旧维持4D+1D VLIW的设计思路,线程粒度也未有任何变化,仅在寄存器密度上完成了对Shader Modle5.0的基本支持,最大的甚至可以说是唯一的改进,就是ALU总量又多了一倍。uncore的缓存部分同core部分相当,GDS虽然提升到了64K,但这更多的是出于对Shader Modle5.0对于shared资源32K下限的机械迎合,相比于成倍放大的运算资源来说GDS依旧完全不够用,甚至AMD都完全没有搞清楚微软对32K shared下限的定义究竟在哪个层级。另一级缓冲,也就是LDS的读写方式虽然有了不小的改进,但也只是在做竞争对手在几年前就已经做好了的事情而已,整个陈旧的缓存体系对于Shader Modle5.0的全新要求根本没有任何的帮助。RV870不管从哪个角度来看,都只是一个运算和后端资源大幅放大,然后仅仅是“支持”或者说能够运行Shader Modle5.0代码的RV770胖子版。它的最大收获,仅限于没有任何变化的简单直接设计以及40nm工艺所带来的相对较低的功耗、已经极端贴近小芯片策略允许上限的核心面积尺寸、以及“世界上第一块支持DirectX 11”但却几乎不具备DirectX 11性能的显卡的名号。
RV870芯片
RV870这种对DirectX 11相当机械的,甚至是透着不情愿的迎合没有逃过API的考验——只要应用环境进入真正的DirectX 11领域,哪怕是并不成熟的DirectX 11,甚至是那些根本算不上是DirectX 11应用、只不过罩了一层简单的“DirectX 11外壳”或者仅用了跟DirectX 11的灵魂关联不大的曲面细分的场合,RV870的性能都会马上变得毫无竞争力,它作为一款DirectX 11 GPU,存在的意义竟然是传统的DirectX 10甚至是更传统的DirectX 9环境下的应用。R600发展到RV770可以说是坚韧不拔的坚持,以及对既有构架的剩余价值在利用,到了RV870还没有任何变动,就成了抱着裹脚布不放了……
对DirectX 11的理解错误并不是RV870的最大悲剧,如果说这款架构仅仅是因为设计失当而收获了一次失败的话,那它对业界的影响也许不会那么的深刻和苦楚,甚至在某种程度上讲还是对业界以及AMD自身的一种幸运。可惜的是,这种幸运最终没有降临。
RV870的设计的粗陋不仅没有在当时成为它的弱点,却反而为RV870带来了极大的好处——它出现的足够快,甚至太快了,快到DirectX 11还没有正式的栖身之所(在RV870发布的2009年9月23日,windows 7正式版以及让windows vista SP2支持DirectX 11的KB971512补丁均尚未发布)。在没有应用能够体现架构问题的阶段,RV870凭借强悍的DirectX 10性能以及极高的性能增长幅度成功的抓住了眼球,并且在掀起一轮狂热追捧的同时迅速占领了市场。凭借这款架构,AMD在Fermi架构发布之前甚至已经达到了近乎无敌的状态,不仅市占率再创新高,还将同期的NVIDIA逼入了死角。
作为一个新时代的开端,RV870虽然在短期内给AMD带来了辉煌,但却对GPU业界造成了极其恶劣和黑暗的影响,它是DirectX 11时代的第一款GPU架构,所以其上所承载的特征也就理所当然的在相当长的时间内被当成了DirectX 11的全部要求,人们觉得DirectX 11的特性和效率就应该是这样而且不过如此,即便这些被RV870所传递出来的信息都是错误的,即便DirectX 11本该是一个效率和特性均极具颠覆性的API,但大多数人都不知道或者不在乎这些。除此之外,它还影响了AMD后续GPU架构的更新节奏和步伐,削弱了其后续产品的竞争力并为Tahiti的失败埋下了隐患的种子,如今AMD在竞争层面所表现出的疲态,几乎全部都是由RV870导致的。
那么,RV870这么做的目的和初衷是什么呢?答案很简单——打乱NVIDIA的节奏,用更快速的反应将产品更新的主动权抓回自己手中,进而让自己在竞争中重获主动。
3坚强的“瘸子”
● 坚强的“瘸子”
应该说RV870确实只差一点点就达到了AMD的目的,几乎同GT200一样,NVIDIA在刚进入DirectX 11时也没有多少优秀的表现,豪华的功耗,豪华的温度表现,受困于这两个豪华而产生的人类历史上第一款被阉割规模的旗舰,以及同样受困于这两个豪华所导致的与上代相同的1V1完胜、1V2完败、然后还没能力2V2的性能表现,这些都给初代Fermi带来了相当大的困扰。
AMD的目的是明显的,它希望以更短的研发周期和急促的架构更迭速率来打乱对手的节奏。只要将NVIDIA拖入到自己的节奏中,战略主动便唾手可得,最起码也可以阻滞甚至阻止对手在适当的周期内推出适当的产品,只要连续在节奏上压制对手,打乱对手架构演进的方向和节奏,胜利似乎应该是属于AMD的。
但“可贵的是”,AMD最终没有达成自己的目的,Fermi的逻辑结构设计最终得以完成,NVIDIA又一次挺住了。
GF100缓存体系
其实我们不难发现,Fermi的所遇到的问题均来自EDA相关领域,从逻辑结构上来讲,Fermi构架的表现其实是无可指摘的。彻底的GPC并行设计,灵活的多级Unified cache体系,充沛的运算资源和科学高效的多级线程仲裁管理机制,这些紧贴微软图形API需求的设计不仅在EDA改进但结构完全没有变化的Fermi2.0中得到了充分的性能释放,而且也再一次让NVIDIA完全站到了AMD的对立面上。RV870的设计复杂度,甚至还不如Fermi一个GPC来的高,这让RV870几乎丧失了在构架层面与Fermi进行竞争的资格——他们根本就不是一个时代的设计,苛求RV870与Fermi进行DirectX 11相关的较量,几乎可以被看做是刻意的刁难……
但是这只是逻辑结构的差异,Fermi现在所面对的敌人并不是逻辑结构,而是时间。RV870的出现确实让NVIDIA陷入了慌乱,Fermi虽然完成了逻辑结构的纸上/仿真设计,但将其转化成芯片的还有相当长一段路要走,AMD更快速的动作给了NVIDIA巨大的市场压力,并迫使其不得不压缩Fermi的EDA周期所占用的时间。缺乏足够时间保证芯片布局之类关乎功耗表现的设计顺利完成,仓促之下的GF100芯片只得在可制造性尚未成熟的情况下来到了市场,即便如此,Fermi依旧“迟到了”6个月之久。
这段时期对NVIDIA而言显然是五味杂陈的,Fermi出现前的真空期无异于水深火热的炼狱,究竟应该效仿快速推出R420的ATI,暂时先放弃或者修改Fermi的设计方案并更快的推出能够与RV870竞争的产品,还是忍受成本的流血以及市场的压力继续完成Fermi,这成了煎熬NVIDIA的两难抉择。这段时期对GPU业界而言又是生死攸关的,如果NVIDIA选择了屈服并转入AMD的竞争节奏,那么等待DirectX 11的将无疑会是一个比DirectX 10更为凄冷的严冬,在经历了DirectX 10时代的停滞之后,GPU业界已经无法再次承受停滞所带来的痛苦了。
在完成可制造性设计之后焕发青春的Fermi架构——GF110
还好,NVIDIA选择了坚持,Fermi虽然一瘸一拐的上了战阵,但其优秀的逻辑结构设计却得到了完整的保留,它不仅向业界展现了DirectX 11图形架构应有的设计理念(引入Unified Cache并进一步改善缓冲体系、突出灵活Shader和Compute Shader能力而非吞吐量、以GPC设计更好地实现了并行Kernel)、效率以及绝对性能,而且在工艺设计改进后还以GF110的身份为我们带来了相当优秀的性能表现。整个GPU业界因此而保留了起码在一个方向上维持正确且正常的架构演进的机会,DirectX 11也因此获得了展现其独特魅力的舞台。
那么接下来的DirectX 11时代,又将走向何方呢?动作比较快的AMD首先做出了反应,只不过与NVIDIA的坚持形成对比的动摇和转身。
4浪子回头金不换
● 浪子回头金不换
AMD其实并不“傻”,它在RV870设计完成之后便敏锐的意识到了危险,虽然市场依旧买账,但这个市场买账的原因AMD心里相当清楚。R600构架发展到RV870为止已经触碰了诸多来自物理层面的底限,想要进一步透支规模几乎是不可能的事情了。如果再不在IC设计上提供对更加灵活的shader的支持,同时将重心从甚至是放在几年前都应该已经成为历史的单纯吞吐领域转移到计算与图形的结合方面,而是饮鸩止渴一般的继续胡乱放大规模,那么等待AMD的,将会是另一个比R600更加黑暗的绝境。而如果再被逼入这种绝境一次,没有人能够保证AMD有再次从其中全身而退的幸运。
因此,AMD选择了转身,于是我们看到了积极改进运算和逻辑结构的Cayman构架,看到了大幅变革并借鉴竞争对手已有的先进经验的GNC,这从侧面也说明了AMD实际上是清醒的——如果真如某些人认为的那样,R600一路发展到RV870的路线都是合适和正确的,AMD走了竞争对手没走的正确的道路,我们显然没有可能看到这些转身的动作。这些积极的举措不仅为AMD的未来带来了希望,同时也为GPU时代带来了继续下去的希望。
只要有希望,生活就是美好的。
Cayman改进之后的全新VLIW4架构
作为对开端,AMD在Cayman上开始了针对RV870问题的一系列纠正,它添加了第二组用来ACE/Geometry Engine/Rasterizer构成的前端结构,在提升几何处理能力的同时提升了整个架构的并行度(关于这一点目前仍存在争议,有截图显示AMD曾经提交过双ACE架构的RV870架构图,但在现存的包括ISA Whitepaper在内的官方架构图及解释中均并无此类描述,因此我们暂时认定Dual ACE的引入时间点为Cayman而非Evengreen),同时还首次尝试了对VLIW SIMD Core的修改,为最终彻底摒弃纯吞吐逻辑结构打下了坚实的基础。尽管Cayman转身的幅度不够,并没有能够彻底跳脱出VLIW体系等痼疾的纠缠,但万事开头难,能够开始改进这件事本身的意义要明显大于改动了多少。
接下来的Tahiti真正让我们体会到了希望成真时的喜悦,这款被AMD寄予厚望的新一代DirectX 11 GPU架构几乎在一夜之间荡清了自R600以来AMD所积累的诸多弊端。它采用全新的CU单元(Compute Unit)来取代传统的崇尚吞吐的VLIW Core,每个CU内部包含4组SIMD Core,每组SIMD CORE由16个标准Vector ALU构成。这种全新的CU单元结构在逻辑层面上已经与Fermi构架的SM单元和Larrabee的Vector Unit存在极大的相似性,在计算能力和效率方面有了长足的进步,不仅令Compute Shader处理能力大幅提升,进而提升了GPU在DirectX 11环境下的图形性能,而且在通用计算领域也获得了更加广阔的前景和更多样化的发展可能。放弃VLIW的捆绑要求解放了运算单元,让其具备了DirectX 11所要求的灵活性。
Tahiti构架CU结构细节
除此之外,Tahiti架构还大幅改进了至Cayman仍旧为人所诟病的缓冲体系,不仅对原有的GDS以及LDS等Shared资源进行了调整和重新布置,更引入了非常重要的多级Unified Cache。Tahiti构架的每个CU拥有独立的32K GDS(Golbal Data Share),其中可以划分出16K作为L1 Data cache,CU单元还拥有共享的L1 Instruction cache和Kernel cache,每4个CU共享16K的L1 Instruction cache和32K的Kernel cache,更下层的768K L2 cache与MC单元一一对应,可以完成各种指令及数据的缓冲。另外,新引入的多级cache体系属于包含式结构,L2保存了全部的L1数据且能够允许L1数据进行回写。
Tahiti构架缓冲体系
得益于运算单元、任务管理体系和缓冲体系上大刀阔斧的全面改革,Tahiti架构终于实现了脱胎换骨式的飞跃。它的执行效率,尤其是DirectX 11效率在发布之初令整个业界为之震惊和欢悦,在经历了5年曲折的摸索和前进之后,AMD终于为我们奉上了一款契合API需求同时执行效率非常优秀的构架了,更令人兴奋的是这还是一个先发架构。如此成功的先发架构,除了收获各种桂冠并从竞争对手手中夺还失去的一切之外,还能有什么别的命运等待着AMD么?伴随着AMD转身之后的复兴,GPU业界一定会进入崭新的发展阶段,等待它的一定会是另一个DirectX 9.0一样璀璨的黄金时代。
遗憾的是这一切终究没有发生,因为整个GPU业界的DirectX 11时代在2个半月之后便迎来了新的统治者——NVIDIA的Kepler。
5生存不是童话
● 生存不是童话
Kepler与Tahiti都是双方积蓄许久之后爆发的革新之作,都应用了双方最全面的新技术和各项突破,其中Tahiti架构的革新不仅目的性更强烈而且也应该更加行之有效,但它们在最强单芯旗舰级领域的对决结局却是出人意料的。尽管提前发布了73天,同时兼顾了大量革新且具有纠偏意义的理念和技术,但基于Tahiti的HD7900系列依旧在性能、功耗和成本等所有环节全部落败。大核心芯片在功耗和成本层面输给小核心尚属正常,但在此基础上同时还在性能对决中输给小核心,这在GPU发展史上是非常罕见的——即便是功耗和成本令人诟病的GF100,起码也在性能和DirectX 11效率层面保住了面子。
是什么让Tahiti在对各项陈旧架构问题进行成功改进之后仍旧输掉了竞争呢?这个问题已经成了整个DirectX 11时代最核心的问题。它的答案对我们来说既熟悉又陌生——让Tahiti陷入这样境地的根本,来自其架构的寄存器设计。尽管这问题相当复杂,但对于我们以及整个GPU时代而言却是无法回避的。
寄存器在处理器中的地位
作为最重要的缓冲单元,寄存器需要面对来自线程(Thread)和数据的缓冲需求。如果设计者缺乏寄存器的使用和管理经验,寄存器对于每个线程的复用率较低,或者说每个线程在特定时间片段内可以占用的寄存器数量不足,要满足大并行度Thread的性能需求就必须通过增大寄存器总量的手段来完成。在此基础上,双精度数据通常需要组合单精度寄存器来完成缓冲需求,因此双精度数据对寄存器的需求量要来的更大,如果此时寄存器复用状况不佳,要保证线程充分并行和DP运算的性能需求,唯一的做法就只有进一步加大寄存器总量一途而已了。
为方便理解,我们将寄存器数量折合成3项指标,分别是Reg per Thread(每线程寄存器数量),Reg per ALU(每ALU寄存器均摊数量)和DP Reg(双精度寄存器)。Reg per Thread越高,架构就能以越少的寄存器总量来满足尽可能多的线程并行处理需求,进而在等量寄存器的前提下腾出更多的空间给提升DP性能做准备。Reg per Thread越低,架构就需要以更多地寄存器总量来满足并行处理需求。寄存器的整体需求量也可以量化成Reg per ALU数值,一个架构实现更高线程并行度和DP性能所需要的Reg总量就越高,摊到每一个ALU身上的Reg per ALU数值也就越高。
好了,现在我们来到了问题的关键环节。根据AMD和NVIDIA公布的数据,Tahiti架构拥有总计8192KB的32bit Vector Reg,在不考虑Scalar Reg等其他特殊需求寄存器的前提下,其Reg per ALU为4KB,它可以实现1/4速的DP性能。而Kepler架构的Reg per ALU数量则为1.33KB,NVIDIA可以以这一数值的实现1/3速的DP性能(GK110)。另外作为参考,Fermi的这一数值为4KB per ALU/半速DP。
4KB per ALU的Tahiti和1.33KB per ALU的Kepler,这样的数据意味着什么事呢?我们来算一笔通俗的帐——1个最基本的1bit sram单元需要6个晶体管来实现,更高的频率以及更低的延迟会让单元的晶体管数量进一步增加,我们并不清楚AMD和NVIDIA目前所处的频率水平需要多少晶体管来实现1bit的寄存器,但即便忽略一切其他相关单元,单纯考虑纯sram部分并用最保守的6晶体管方案来计算,4KB per ALU意味着Tahiti架构每个ALU均摊的寄存器晶体管数为786432个(6*32*1024*4),而NVIDIA每个ALU均摊的寄存器所占用的晶体管数则仅为261489个(6*32*1024*1.33)。
对于每一个ALU及其周边资源来说,Tahiti需要比Kepler多付出最少超过50万个晶体管的代价,而Tahiti架构总计拥有2048个Vector ALU,换句话说,就是即便以最保守的方式来计算,AMD在Tahiti架构中为寄存器所多付出的晶体管代价也在10亿以上。如果AMD进一步扩大Tahiti架构的Vector ALU规模,或者在寄存器单元中使用的是可以应对更高频率的7晶体管甚至8晶体管方案,这一数值还将继续扩大。
而Tahiti架构,一共只有4.3个“10亿晶体管”。
并未超越对手的计算特征和效率、比竞争对手高的Reg per ALU还有更大的DP衰减幅度,这些现象都反映了AMD在寄存器使用策略和算法上的存在的差距,它表明AMD无法完全解决诸如Reg pool以及rename之类许多环节的问题,所以只能以极大的寄存器总量来同时满足Thread性能/DP性能的需求,而这种解决方案恰恰是最致命的。单纯增加规模不仅低效,而且增加出来的晶体管并不会直接产生任何Flops或者图形性能。想要提升DP性能和Thread性能,AMD必须在扩充运算单元规模的同时付出比对手更多的寄存器晶体管代价,而对寄存器的过量使用不仅造成了Tahiti架构更容易受到D线的压迫,让功耗控制变得更加困难,还引发了一系列多米诺骨牌效应并挫伤了其在图形领域的表现。
同所有技术进步一样,对寄存器的使用也是一个积累和循序渐进的过程,只有经历过落后算法+低密度大寄存器总量的搭配和不断改进,在GPU这样的并行架构中为大量ALU和Thread提供先进的寄存器算法并降低寄存器总量/提高密度的目的才能够达成。双精度浮点运算只是一种数据精度,并不是什么实现数学运算过程的方法或者结构,它不能代表“通用计算”本身,但这种精度却是大量HPC领域应用的基础。想毕业并搭上HPC这辆通往利润的列车,任何人都是要交学费的。为NVIDIA交了学费的架构,是我们在中篇中曾经提到过的被各种任务所累的GT200。
在GT200中,NVIDIA展开了一系列大并行度架构吞吐及运算保障体系的研究和实践。NVIDIA为GT200中ALU所配置的寄存器总量达到了1920K,这让它的寄存器密度直接上升到了8K per ALU的等级,而这样的密度,仅能保证GT200获得1/12速的DP性能,NVIDIA甚至为如此大量寄存器带来的晶体管负担而大幅踩过了D线(什么是D线?),并受到了来自可制造性和功耗问题的强力压迫,但正是GT200的牺牲以及18个月以上充分的消化/转化周期,为之后的Fermi架构积累了充足的寄存器使用经验,并让NVIDIA在其后的2个架构更迭周期中分别完成了4K per ALU VS 半速DP以及1.33K per ALU VS 1/3速DP的寄存器密度与双精度运算能力。Kepler之所以能够避免寄存器带来的晶体管负担,正是GT200的努力,以及NVIDIA持续坚定贯彻架构演进路线和步骤没有变更的结果。
同一时期,AMD所要面临的问题与NVIDIA并不相同,R600选择ILP的战略错误需要纠正,市占率下挫的压力需要纾解,因此AMD没有NVIDIA那样充裕的时间和空间去推陈出新。它在GT200同时代所推出的RV770是一款没有对架构进行过多革新,仅是部分弥补了缓冲体系缺陷等设计问题之后大幅放大规模的产物。RV770的选择是正确的,没有温饱做基础,大谈进步显然很苍白,所以我们先快速的取得资源并收复失地,然后在慢慢迎头赶上也不错。但在RV770取得了市场认可,成功缓和了AMD市占率和利润压力之后呢?
在落后GT200一代之后,AMD本应该在进入DirectX 11的首款架构中完成一系列的任务,包括新的D线的划分(设计更大尺寸的芯片并掌握可制造性信息)、对宏观并行度结构的实践(类似NVIDIA的GPC并行结构)、unified cache等先进多级公共缓冲体系的导入、对DirectX 11中最新出现的compute shader的研究以及寄存器使用模式的深入探索。如果AMD能够在此时出现的架构中完成哪怕上述一半的任务,尤其是开始进行GT200类似的对寄存器使用方式的探索的话,今天的Tahiti都将会免于承受来自大量寄存器所导致的沉重的晶体管压力,而压力转化成性能和效率将让Tahiti变成一款更具竞争力的产品。
但最终,AMD推出的却是几乎没有任何改进,完全可以被视作“支持DirectX 11特性的放大版RV770”的RV870……
AMD在RV870上选择了不对任何特性进行探索和改进,并维持了12个月左右的快速架构更迭周期,这一决定连同时间不足的研发周期让AMD的改进和探索又被推迟了一次。它导致AMD在寄存器算法改进的节奏上落后了NVIDIA两个架构更迭周期,并直接导致了Tahiti在寄存器层面上仅仅达到了介乎于GT200/Fermi架构之间水平的结局。所以Tahiti今天的命运,它所背负的晶体管负担,以及整个AMD的节奏性致命伤,甚至是几乎已经注定将会继续受困的AMD未来图形及运算架构发展过程,都起源于RV870遗留下的黑暗的诅咒。
AMD欠缺的经验:G80~GF100寄存器密度变迁(图片引自后藤弘茂先生博客)
时间对于任何人来说都是公平的,对于同时研究相似内容的两个实力相当的群体来说,达成相同目的所花费的时间应该是接近的。相比对于NVIDIA和前ATI来说很健康的18个月的研发和架构更迭周期,AMD当前采用的12~14个月的研发周期必然会产生研发不足,这种不足会被转化到技术层面并被不断的积累,所以经由R600至今的积累,AMD已经有了相当于一个产品更迭周期的技术空缺,而RV870的出现又在节奏上再次为AMD带来了整整一个产品更迭周期的节奏问题。用最通俗的话说,就是这一系列的问题让AMD落后了接近2代,并且这种落后会在未来进一步扩散自己的负面影响。所以尽管AMD在Tahiti架构上进行了让所有人眼前一亮的转身,其“纠偏”举动对业界而言也弥足珍贵,但处在GT200/Fermi之间的寄存器水平“伙同”包括D线在内的诸多事端一起消弭了转身带来的积极意义,而这些负面影响的始作俑者,正是RV870。
该怎么说呢?惋惜?扼腕?痛心疾首?心有不甘?这些形容词可能都难以我们对AMD以及DirectX 11时代的感受,更无法描绘我们对RV870强烈的厌恶感……
6抉择?有么?
● 抉择?有么?
在AMD的华丽转身与NVIDIA的顺利收获同时上演之后,伴随着Kepler与Tahiti架构对决的尘埃落定,我们的GPU十年时代也终于来到了尾声部分。在时间的尾巴上,我们看到了最不愿看到的后续情节。
Tahiti架构
由于传统市场的萎缩和自身竞争力的不断受损,AMD连续被亏损所困扰。在此基础上,不断扩展的漫长研发战线联合越拉越大的技术差距一起向AMD提出了更多的现金和资源需求,在这样的紧要关头,愚蠢的市场策略导致的定价问题又接二连三的出现并进一步伤害了AMD,无论是2999的HD7800首发定价还是大量PRC Only产品的出现都干扰了AMD的新品推广速度,接踵而至的短时间以内连续调价不仅没起到刺激需求的目的,反而加剧了市场的观望氛围,并进一步加剧了AMD的亏损。
本应热卖却在起点上定错了价格的HD7800
生存不是童话,纵使心怀再大的抱负,如果没办法活着去实现它们的话,这些抱负也都将毫无意义。于是,DirectX 11以及我们的业界一起来到了一个新的十字路口,一个令人感到难堪的十字路口。
Tahiti架构所面临的问题需要一次新的架构更迭来进行修正,而这显然并不符合成本要求并且会带来沉重的资金和研发资源压力,这种压力对当前财政状况下的AMD尤其沉重。如果紧随Tahiti之后再苛求AMD提供一套大改基础的全新架构,即便AMD拥有所需的技术储备,最终也可能会因为Tahiti架构的开发成本没有转化成利润而直接被送入破产倒闭的不归路。而如果选择容忍并接受AMD提出小幅改动版的全新一代架构,我们又将会回到DirectX 10时代的停滞和昏暗当中。无论向左还是向右,这选择都不可能令人感到满意,但我们并没有获得其他选项的幸运。
全新的DirectX 11、Tahiti的精彩转身以及与Kepler的对决都没有为GPU业界迎来黎明的曙光,它们更像是一次灿烂的花火或者一枚划破天际的耀眼流星,虽然光耀动人但却没有最终照亮整个GPU业界的夜空。而在这持续已久并将持续依旧的夜色中,我们遗憾的完成了关于GPU时代的回忆。
即便仍有重回黄金时代的希望,我们现在所能做的似乎也只有等待而已,可这等待究竟要持续多久呢?整个GPU十年时代虽然在黯淡中落下了帷幕,但它却在留下珍贵回忆的同时为我们阐释了许多道理,我们要怎样拾起并体会它们呢?我们将会在下周的《视觉时代的回响 GPU十年历史追忆终章》中为您带来这些问题的答案,敬请期待吧。
《GPU十年》通过连载,已经为我们还原了DirectX 9和DirectX 10两个时代,本文将带我们来到DirectX 11时代。让我们一起看看这个时期都发生了什么……
推荐经销商