● 学费早晚要交,不交就毕不了业
在上期的《显示世界的2012中篇 年度GPU架构回顾》中,我们曾经围绕Tahiti的架构问题提出过很多疑问:Tahiti背负了寄存器的负担,那是谁给了Tahiti寄存器的负担?为什么Tahiti要去背负这样的负担?为什么是现在?我们为什么称其为“AMD的致命伤”而不是“Tahiti的致命伤”?这负担对今后的AMD图形架构发展有什么影响?为什么Kepler不用面对同样的问题?现在,我们可以来回答这些问题了,因为这些问题的答案,都藏在前页我们所总结的架构更迭时间轴以及节奏当中。
同所有技术进步一样,对寄存器的使用也是一个积累和循序渐进的过程,只有经历过落后算法+低密度大寄存器总量的搭配和不断改进,在GPU这样的并行架构中为大量ALU和Thread提供先进的寄存器算法并降低寄存器总量/提高密度的目的才能够达成。双精度浮点运算只是一种数据精度,并不是什么实现数学运算过程的方法或者结构,它不能代表“通用计算”本身,但这种精度却是大量HPC领域应用的基础。想毕业并搭上HPC这辆通往利润的列车,任何人都是要交学费的。为NVIDIA交了学费的架构,是2008年6月的GT200。
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代,并且这种落后会在未来进一步扩散自己的负面影响。所以尽管Tahiti相对于AMD其他架构而言转身转的漂亮,但处在GT200/Fermi之间的寄存器水平“伙同”包括D线在内的诸多事端一起消弭了转身带来的积极意义。
有关NVIDIA的目的性,执行力以及G80至今的架构演艺路线,我们在《为NV“融合”打基础? GTX680架构深入探秘》有更为详尽的描述和讨论,有兴趣的读者不妨前往浏览。
推荐经销商