超级计算机芯片CPU+GPU究竟有多重要?
吴国林,2010-12-07
四评“天河一号A”超级计算机
在高性能计算机的建造中,其芯片的结构分析(图片来自于互联网)。
我们知道,在一般的普通计算机或家用电脑中,其芯片CPU的性能在根本上决定了其他部件(如显卡、声卡等)的可能发挥的性能或可能扩展的性能,即CPU预先提供了这种可能性。虽然,在同一核心CPU的前提下,通过软件与硬件的配合会更好的发挥CPU的性能,但从根本上,它们都不可能超越CPU所潜在、预先规定的性能,或可能拓展的空间。一般来说,在通常的电脑中,显卡仅起辅助作用。
下面我们要具体分析在超级计算机“天河一号”中核心CPU、显卡等所起的作用。
2009年10月29日诞生的“天河一号”超级计算机,采用的是CPU+GPU异构计算设计,这里的GPU是图形处理器。这就是说,在“天河一号”中已经将CPU与图形处理器GPU整体地加以考虑,以便性能优化。为什么如此呢?计算行业正在从只使用CPU的“中央处理”向“CPU与GPU并用”的“协同处理”发展。
在传统的GPU(显卡),显卡对于高端大规模并行运算是毫无价值的,甚至要拆除“多余的”显卡以节能功耗。但是,高性能计算(HPC)的真正开始:是充分发挥GPU的作用,并与计算机的中央处理器CPU相配合。即形成了新通用计算机理念——CUDA架构。CUDA架构是AMD公司的Stream架构NVIDIA公司设计完成的,CUDA架构奠定了GPU通用计算地位,由此构建了采用大量GPU来获得更加廉价和绿色的计算能力。因此,显而易见,CUDA的强大性能引发了一场通用计算的革命,这将极大地改变计算机的面貌。
所谓CUDA是指计算集成装置的架构(Compute Unified Device Architecture),这是显卡厂商NVidia推出的新的运算平台,而且是一种NVIDIA推出的通用并行计算架构。在CUDA架构中,它包括CUDA指令集架构(ISA)以及GPU内部的并行计算引擎,使用C语言来为CUDA™架构编写程序。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。
随着GPU可编程性的增强,GPU的性能已远远超出显卡的任务,于是利用GPU完成通用计算的受到高度重视,即将GPU用于通用计算——GPGPU(General Purpose computing on graphics processing units,基于GPU的通用计算),这就形成了GPGPU计算通常采用的CPU+GPU异构模式。
2009年诞生的“天河一号”采用的就是CPU+GPU异构计算架构。它使用6144个Intel通用多核处理器和5120个AMD图形加速处理器,内存总容量98TB。其中GPU的型号正是ATI上一代高端GPU产品HD 4870X2。
可见,国内首台千万亿次超级计算机“天河一号”正是在AMD公司的CPU+GPU异构模式的基础上开发的,显然,与此相关的互联技术是由CPU+GPU这一架构本身潜在的决定的,它提供那样一种可能性。
那么2010年11月16日经过全面系统升级的“天河一号”二期计算机(天河一号A)相对于“天河一号”又有什么调整呢?首先是更换了可编程性较差的ATI GPU产品,采用了全新的Fermi架构CUDA概念Tesla GPU。实际上,“天河一号A”目前的配置是14336颗英特尔六核至强X5670 2.93GHz CPU和7168颗NVIDIA Tesla M2050 GPU和2048颗自主研发的八核飞腾FT-1000 CPU。处理内核数突破20万颗,是去年24576颗的8.25倍。
什么是Tesla GPU呢?Tesla GPU是基于全新架构、性能更强的并行的GPU。Tesla完全专为高性能计算而设计。Tesla拥有更低的平均无故障时间和平均故障修复时间。据报道, 2010年11月的全球最快超级计算机的前五强计算机中,有三台均采用英伟达(NVIDIA)Tesla GPU。GPU已经成为打造全球顶尖超级计算机的关键技术,每颗GPU包含数以百计的并行核心,同时处理这些分割后的任务。
显见,“天河一号A”较之于“天河一号”超级计算机,处理内核数更多。在“天河一号A”,使用国产CPU 2048颗,而使用美国14336颗英特尔六核至强X5670 2.93GHz CPU和7168颗NVIDIA Tesla M2050 GPU,即国外CPU+GPU有21504颗,其中最为关键Tesla M2050 GPU具有极为先进的并行性能,当然,国内还无法制造,也是国产其他芯片所不可能替代的。
因此,CPU+GPU,特别是Tesla GPU所起的核心作用,是其他任何芯片所无法取代的。正是CPU+GPU这一架构决定了“天河一号A”所可能使用的互联技术,而不是互联技术重于CPU+GPU。
不难得出这样的结论:正是芯片本身的结构与性能决定超级计算机的扩展可能性与潜在开发能力,计算机的互联技术仅起辅助作用。
如果不看清这一点,我国的超级计算机研究就会走入一个死胡同。