“天河一号A”GPU高性能计算单元
● 中国超算决胜世界TOP500榜单
超级计算机是计算机中功能最强、运算速度最快、存储容量最大的一类计算机,多用于国家高科技领域和尖端技术研究,是国家科技发展水平和综合国力的重要标志。超级计算机多被用于大型数学问题计算,特别是数值模拟类问题的求解,它可以帮助科学家模拟出气候变化、分子运动甚至是核试验过程。
我们知道,超级计算机是世界高新技术领域的战略制高点,是体现科技竞争力和综合国力的重要标志。各大国均将其视为国家科技创新的重要基础设施,投入巨资进行研制开发。不过超级计算机内部构成并不神秘,它实际上是由很多高性能计算(HPC)客户端通过网络形式连接而成的,这些高性能计算客户端在近几十年大多采用刀片服务器的形式构成,这可以有效增强服务器运算密度,降低单位功耗和占地面积。
2010年11月公布的全世界最快超级计算机TOP500榜单中,中国国防科技大学研制的“天河一号A”正式对外公布,采用GPU加速的超级计算机如愿以偿的登顶TOP500首席宝座,成为目前世界上最快的电脑,这对于GPU并行计算可以说是一座里程碑。
其实超级计算机的发展和一个国家的综合科技水平是息息相关的,我们之前已经看到美国、日本和欧洲在超级计算机方面你追我赶式的疯狂竞争,这背后都是相关行业巨大的计算开销所驱使的。中国在上世纪80年代开始了在这个领域的发力。
1983年我国第一台被命名为“银河”的亿次巨型电子计算机在国防科技大学诞生后,中国成了继美、日等国之后,能够独立设计和制造巨型计算机的国家。随后在90年代获得了一批具备实际应用能力的超级计算机。下面就让我们通过资料简单回顾中国超级计算机的进步历程。
中国超级计算机发展回顾
● 中国超级计算机发展回顾
上世纪90年代初,我国市场上的高性能计算机几乎全部是进口产品,我国石油物探和气象等核心部门甚至还要在外国人的现场监控下使用进口计算机。国家863计划支持的曙光系列高性能计算机的研制和产业化探索了一条在对外开放、市场经济为主的条件下发展我国高性能计算机的途径。
1992年 国防科技大学研制出“银河II”通用并行巨型机,峰值速度达每秒10亿次。
1993年在863计划支持下研制成功的曙光一号计算机是我国自行研制的第一台用微处理器芯片构成的全对称共享存储多处理机系统,开创了我国研制商品化服务器的新型技术道路。曙光一号在多处理机体系结构的实现、操作系统核心的并行化和支持细粒度并行的多线程技术等方面实现了一系列技术突破。
1993年 中国研制成功“曙光一号”全对称共享存储多处理机,这是国内首次以基于超大规模集成电路的通用微处理器芯片和标准Unix操作系统设计开发的并行计算机。
中国超级计算机发展年谱
1995年 曙光公司又推出了曙光1000,峰值速度每秒25亿次浮点运算,实际运算速度上了每秒10亿次浮点运算这一高性能台阶。
1997年 国防科技大学研制成功“银河Ⅲ”百亿次并行巨型计算机系统,峰值性能为每秒130亿次浮点运算。
1999年 成功研制的“神威Ⅰ”计算机,峰值运算速度达每秒3840亿次。
2004年 各方共同研发制造的曙光4000A实现了每秒10万亿次运算速度,这套计算机基于AMD Opteron处理器。其主要构成部分有2560个CPU、640个结点、5TB内存、95TB存储、四套互联网络和曙光机群软件。
曙光4000A是中国第一次在TOP500榜单中排进前十名,同时曙光4000A在基于AMD芯片的超级计算机中Linpack效率也达到了全球第一。
2008年 “曙光5000A”实现峰值速度230万亿次、Linpack值180万亿次,“曙光5000A”可以完成各种大规模科学工程计算、商务计算。曙光5000A高性能计算机采用最新的四核AMD Barcelona (主频1.9GHz)处理器,采用基于刀片架构的HPP体系架构,共有30720颗计算核心,122.88TB内存,700TB数据存储能力,采用低延迟的20Gb的网络互联,其设计浮点运算速度峰值为每秒230万亿次,Linpack测试速度预测将达到160T,效率大于70%。
2009年10月29日 中国首台千万亿次超级计算机“天河一号”诞生。天河一号不仅是国内首台千万亿次超级计算机,而且采用了创新的CPU+GPU异构计算设计,不但理论计算性能得到大幅提升,而且达到了很高的能效比。能效达431.7 MFlops/W,目前排列于Green500第五位。天河一号采用6144个Intel通用多核处理器和5120个AMD图形加速处理器,内存总容量98TB,点对点通信带宽40Gbps,而共享磁盘总容量则达到1PB。
2010年5月31日 曙光“星云”以Linpack值1271万亿次,在第35届全球超级计算机500强排名中,列第二位。
2010年11月16日 经过全面系统升级的“天河一号A”在第36届500强排名中夺魁。此次升级更换了可编程性较差的ATI GPU产品,全新的Fermi架构CUDA概念Tesla正式进驻世界最快的超级计算机。“天河一号A”目前的配置是14336颗英特尔六核至强X5670 2.93GHz CPU和7168颗NVIDIA Tesla M2050 GPU和2048颗自主研发的八核飞腾FT-1000 CPU。处理内核数突破20万颗,是去年24576颗的8.25倍。
GPU协处理器定位与发展
● GPU协处理器定位与发展
虽然目前的超级计算机已经开始大面积使用GPU最为协处理器,但是GPU从诞生到被用于通用处理器,还是经历了相当长的一段时间。这主要是由于GPU的可编程性发展历程决定的。
在传统的GPU种,Shader单元从出现(2001年DirectX 8发布标志着Shader单元出现)到运算能力迅速提升(2007年Geforce 8800GTX发布,通用计算影响力显著扩大)经过了很长时间。在这段时间里,显卡对于高端大规模并行运算是毫无价值的,即使有少量业界先行者开始了思考和研究,也无法形成对整个产业的影响力。
这个阶段在超级计算机与集群中,往往要拆除“多余的”显卡以节能功耗,而自从AMD公司的Stream架构NVIDIA公司的CUDA架构奠定了GPU通用计算地位之后,现在的设计开始逐渐采用大量GPU来获得更加廉价和绿色的计算能力。CUDA的强大性能引发了一场通用计算革命,这场革命将极大地改变计算机的面貌。
第一版中国“天河一号”超级计算机
2009年10月29日,国防科技大学成功研制出的峰值性能为每秒1206万亿次的“天河一号”超级计算机在湖南长沙亮相。我国成为继美国之后世界上第二个能够研制千万亿次超级计算机的国家。天河一号采用6144个Intel通用多核处理器和5120个AMD图形加速处理器GPU,其中GPU的型号正是大家熟悉的ATI上一代高端GPU产品HD 4870X2。截止2009年11月17日,“天河一号”超级计算机在第34届TOP500榜单中排名第五。
“天河一号”刀片节点与AMD Radeon HD 4870X2
随着GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算成为GPGPU(General Purpose computing on graphics processing units,基于GPU的通用计算)。GPGPU计算通常采用CPU+GPU的异构模式,但是传统的GPGPU受硬件可编程性和开发方式的制约,应用领域受到了限制,开发难度也很大。
2007年6月推出的CUDA是一种将GPU作为数据并行计算设备的软硬件体系。CUDA不需要借助于图形学API,并采用了比较容易掌握的类C语言进行开发。开发人员能够从熟悉的C语言比较平稳地从CPU过度到GPU,而不必重新学习语法。当然,要开发高性能的GPU通用计算程序,开发人员仍然需要掌握并行算法和GPU架构方面的基本知识。
NVIDIA之所以能够占领超级计算机市场,并将GPU概念更深入地变为通用处理器,其实并不是因为其性能出众,特别是理论浮点吞吐性能,而是因为底层硬件设计的可编程性出色,能过通过CUDA硬件和CUDA软件平台移植大量并行计算程序。所以GPU作为协处理器才能够在近几年间飞速发展,渗透到全世界著名的超级计算机和高性能计算客户端中。
CUDA能够有效利用GPU强劲的处理能力和巨大的存储器带宽进行图形渲染以外的计算,广泛应用于图像处理、视频传播、信号处理、人工智能、模式识别、金融分析、数值计算、石油勘探、天文计算、流体力学、生物计算、分子动力学计算、数据库管理、编码加密等领域,并在这些领域中对CPU获得了一到两个数量级的加速。取得了令人瞩目的成绩。
Tesla与FireStream计算单元
● Tesla与FireStream计算单元
图形处理器(GPU)概念在十多年前被提出,随后在台式电脑中的使用已非常普遍。因为GPU具有强大的向量计算能力和很高的存储带宽,而这两点对于高性能三维图形应用是至关重要的。不过2001年,NIVIDA公司的GeForce 3首先引入了可编程的顶点着色器(Vertex Shader)单元标志着GPU已经发生了职能转变。其后的几年间,科研人员在GPU上尝试移植了无数通用软件,同时GPU的可编程性也在迅速发展。
NVIDIA Tesla(中文名:特斯拉)是NVIDIA继专业加速卡Quadro及娱乐图形卡GeForce系列后,推出的一个全新的产品线,主要应用于于广大科学研究的高性能计算需求。NVIDIA Tesla在一个计算机工作站上供了一个小型计算机集群的计算能力,支持向高效利用能源的并行计算能力的转化。Tesla是一位拥有700多项专利的著名科学家,交流电和无线电的创始人,变压器和交流电动机的发明人,提出了低损耗高压电传输的概念。
相对与GeForce和Quadro系列,Tesla虽然使用了架构相同的芯片,但是每颗芯片的电气性能都是异常优越的,同时芯片中的专业数据库和更强的双精度能力被NVIDIA激活,以提供区别于桌面产品的性能。当然Tesla产品的PCB设计和供电元件用料也是经过严格限定的,所以Tesla拥有更低的平均无故障时间和平均故障修复时间。
在过去一年里,天河一号进行了大升级,目前的配置是14336颗英特尔六核至强X5670 2.93GHz CPU和7168颗Nvidia Tesla M2050 GPU和2048颗自主研发的八核飞腾FT-1000 CPU。处理内核数突破20万颗,是去年24576颗的8.25倍。其实,天河一号不仅仅是升级,而是几乎更新了整个结构,上一代采用的是英特尔四核CPU+ATI GPU,通过Infiniband互连,而新一代则是英特尔六核CPU+NVIDIA GPU+自主八核飞腾CPU,通过专有网络互连。
Firestream是AMD旗下的品牌系列之一。与Radeon(用于消费级显卡)和FirePro(用于专业显卡)不同,FireStream主要用于AMD的高性能计算卡系列。FireStream产品中的GPU不是用来作3D加速用途,而是利用GPU内置的流处理器变成一群并行处理器,作为浮点运算协处理器,协助中央处理器计算复杂的浮点运算程序,例如复杂的科学运算。Firestream的竞争对手是nVIDIA的Tesla系列高性能计算卡。
FireStream流处理器的开发软件名为Stream SDK。在2008年8月,AMD宣布将会升级此软件,以支持DirectX 11和OpenCL。从催化剂 8.12开始,主流显卡将可以使用到Stream技术,2010年3月AMD放出了Stream SDK 2.1,正式支持OnenCL。
自R520系列GPU问世以來,基于它的可编程架构,ATI投入大量資源研究GPGPU,意即使用GPU來作非3D运算,处理一般在主流伺服器和桌面CPU上运行的软件,据称性能比CPU高出10-30倍,并于稍后宣布其“流计算(通用计算)”(Stream Computing/General Purpose Computing)概念,同时发布ATI FireStream流处理器,使用名为“Close To Metal”(CTM)的硬件界面,直接跳过3D应用程序接口,如DirectX,让开发者可以充分利用流处理器架构的特性,以最符合流处理器使用的原则对程序进行优化。
2009年10月29日亮相的第一版“天河一号”首次开启了GPU加入中国超级计算机的历史进程,而随后更新的“天河一号A”则借助GPU达到了世界超算高峰,让中国也拥有了一套属于自己的可编程性极强的GPU高性能计算集群。相信随着GPU可编程性的逐步提升,未来我们会看到更多的超级计算机系统使用Tesla与FireStream计算单元作为协处理器,未来的超级计算机毫无疑问将拥有更高的运算密度和更低的单位功耗。