RV770为AMD取得了双赢,于技术层面上,它巧妙的使用大规模并行吞吐来掩盖延迟的做法得到了广泛的肯定,于市场层面,得益于小芯片策略的良好运作以及广大爱好者的期许,它也抢回了很多曾经失去的市占率。这本来是一片大好的形势。AMD完全可以利用这次机会检讨自己和NV在过去所犯下的相同的错误,积累经验,展开与微软的进一步合作,将自身的构架设计以及整个图形领域推向更好的未来。
但在获得了RV770的成功之后,AMD再次收获了一个错误的信号。跟以前一样,AMD再次误以为自己所选择的方向,以及对未来的预测是正确的。微软神马的都不重要,他说的根本不算,我甚至可以说微软在阻碍技术的进步和发展!吞吐才是王道,shader灵活性以及多用性的问题无关紧要,起码是可以慢慢悠悠的去弥补。只要我推出的东西市场就会买账,我说的市场就会去相信和接受,我想要的市占率即便现在不属于我,总有一天也会回到我身边。我为此所要付出的代价,只不过是去赌一下先进工艺,然后不停地放大规模就行了。只要能赌赢,I'm the King of the World!Again!
好吧,我承认类似的错误信号已经出现了好多次了,屏幕前的你又有了强烈的即视感也很正常。但历史就是这么的幽默,真的是应了那句名言了——the only thing we learn from history is that we learn nothing from history,翻译的粗俗些,我们从历史中学到的唯一的东西,就是我们从历史中毛都没有学到……
在RV770与GT200的对决落下帷幕之后,微软发布了全新一代图形API——DirectX 11,其中的Shader Modle5.0将人类对像素的处理,以及对像素处理单元的应用提升到了一个全新的高度。在先前的Shader Modle4.0更加灵活的shader应用的基础上,大商人引入了Compute Shader这一创造性的概念,通过打破几何关联的方式将像素处理单元的运算能力彻底的释放了出来。在Shader Modle5.0中,通用计算和像素乃至整个图形计算的界限已经变得极其模糊,过去看似对图形计算毫无帮助的通用计算设计,现在都得到了平反昭雪。再加上并行kernel等新技术的引入,Shader Modle5.0成了有史以来最强大的图形API,人们都热切的期待着AMD和NVIDIA能够奉献出完美支持新API的图形构架。
结果,最先等来的,是个半身不遂……
收获了错误信号的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胖子版。它的最大收获,仅限于没有任何变化的简单直接设计所带来的相对较低的功耗,已经极端贴近小芯片策略允许上限的核心面积尺寸,以及“世界上第一块支持DirectX 11”但却几乎不具备DirectX 11性能的显卡的名号。
Yes,the only thing we learn from history is that we learn nothing from history……
我们已经一遍又一遍地重复了类似的错误,再多重复一遍实在是很没有意思了。RV870这种对DirectX 11相当机械的,甚至是透着不情愿的迎合,让它付出了性能方面的沉重代价——只要应用环境进入真正的DirectX 11领域,哪怕是现在这种并不成熟的DirectX 11,甚至是那些根本算不上是DirectX 11应用、只不过罩了一层简单的“DirectX 11外壳”或者仅用了跟DirectX 11的灵魂关联不大的曲面细分的场合,RV870的性能就会马上变得毫无竞争力,它作为一款DirectX 11 GPU,存在的意义竟然是传统的DirectX 10甚至是更传统的DirectX 9环境下的应用。R600发展到RV770可以说是坚韧不拔的坚持,以及对既有构架的剩余价值在利用,到了RV870还没有任何变动,就成了抱着裹脚布不放了……
当然,RV870并不孤单,NVIDIA在刚进入DirectX 11时也没有多少优秀的表现,豪华的功耗,豪华的温度表现,受困于这两个豪华而产生的人类历史上第一款被阉割规模的旗舰,以及同样受困于这两个豪华所导致的与上代相同的1V1完胜、1V2完败、然后还没能力2V2的性能表现,这些都给初代Fermi带来了相当大的困扰。但我们不难发现,其实这些问题均来自EDA相关领域,从逻辑结构上来讲,Fermi构架的表现是无可指摘的。彻底的GPC并行设计,灵活的多级Unified cache体系,充沛的运算资源和科学高效的多级线程仲裁管理机制,这些紧贴微软图形API需求的设计不仅在工艺改进但结构完全没有变化的Fermi2.0中得到了充分的性能释放,也再一次让NVIDIA完全站到了AMD的对立面上。RV870的设计复杂度,甚至还不如Fermi一个GPC来的高,这让RV870几乎丧失了在构架层面与Fermi进行竞争的资格——他们根本就不是一个时代的设计,苛求RV870与Fermi进行DirectX 11相关的较量,无异于让关公去长沙外围面对侵略者的铁蹄一般……
AMD敏锐的意识到了危险,虽然市场依旧买账,但这个前面已经提到过的市场还能买账的原因你我心里都清楚,AMD心里同样清楚。R600构架发展到RV870为止已经触碰了诸多来自物理层面的底限,想要进一步透支规模几乎是不可能的事情了。如果再不在IC设计上提供对更加灵活的shader的支持,同时将重心从甚至是放在几年前都应该已经成为历史的单纯吞吐领域转移到计算与图形的结合方面,而是饮鸩止渴一般的继续胡乱放大规模,那么等待AMD的,将会是另一个比R600更加黑暗的绝境。而如果再被逼入这种绝境一次,没有人能够保证AMD有再次从其中全身而退的幸运。因此,我们看到了积极改进运算和逻辑结构的Cayman构架,看到了大幅变革并借鉴竞争对手已有的先进经验的GNC,这从侧面也说明了AMD实际上是清醒的——如果真如某些人认为的那样,R600一路发展到RV870的路线都是合适和正确的,AMD走了竞争对手没走的正确的道路,我们显然没有可能看到这些转身的动作。这些积极的举措不仅为AMD的未来带来了希望,同时也为这场持续了十余年且一直精彩纷呈的像素处理单元设计大战带来了继续下去的希望。
只要有希望,生活就是美好的。