NVIDIA:GPU计算机2010年冲击世界前十
TSUBAME:全球最快的GPU计算系统
据了解,在11月公布的最新一期TOP500排行榜上,NVIDIA Tesla的最好成绩是第29位。这套名为“TSUBAME”的系统由NEC和SUN公司联合研制,采用了“CPU+GPU”的混合架构,包括3万多颗AMD Opteron和英特尔Xeon处理器内核,以及170台Tesla S1070 1U服务器,安装在日本东京工业大学,Linpack测试性能是77.48万亿次每秒(TFlops),理论峰值接近170万亿次每秒。
据介绍,1台S1070内置4块Tesla GPU处理器卡,每个GPU处理器卡拥有240个流处理器核,也就是说1台S1070总共拥有960个内核,内核频率在1.296-1.44GHz之间,可以并行执行成千上万计的线程。S1070最大内存支持16GB,最大功耗800W,支持PCIe x16 or x8扩展。其单精度峰值浮点计算性能可以达到3.73 to 4.14万亿次每秒,双精度浮点性能可达到311 to 345 GFlops。也就是说,GPU双精度计算性能是单精度性能的8%左右。
根据TOP500历史资料显示,早在2006年,东京工业大学就构筑了“TSUBAME Grid Cluster”高性能计算系统,当时的双精度浮点运算速度达到38.18万亿次每秒,在2006年6月TOP500中位居全球第7位。虽然之后该系统也不断升级,提高性能,但很难赶上全球高性能计算机的快速发展速度,在2008年6月公布的TOP500中,运算速度为67.7TFLOPS,排名跌至第24位。
此前,东京工业大学全球科技信息和计算中心主任Satoshi Matsuoka曾表示,东京工大一直在研究未来的计算平台,发现要想实现下一步的性能跨越,TSUBAME必须采用GPU计算技术。“我们的应用测试发现,Tesla GPU提供了我们前所未见的加速比,而且只花了一周时间就把GPU系统部署完成。”
此番通过增加170个Tesla节点,增加了10万亿次的双精度计算能力,按照现在4核的基本性能,大约相当于125个刀片的计算能力。如果我们按照单精度计算性能来计算,由于一个Tesla S1070的运算能力最大可达到4.1万亿次每秒,也就是说170台S1070可以实现697万亿次每秒,性能提升比较可观。
性能与功耗的问题
不过,记者也了解到,目前高性能计算用户大都需要双精度计算,Tesla有限的双精度性能使其应用领域受到了限制。Andy Keane告诉记者,NVIDIA的GPU向双精度方向发展也是这两年的时间,在2006年时还没有双精度单元,但到2008年我们已经把双精度性能做到了84 GFlops。
他谈到,当前10系列GPU是首批拥有双精度的NVIDIA处理器。过去这种性能曾作为GPU的一个模块添加在GPU当中。而在这一代产品中,NVIDIA为每组八个单精度处理器加入了一个双精度单元。随着快速发展,未来的GPU将拥有更多双精度单元。由于GPU的性能一般每年都会翻一番,未来双精度性能将至少比当前的速度快5倍。
除了性能提升,成本、功耗、占地面积也是大规模超级计算机用户所关心的重要因素。目前,NVIDIA的GPU桌面高性能计算机在美国麻省理工学院、哈佛大学、伊利诺伊大学、英国剑桥大学、德国布伦瑞克里大学以及韩国延世大学的使用也证明了这些价值。如比利时安特卫普大学原来用的超级计算机有512颗处理器核,成本是530万美元,占用了好几个机柜;而后来换成一台拥有8个GPU的台式系统,性能相当,成本只有7000美元,占地面积也大为减少。
另外值得一提的是,通过混合架构来提升性能,降低功耗的做法在IBM的“走鹃”超级计算机中已经得到较好的验证。比如同样是一千万亿次的计算性能,IBM“走鹃”的系统功耗只有2483.47千瓦,而Cray “美洲豹”却使用了6950.6千瓦。一个重要的原因就在于IBM“走鹃”采用了“Opetron+CELL”的混合结构:皓龙处理器负责标准的运算处理如文件系统的I/O,而PowerXCell 芯片主要加速数学和 #p#page_title#e#CPU密集型运算。从性能上看,正是这些CELL处理器承担了大多数计算重任——6000多个Opteron处理器仅贡献了44万亿次每秒(teraflops)的性能,而12000多颗CELL芯片贡献了1332万亿次峰值性能,使得功耗大幅降低。
而NVIDIA的GPGPU计算思路可谓有异曲同工之妙。Andy Keane告诉记者,在NVIDIA的“CPU+GPU”混合系统中,CPU负责执行顺序型任务,如操作系统和数据库,GPU则主要承担并行计算任务。“Tesla可以节省100倍的成本和100倍的功耗。”
CUDA编程:Tesla的最大优势
不过,也有业内人士告诉记者,IBM的走鹃虽然实现了千万亿次性能,但却非常难用,主要是多核编程非常困难,特别是在涉及到了几万个核心的超大规模,而且又是面对“X86CPU+CELL”的异构计算环境。而在Andy Keane看来,NVIDIA的一大优势就是CUDA架构。“CUDA并行架构支持OpenCL、DX11等API,支持C/C++、FORTRAN等通用语言。由于该架构支持工业标准的C语言编程环境,使得开发人员可以非常方便、快捷地利用到GPU的并行计算性能。而且关键的一点是,对于我们不同代的GPU产品,软件编写一次后就不需要修改。”
对于中国的超级计算机用户来说,在获取软件时,要么购买商业软件,要么自己开发,或者在商业软件方案的基础上进行二次开发。那么,CUDA能在多大程度上帮到他们呢?
Andy谈到,“我们与打算发布超级计算软件的独立软件供应商都进行了积极的开发工作。分子动力学领域的《NAMD/VMD》以及《GROMACS》是为群集GPU发布的两个应用程序例子。在美国的超级计算展会上,我们还展示了许多用于石油天然气领域地震处理、量子化学以及Ansys有限元设计的应用程序。 对于想要自己设计和开发应用程序的开发人员,用于CUDA架构的并行计算开发C语言编译器可从NVIDIA网站上免费下载。Portland Group的Fortran等其它编译器也正在陆续推出。有很多来自NVIDIA以及其它来源的程序库,这些库使应用程序更易于开发。针对这些不懂C语言或Fortran的开发人员,Accelereyes以及Wolfram(Mathematica)等公司还提供了GPU加速版的软件。因此你可以看到,利用GPU计算优势的方式有许多种。 ”
据介绍,迄今为止,NVIDIA已经在全球卖出了1亿颗以上支持CUDA的GPU产品,CUDA 开发人员超过了2.5万人,全世界有50多所大学开设了CUDA课程,包括中国科学院、清华大学等,GPU计算的生态系统已经形成。
“我个人非常有信心,Tesla会在2010年进入全球高性能计算机TOP500的前十位。”他还透露说,除了日本东京工业大学,美国国家超级运算应用中心(NCSA)以及法国原子能委员会(CEA)两家著名的超级计算中心,也在研制基于GPU的计算机,预计将跻身下一届世界五百强榜单。