在我们的印象中,NVIDIA总是喜欢后发制人。不论是单核心旗舰还是顶级双芯产品NVIDIA都会晚对手半拍发布,但往往又能成功击溃对手刚建立起来的性能优势,重夺显卡性能王座。而这一次,GeForce GTX 680的高能耗比特性,让NVIDIA的双芯方案研发进度显著加快,也让NVIDIA多年来第一次抢先对手发布了顶级双芯旗舰产品——GeForce GTX 690。那么这款“早产”的旗舰表现如何?会被对手后来追上么?
在此前的GeForce GTX 680的评测中,本刊就当时所能掌握的资料,已对GK104以及其代表的“Kepler”架构做出了比较详细的解读。当前发布的GeForce GTX 690实际上就是两颗GK104核心集成在一张PCB板上的双芯产物。因此,在同为GK104核心的GTX 690上,我们就不再重复类似的内容,仅补充一些GTX 680发布后陆续挖掘的有关“Kepler”架构的新消息。
事实上,GTX 680以及今天要介绍的GTX 690都是采用“Small Kepler”架构的产物。之所以加上引号并称其为Small Kepler,是因为还有一颗更为硕大的“Big Kepler”产品尚未发布——也就是传说中的GK110。原本在NVIDIA的规划中,GK104是被定名为“GTX 660 ”的产物。NVIDIA的原计划中,受限于开发进度,将由双芯的“GTX 660”暂时替代GK110对战AMD的旗舰Radeon HD 7970。当HD 7970正式发布后,NVIDIA意外地发现它的预想敌远没有想象中的出色。这也让GK104的定位一路从“GTX 660”、“GTX 670”跃升到终的GTX 680。这似乎也预示着GTX 690一出生就是个没有敌手一代卡皇。至于那颗更为硕大的“Big Kepler”,由于NVIDIA加强了保密等原因,截至发稿前我们很难挖掘有关它的详细信息。不过这显然就是我们在GTX 680测试中预测过的高效大核心,一颗难逢敌手的半代升级产品(这里的升级并非指工艺和架构上的更新,而是根据研发和发布进度导致的定位差异。事实上GK110很可能命名为GeForce GTX 780)。
GK110核心图,据悉它的核心面积达到550mm2,集成约70亿晶体管。
“Small Kepler”的代表作就是首发的GK104,在这颗核心上,NVIDIA彻底改变了传统的设计架构,采用了全新的流处理器设计方案,使用了更为轻量级的单个CUDA Core,架构方面也转向SIMT单指令多线程结构。也就是当时被我们称之为具有SIMD特色的MIMD架构。现在伴随GTX 690的发布,它被正式定名为SIMT。
传统的CUDA Core中包含了一个整数单元和一个浮点单元,并且还有一些分支和指令处理单元,这部分单元耗费了不少的晶体管,使得NVIDIA的每一个CUDA Core的体积较大。与此同时,AMD产品的流处理器数量总是远远超过NVIDIA同档次的产品。
是因为AMD将传统产品中,将绑定的、基本无法拆解执行的4D或者5D流处理器中的每一个单元算作一个流处理器,以满足市场宣传的需要。不过,在新的AMD的GCN中,AMD采用了一种名为“基于SIMD阵列的MIMD架构”,这种架构将GPU的底层重新设计并彻底SIMD化。每组GCN单元中就有6 4个对等的1D标量单元,AMD将其称为64个流处理器。从AMD的设计来看,GCN每次处理的小单位是64个“命令”,如果不足64,指令调度器会等待下一波数据来临。(这里先埋个伏笔,请玩家们记住64个“命令”是小粒度。)
其实,NVIDIA传统CUDA Core的发展也不顺利,比如能耗比、每平方毫米性能等都显著落后于竞争对手。因此在“Kepler”上,NVIDIA需要彻底改变这种情况。在2 010年开始设计产品时,NVIDIA就确定了对能耗比的极端要求。经过漫长的设计、试产和测试循环,我们终看到了这颗令人惊奇的“Small”产品。惊奇归惊奇,目前的问题在于NVIDIA没有明确的资料说明对这颗“Small Kepler”的流处理器做出了何种改动,甚至连公布的体系架构图和晶圆照片相也无法一一对应。仅根据公布的数据结合上我们挖掘的资料看,“Small Kepler”已彻底放弃传统复杂且较大的CUDA Core设计,将传统每一个CUDA Core中存在的指令处理相关部分大大简化。计算部分也彻底放弃了1∶1配置的浮点单元和整数单元,转而采用类似SIMD的1D标量单元,再利用大量简单的1D单元来提高效率。没错,这就是我们之前认为NVIDIA很可能和AMD设计思路殊途同归的原因。
不过,即使是同一思路,实现的效果也会千差万别。虽然从架构底层来说,AMD和NVIDIA可能都采用了类SIMD的设计,但由于NVIDIA在体系结构、缓存设计、资源配比等方面有丰富的经验累积,所以我们看到了1536个1D单元战胜2048个1D单元的结果。其实完成这个以少胜多“壮举”的关键,就在我们之前强调过的“小粒度”上。GCN的小粒度是64,这是个很关键的设计点。实际图形处理运算中,一次计算的数据粒度远没有64这么大,因此NVIDIA并没有为Kepler设计类似 GCN那样小粒度都长达64个命令的调度器。在G C N陷入频繁等待数据的窘境时,“Kepler”已经在高效地处理数据了。因此终NVIDIA为用户带来了一颗能耗比方面极其优秀的产品,以示区分NVIDIA也骄傲地将其称为SIMT架构。