NVIDIA的2017规划 整合"CPU到GPU中"?
10月28日 NVIDIA在中科院做了一个关于GPU计算的研讨会,会上NVIDIA的CEO黄仁勋和首席科学家Bill Dally分别作了一个演讲,黄仁勋的演讲主要集中在GPU计算的现在,而Bill的演讲更多地讲到了GPU计算的未来可能发展的趋势。按照Bill的说法,现在CPU的性能发展已经进入到一个瓶颈阶段,而未来的处理器将会主要采用并行处理器(如GPU)进一步提升性能。在演讲后面有一个NVIDIA未来GPU的展望的一页,里面说道在2017年ExaScale GPU的可能规模:
在300W的GPU中将整合2400个core,共有7200个FPU单元,性能将达到40T单精度浮点数和13T双精度浮点数的量级。其实这个并不是最重要的,最重要的是这个演讲显示未来的NVIDIA的GPU中将会整合进多个CPU 或者多个CPU核心。
当然大家都知道NVIDIA并没有CPU,因此其GPU会依赖于Intel和AMD的CPU以及他们的平台。当然,NVIDIA的说法是CPU+GPU的异构计算系统才可以获得最高的效率,但是问题没有掌握CPU的资源就没有掌握平台,而且在大规模计算架构中,也需要混合部署CPU和GPU的服务器,计算密度难以提升。失去了平台就会处处受制于人,比如Intel和AMD也可以通过平台的规格来限制GPU的实际计算能力的发挥,比如简单地将PCI-E的性能提升速度降低,就可以直接限制GPU和CPU的数据传输能力,从而限制GPU实际能力的发挥。
Fermi这一代的GPU实际上已经具备了相当程度的CPU的特征,也有些人正在研究将Linux修改后直接运行在Fermi中,但是目前看起来绝大多数基于Fermi的平台还是会采用传统的CPU+GPU的模式,这就给Intel和AMD利用平台的优势限制NVIDIA GPU的机会。要解决这个问题,有人正在研究使用ARM CPU+Fermi GPU的方案。ARM CPU的能力很弱,但是Fermi的可编程能力却很强,因此可以让ARM CPU的任务仅仅是跑OS、驱动程序和启动Kernel,计算任务完全在Fermi GPU上跑,可以将很小体积的ARM系统直接整合到Fermi服务器中,从而获得更高密度的部署并且解决CPU依赖的问题,ARM的低功耗还可以降低整个系统的功耗。不过这种方案的问题是ARM的计算和内存等性能实在太弱,而且也没有高性能的输入输出接口,PCI-E也需要专门的桥接芯片,相信这种方案仅仅适用于有限的应用中。
从长远的角度来看,NVIDIA要解决CPU的依赖型的问题,具备自己的CPU是必然的事情。虽然在提问中我们问了Bill关于NVIDIA是否会在近期就在GPU内整合CPU的问题,Bill用Tegra打起了太极,而且说明在现阶段较难做到,但是并没有否认下一步会这样做。我们是否可以认为在下一代的NVIDIA GPU内部会整合进一个或者几个CPU核,从而彻底解决CPU依赖的问题呢?
虽然Intel和AMD都在推CPU整合GPU的方案,但是这些方案都是一个大CPU整合一个小GPU的方案,主要是提供低成本和低功耗的低端解决方案。而在未来一段时间GPU和CPU在基本架构上很难融合情况下,也许一个类似于Fermi这样的大GPU整合进一个较小的CPU(比Larrabee的标量处理单元强,类似于主流CPU核),是面向高端图形和高性能计算的一个新颖的思路。我相信没有NVIDIA主动采取这样的措施,Intel和AMD绝难这样做,因为现在高端的CPU才是他们的最大收入和利润来源。我们期望NVIDIA在未来继续在计算机架构上进一步创新,这也许会给业界带来一轮新的变革,否则持续保持现有的PC架构,则NVIDIA的路会越来越艰难