GPU争夺霸权!NVIDIA谈超级计算机发展
[泡泡网显卡频道 12月23日] 超级计算机是为研究复杂科技课题而设计的,它是由成千上万颗多核CPU组成,应用方向主要是模拟物理系统,诸如地球大气层,模拟氢弹核裂变反应等等。这些系统本身就可以划分为多个区块分别计算,直接对应给多个处理器或处理器多核心,避免数据的频繁迁移来提高效率。
近年来,超级计算机在情报处理上的应用越来越频繁。诸如分析自然灾害中的交通网络状况,从电话录音中搜索恐怖分子暗语等等。这类情报应用往往需要大量检索数据库信息,较多核心处理器在这种应用中就不那么在行了。
Sandia实验室主要为美国国家安全部门服务,因此尤其关注情报应用。根据他们的模拟,8核心之后再往处理器内塞入更多的核心,并不能带来性能提升,在情报处理应用中反而会出现性能下滑。“16核的表现就和双核差不多”。他们近一年来和业内处理器厂商、超级计算机厂商以及超级计算机用户进行了大量讨论。得出的结论是,如果不对计算机架构作出修改,未来当出现16核32核处理器时,为超级计算机编程的程序员或许只好屏蔽部分核心,或是将这些处理器用于非重点运算应用。
问题的关键在于存储带宽上。尽管处理器内的核心在不断增加,但CPU同外界的通道带宽却没有同步增长。对于较多核心处理器来说,用数据把它们喂饱成了一个难题。根据模拟测试,在处理器芯片上堆叠存储芯片,以大幅提高存储带宽,或许是一种解决方案,至少不会使多核心处理器性能下滑。但是,在现有的制造工艺下,想要在处理器上堆叠更大容量缓存是不现实的。
而GPU运算技术的出现,给超级计算机的发展带来一丝曙光。一颗GPU的浮点运算能力相当于CPU的几十倍甚至几百倍,而且也不用担心存储带宽不够用,GPU的显存带宽可达CPU的十倍以上,而且延迟更低。如果用同等规模的GPU组成超级计算机的话,那么超级计算机的运算能力将提升百倍之多;实现同等运算能力,GPU超级计算机的结构、规模、成本、功率将会大大减少——这就意味着个人超级计算机不再是梦想!
2008年11月18日,NVIDIA正式发布基于GPU流处理器运算架构的个人超级计算机“Tesla Personal Supercomputer”,以标准桌面工作站的体积提供相当于一个超级计算机集群的处理能力,同时价格只有百分之一,功耗也不过十分之一!
“Tesla Personal Supercomputer”问世还不到一月就传来捷报,在前不久公布的全球超级计算机排行榜中,位列第29位的东京工业大学“TSUBAME”更是一枝独秀,因为它配备了NVIDIA Tesla计算处理器,这也是这GPU超级计算机第一次上榜。
这套今年刚刚完成的超级计算机基于Sun Fire x4600/x6250集群,一共配备了170台NVIDIA Tesla S1070 1U计算系统,每个系统内有四块源于GT200核心的Tesla C1060计算处理卡,总共只用了680颗GPU,总体峰值浮点性能就达到了161.82TFlops,最大性能77.48TFlops。
东京工业大学全球科学信息与计算中心主任Satoshi Matsuoka称,为这台超级计算机添加升级Tesla S1070只花了一个星期,而且期间系统没有离线。除了东京工业大学,美国的伊利诺斯州国家超级计算应用中心、莱斯大学、马里兰大学、北卡罗来纳大学和德国的海德尔堡大学、马克斯·普朗克研究院也都有各自的GPU超级计算机方案。
Tesla Personal Supercomputer超强的理论性能是有目共睹的,能够将Tesla如此迅速的应用在超级计算机市场,这与NVIDIA近年来在GPU并行计算方面的努力是分不开的。为了进一步加深了解GPU在未来计算方面的发展前景,笔者对NVIDIA Tesla产品事业部总经理Andy Keane进行了专访,为大家讲解GPU在超级计算市场成功的秘密。
● 目前世界计算能力最强的前十超级计算机仍基于CPU集群的方式搭建,您预测何时基于NVIDIA-GPU的Tesla产品能跻身前十?
2008年超级计算机排行榜TOP10
Andy Keane:在前不久的世界超级计算机500强排名中,日本一所大学的超级计算机排名全球第29,这个超级计算机叫TSUBAME,它就是采用了NVIDIA的Tesla做运算,现在它还在不断的升级与改进中。我不能代表东京工业大学超级计算领军人物的意见,但Matsuoka博士曾公开表示,他打算使用GPU在2010年打造出一台荣登世界最快榜单的计算机。
我在跟很多使用超级计算机的人沟通,他们已经表现出极大的兴趣使用Tesla进行超级计算,现在日本这家叫TSUBAME的超级计算机能够跻身前30名已经是很好的证明,除此之外美国国家超级运算应用中心(NCSA)以及法国原子能委员会(CEA)是两家著名的超级计算中心,他们将使用GPU跻身下一届世界五百强榜单。我们会跟更多的超级计算机中心合作,在2010-2011年会有更多使用GPU的超级计算机杀进500强,并实现跻身前十的目标。而且使用Tesla会更加节省功耗、电还有很多的空间和成本,这是令人非常振奋的。
● 按照目前的数据统计,如果要实现目前第一的超级计算机能力需要多少拥有240流处理器的Tesla产品?
Andy Keane:就拿全球第二名“美洲豹”超级计算机为例,它是美国一个叫Oakrige实验室的超级计算机,由18万颗CPU核心组成,也就是用了4.5万颗4核CPU。如果改用Tesla的话,只要1.5万个GPU就可以实现这个东西,到明年我们有更好的下一代的产品出来,那么核心数量就可以马上减掉一个零,仅仅1500个GPU就可以实现!
超级计算机的运算量主要用双精度浮点运算能力来考量,现在用18万颗3GHz的CPU核心来实现100万GFLOPS的运算量,如果我们想实现2TFLOPS的浮点运算,那就需要30多万个核心,实现10TFLOPS就需要180万个CPU,这对于超级计算机制造者来说,几乎是不可能完成的任务!
所以说将来想依靠CPU来实现超级计算机性能的飞跃是很艰难的,这就是CPU序列计算的问题,一个核只能做一件事,要做很多的事就得不断地堆积核心数量,这样超级计算机的规模、成本、功耗、维护都是各很大的问题。而如果改用GPU来做超级计算的话,所有的问题都会迎刃而解,而且也给未来超级计算机留下了巨大的性能提升空间。
● NVIDIA与惠普以及CRAY公司联合发布小型高性能计算系统。这是否意味着NVIDIA认为高性能计算将从大型计算机发展到台式机以及桌边型计算机上来?
Andy Keane:想要对科学技术产生最大的影响,高性能计算就必须发展到科学家们的桌面上。每一名研究人员、科学家以及工程师都应该拥有自己的超级计算机,这些计算机应该具备足够的实用性能来满足他们的工作需要。想象一下如果这些才华横溢的人们能够更快地解决问题,那么科学发展的节奏将会变得怎样。凭借这些基于GPU的工作站以及拥有兼容处理器的超级计算机,现在的技术计算达到了前所未有的全新水平。
● Tesla个人超级计算机不能独立运行,那么它的系统配置要求是怎样的呢,例如CPU、内存以及显卡?
Andy Keane:Tesla个人超级计算机一般需要搭配一颗四核处理器,每个CPU核心匹配一颗GPU。根据计算问题的具体情况,主内存容量可从4到16GB之间选择。为CPU配备较大内存的系统被用于处理更大的数据集,例如地震应用程序中所使用的数据集。分子动力学等其它类型的应用程序则不需要巨大容量的内存,因此4GB足够了。
图形处理方面就视应用程序而定了。对于大多数计算应用程序来说,NVIDIA板载GPU这样的简单GPU或一块Quadro NVS显卡就足够了。如果应用程序集计算与可视化于一身,那么这样的应用程序一般需要较高的显卡性能,可选用从Quadro NVS到高端的Quadro FX 5800产品。
Tesla S1070=由四颗GTX200核心组成,它需要一颗四核CPU的支持
● 能不能说一下个人超级计算机他内部是怎么设计的?戴尔、华硕都会发布这样的系统,戴尔、华硕他们这些厂商所发布的个人超级计算机是由 OEM 给他们设计的还是自己设计的?
Andy Keane:我们把我们的GPU会给全部的合作伙伴,包括戴尔这样的厂商,他们会自己进行集成,刚才提到的应该是T1060,跟我们一样,我们就提供 GPU,其他不提供,他们自己集成到他们的系统里。
从架构方面来说某些系统包括3—4个GPU运算单元,它的显存甚至达到 12—16G,在功耗方面大概是1200瓦到—1350瓦范围之间,还需要配置一颗4核心的GPU。我们现在做的事情是开启了一个新的领域,就是个人桌面的超级计算,我们给我们的OEM厂商提供我们的参考设计,他们根据他们的情况来开发他们自己的设计。
● NVIDIA与惠普以及CRAY公司联合发布小型高性能计算系统。 这是否意味着NVIDIA认为高性能计算将从大型计算机发展到台式机以及桌边型计算机上来?
Andy Keane:想要对科学技术产生最大的影响,高性能计算就必须发展到科学家们的桌面上。每一名研究人员、科学家以及工程师都应该拥有自己的超级计算机,这些计算机应该具备足够的实用性能来满足他们的工作需要。想象一下如果这些才华横溢的人们能够更快地解决问题,那么科学发展的节奏将会变得怎样。凭借这些基于GPU的工作站以及拥有兼容处理器的超级计算机,现在的技术计算达到了前所未有的全新水平。
● 在Tesla Personal Supercomputer发布之前,各大学实验室已经使用多块GeForce显卡进行科学计算,那么Tesla和GeForce在并行计算方面有何不同呢?
这些由GeForce显卡组成的普通电脑,是个人超级计算机的皱型
Andy Keane:硬件方面,第一,Tesla与GeForce的内存(即显存)不同,GTX280是1GB而Tesla C1060是4GB。第二、在设计方面有一个比较大的区别,为了保证长期运算的精度和稳定性,我们进行一些更加精确和严格的测试,比如防烧毁的测试,在这方面Tesla要比GeForce系列更加稳定,做的更全面。
特别提一下为什么多讲一些内存?因为在高性能计算的领域,内存是非常重要的,因为你的内存如果是很大的话,计算机在调用数据方面会很快,他就减少了数据传输的量,因为它带宽量是很大的,内存量也是很大的,就是内存很重要。这里面的内存相当于Tesla里面它是显存,指的是GPU在显卡上板载内存的流量,因为Tesla所设计的并行计算非常庞大,而且对于每个精度、每个数据的测试精度要求都非常高,所以不像游戏显卡一样显存有1G的流量,不需要经过很多测试就可以去玩游戏。但是对于专业的应用来说其实每个字节的数据都要保证它的精度,这样我们对Tesla上的显存的测试比GeForce都要更加的严格。
接下来我进行一下总结,我们要根据应用来选择是用Tesla还是GeForce,他们都支持CUDA,对于一般的应用像玩游戏,或视频编码等简单的并行计算使用廉价的GeForce显卡即可,而对于特别海量的数字的科学运算,比如你在做石油勘探的时候要有数据测试,再进行天气预报的时候这需要用Tesla,要根据不同的应用选择不同的卡,尽管他们都支持CUDA,但是要给予不同的应用,尤其对数据的计算的精确度和专业度非常高的应用,我们推荐Tesla,而且是多路Tesla系统。
● 就硬件来说,我们已经了解到Tesla配备的显存容量比GeForce的更大。然而,Quadro也有一些4GB显存的版本。NVIDIA如何说服消费者购买Tesla产品而不去选择价格更便宜的Quadro或GeForce呢?
Andy Keane:这里其实有两个问题。确实有4GB显存的Quadro显卡,但是其价格远高于Tesla。Quadro支持高速OpenGL渲染,速度远高于GeForce,因此这项技术的价格自然高于Tesla。Tesla不支持OpenGL。
GeForce是计算用户的另一种选择。Tesla专为企业部署而设计,拥有更高级别的专业显存,专为处理计算类应用程序而设计。此外,Tesla产品由NVIDIA设计、制造和提供质保。Tesla市场供应周期更长,并提供3年质保。对于这些需要更加可靠的企业级产品的公司,Tesla是最适合的产品。Telsa还有专为数据中心设计的1U系统产品。
● Tesla后续产品以及芯片技术规格是否会沿用同期的GeForce和Quadro产品?或者是会采用只为计算用途而重新设计的芯片和架构?
Andy Keane:当前的策略是在Tesla产品线中采用具备特殊特性的标准GPU。现在,GeForce、Quadro以及Tesla中的计算特性是相同的,但是在将来的产品中,Tesla将拥有专为高性能计算而设计的其它特性。这些产品线中的性能级别也会有所变化。
通过在专业级图形产品中使用与消费级相同的GPU,Tesla在容量较小的高性能计算市场上获得了规模经济效益。这就是所有定制高性能计算处理器与系统专业供应商被市场淘汰的主要原因,未来唯一可行的技术是基于大众市场的技术,例如GPU。
● Tesla基于NVIDIA CUDA,该技术最显著的特点就是能够利用GPU的并行计算能力,在大规模、高带宽计算中有着极大的优势。 但是,面对串行计算密集型任务,Tesla是否有解决办法呢?
Andy Keane:GPU及其内部的CUDA架构是专为并行计算而设计的。
串行计算是一种有很大区别的架构,这种架构的设计目的是为了解决不同的问题。CPU执行指令的方式就是一个接着另一个地执行。CPU中有许多能够加速串行计算的技术。高速缓存、无次序执行、超标量技术、分支预测……均为抽取指令的技术或一系列指令的串行级并行机制。CPU对片上高速缓存的设计与容量的依赖也非常大。如果程序大小与CPU高速缓存容量不匹配,那么该程序在CPU上的运行速度将会很慢。
GPU内部的并行计算架构围绕两个基本概念而设计。首先,程序中的数据可分成许多个部分,而为数众多的核群可以并行地处理这些数据。第二个架构方面的设想是,数据将不与高速缓存匹配。例如在图形计算或石油天然气数据处理上,数据量可能会达到兆字节甚至是太字节,用高速缓存来容纳如此巨大的数据量几乎是不切实际的。考虑到这两点设想,GPU被设计为能够使用数以千计的线程,所有线程均并行地执行,能够访问巨大容量的本地存储器。在最新的Tesla产品中,每颗GPU均配备4GB存储器,可容纳待执行的数据。同时针对反复使用的数据,还设有较小的片上存储空间,GPU所配备的巨大容量存储器等同于CPU内部的高速缓存,只是容量大了许多倍而已。
● 获取软件时,中国的超级计算机用户要么购买商业软件解决方案,要么自己开发,或者在商业软件解决方案的基础上进行二次开发。 CUDA与独立软件供应商之间有一定的合作,你有没有成熟的软件应用程序推荐给用户使用? CUDA怎样帮助这些想要自己开发软件的用户?
Andy Keane:我们与打算发布超级计算软件的独立软件供应商都进行了积极的开发工作。分子动力学领域的《NAMD/VMD》以及《GROMACS》是为群集GPU发布的两个应用程序例子。在美国的超级计算展会上,我们还展示了许多用于石油天然气领域地震处理、量子化学以及Ansys有限元设计的应用程序。
对于想要自己设计和开发应用程序的开发人员,用于CUDA架构的并行计算开发C语言编译器可从NVIDIA网站上免费下载。Portland Group的Fortran等其它编译器也正在陆续推出。有很多来自NVIDIA以及其它来源的程序库,这些库使应用程序更易于开发。针对这些不懂C语言或Fortran的开发人员,Accelereyes以及Wolfram(Mathematica)等公司还提供了GPU加速版的软件。因此你可以看到,利用GPU计算优势的方式有许多种。
● NVIDIA的GPU都是CUDA架构,那今后有没有可能针对CUDA架构设计一种操作系统,从而完成GPU彻底取代CPU的X86架构?
Andy Keane:我们说CUDA是一种硬件架构,硬件架构很多:X86、Cell,Cell和X86谁也取代不了谁。同样的GPU的一种架构也不会去取代另一种架构,更不可能越权取代CPU的架构。
CPU是序列计算,GPU是并行计算,这两个各司其职,谁也不可能取代谁。拿微软来讲,它的操作系统一定要经CPU,但是它提供其他的应用比如图形渲染、多媒体,比如更好更快的Excel这些图里面,它需要用更大量的数据计算、并行计算应该放在GPU上,也就是CUDA这个架构上。这两个之间,还是我们强调的异构计算和优化PC的概念,这个和我们说的概念没有任何不一致的方向。
● 总结:
CPU和GPU在计算机系统中都是非常重要的部件,在超级计算机系统中,以往都是完全依赖CPU进行数据处理,但随着超级计算机应用领域的不断扩大,CPU的弊端也开始暴露出来,主要问题就是核心数量的日益增多与存储带宽不匹配所致。另外CPU可怜的浮点运算能力也是超级计算机性能提升的另一大瓶颈。
CPU的这些弊端正是GPU的优势:GPU的浮点运算能力达CPU的几十倍,存储带宽同样是几十倍。更加难能可贵的是,超级计算机所处理的任务正是大量多线程的并行计算,这正是GPU的强项!
在个人电脑中,GPU不能运行操作系统以及大量日常应用软件,但超级计算机的任务就是科学计算以及浮点运算,GPU非常适合这类运算,而且各种科研机构会自行开发相应的应用软件,因此完全不用担心GPU的应用。
当然,不管是个人电脑还是超级计算机,GPU都不可能取代CPU,GPU只是会将那些繁重的并行计算任务转移过来。未来超级计算机的数据处理将主要由GPU完成,而CPU则会起到辅助作用,CPU和GPU这样一种异构协同处理可以让超级计算机的性能得到突破!<