● 坚韧,成功的“秘笈”
要回答前页所提及的问题,同时理解GPU十年时代给我们带来的第三个关键词“坚韧”,我们先要来聊一些关于时代之外的话题。
2011年8月,NVIDIA与斯坦福联合发表了一篇名为《Power and Programmability.The Challenges of ExaScale Computing》的论文,该篇论文探讨了一系列性能与功耗增长关系以及未来运算逻辑结构设计方面的问题。除提交了一系列当前架构环境下不同逻辑结构的典型性能功耗状况数据并展现了性能功耗比对未来运算架构发展的影响之外,该篇论文最大的亮点在于NVIDIA拿出了针对性能功耗比以及未来并行机图形运算需求的解决方案——Echelon架构。
Echelon架构面向10nm这一目前半导体工艺能够达到的实际界限,计划拥有290平方毫米左右的芯片面积。该架构暂时未包含光栅化在内的常规图形处理单元,虽然不能完全排除NVIDIA放弃光栅化专利墙的优势,转向以超大规模运算能力来直接完成图形处理全部过程的可能性,但这对于手握大量专利的NVIDIA来说太异于常规,因此我们认为Echelon是一个针对未来NVIDIA架构中运算部分的逻辑结构。
尽管从时间点上来看,Echelon架构并不是即将出现的下一代NVIDIA图形架构Maxwell,但从Echelon身上我们依旧能够看到诸多的Maxwell特性。可以预见,Maxwell将会是一个进一步强调吞吐的并行运算,同时拥有极高灵活度和通用性的架构。
Echelon架构细节
Maxwell会将几乎全部的任务仲裁和分配管理任务交给融入GPU构架的通用处理器,也就是Project Denver设计的ARM CPU来完成,这种做法在确保任务分派能够及时完成的同时赋予了整个构架更大的灵活度和单元复用率,同时还给SM单元腾出了巨大的可扩展空间,这部分空间既可以被用来扩充ALU团簇的规模,亦可以给更大的Unified Cache提供安身之所。更大的吞吐能力,更多缓冲带来的良好单元复用率以及新仲裁机制带来的高线程效率会让Maxwell的绝对性能以及每瓦特性能达到NVIDIA架构发展史上最高的水平。而这两点,恰恰是一款优秀GPU所应该具备的最基本特质。
为什么要来聊这些呢?因为将这些特性集于Maxwell架构一身的,正是过去6年来NVIDIA历经4代构架所完成的阶梯式的发展体系和完整的经验积累过程。推进这一过程的核心动力,是完整的计划性以及对计划坚定贯彻的执行力,亦即我们所说的“坚韧”。
在第一级台阶中,G80的革新为GPU带来了图形及通用计算所需要的根本特性,也就是新的包含shared在内的寄存器溢出缓冲体系以及并行化的Thread吞吐及管理模式,这为GPU打开通用计算大门的同时,也将高单元复用率+高Shader效率的NVIDIA图形构架发展基线确定了下来。
G80~GF100架构发展示意(图片引自后藤弘茂先生博客)
在G80完成了基本特性的引入之后,接下来的GT200对资源的扩充让NVIDIA完成了Thread吞吐量以及吞吐管理模式的摸索,Atomic等操作模式的引入让NVIDIA在线程管理和效率提升方面获得了更多经验,而密度翻倍的Register则让NVIDIA获取了GPU完成双精度运算所需基本条件的重要数据,并最终令NVIDIA掌握了实现半速双精度浮点运算的方法。
第三级台阶上的Fermi所做的事情同样重要,利用GT200上获得的经验,它顺利的将体系的宏观并行化以及任务群的并行化处理提上了前台并以此提升了图形和运算过程的整体执行效率,开始了对Unified Cache这一更好的寄存器溢出缓冲的应用探索,并结合统一定址展开了CPU进驻GPU 内部的准备工作。这些特性的引入不仅让纯数学层面的通用计算应用获得了更好的执行环境和效率,更为DirectX 11这样将图形运算与通用计算结合在一起的游戏应用提供了不错的执行环境。
接下来,在目前铺筑台阶的最高一层上,Kepler开始了整个计划中最关键同时也是最重要的一步——它将线程仲裁及管理工作从GPU内部逐步过渡到CPU,让NVIDIA得以提前适应特定任务处理过程从专用处理器向通用处理器转变的过程,为CPU的工作与GPU的工作连接成一个异构化的整体做好了准备。与此同时,Kepler也开始了对如何使用Logic controller所留下的空间的摸索工作。
不同逻辑结构在进行操作时的典型单位功耗
这就是NVIDIA为我们以及他自己所铺筑的通往目标的阶梯,从G80开始,每一代NVIDIA的GPU架构都存在着一个需要完成的目标,这些目标之间彼此关联并且最终指向了一个明确的目的地,那就是Maxwell以及NVIDIA版本的CPU/GPU“融合”方案。
尽管GPU以及GPGPU的发展看上去充满了变数,动不动还会冒出来一些“不得已”的转变过程,但从整体角度出发,两者前进以及最终结合的大方向是没有改变的。不管这个最终目标是否正确,想要达到它都需要一个完整的长期计划以及对这个计划坚定不移的执行能力。
NVIDIA最终的目的,在于推出一款能够很好地处理并行线程和指令吞吐,拥有良好双精度运算能力,单元复用率足够高同时每瓦特性能出色的GPU/GPGPU构架。该构架同时还要具有良好的图形与通用计算的结合性,能够很方便的延伸到桌面及专业图形领域。为了达到这一目标,尤其是获得最理想的每瓦特性能,NVIDIA选择了异构作为自己现阶段发展的最终目标,这一目标从制定的第一天起就未曾改变过。
40年来半导体芯片各项参数的发展汇总
为了达到这一目标,NVIDIA要分别面对获得大并行度线程管理经验、提升体系执行效率以及单元复用率、掌握代价可控的完成双精度运算的方法以及将通用处理器与传统GPU结合等一系列困难。于是,在完整的计划性的指挥下,G80带来了最初的并行Thread管理经验和寄存器溢出缓冲;GT200 完成了对双精度运算的寄存器需求探索同时引入了更加先进的Thread吞吐和管理机制;GF100收获了体系宏观并行度以及Unified Cache所带来的提升单元复用率的经验,同时,同时以统一定址为更好的通用计算应用性和CPU介入GPU事物创造了条件。而刚刚到来的Kepler,则在继承了前面积累的所有经验的基础上正式开始了将GPU工作过渡给CPU来完成的异构计算模式,为完整的异构架构以及最终的CPU/GPU“融合”构架打开了最关键的一道大门。
在这6年的时间里,NVIDIA的架构发展并非一帆风顺,它经历了家用机对PC图形API发展的冲击以及阻滞,切身感受了D线压迫的威力,被 Fabless导致的落后的EDA能力困扰了许久,甚至因为竞争对手先发小核心策略的原因而在成本层面持续了近2年之久的无法止住的出血,但是这些困扰都没有干扰或者改变NVIDIA最开始的初衷。现在,它在Kepler上开始了对成功的收获。
即便是GT200时代被迫进行的成本出血也未能让NVIDIA改变目标
无论我们的喜好如何,业已存在的事实总是无法改变的。也许很多人会为了满足自己的认同感而将AMD近年来的发展历程一厢情愿描绘成另一幅以“灵巧多变”为关键词的锦绣蓝图,但这描绘无论多么生动精彩都无法掩盖一个事实——当前的AMD正处在持续亏损以及图形部门盈利不能的状态,这显然不应该是一个成功者应有的结局。我们可以说Tahiti现在的表现是由于强调运算性能和运算效率而导致的,但问题是为什么AMD会在Tahiti上开始强调运算性能和运算效率呢?为什么是现在呢?整个业界中有谁曾经用枪指着AMD工程师的脑袋让它们不要在Tahiti之前进入到“运算领域”中么?为什么NVIDIA就不用在Kepler架构上补这份课却可以提供GK110这样功耗与对手相当但运算性能却远超对手的架构?
过程决定结果,只有正确的过程才会导出正确的结果。如果没有完整的计划性以及对计划坚定贯彻的执行力,如果在遇到困难时不付出坚持和坚韧作为代价,成功是不会自己向你走来的。做GPU如是,做人亦如是。
相关报道:
- 传三星打造自主品牌GPU 令其产业链锦上添花2014-09-17
- 视觉时代的回响 GPU十年历史追忆拾遗篇2013-09-18
- GPU炼金试验室 GK110核心/显存关系解密2013-07-11
- GPU霸气十足 APU平板演示视频曝光2013-04-10
- 骁龙600架构全解析 CPU/GPU详细测试2013-04-09
本类最新
本类最热
科技视界
要闻推荐
今日视点
热点专题
新闻图片
- 新闻排行
- 评测排行