11月16日,新一期全球超级计算机500强榜单在美国公布,中国“天河二号”超级计算机连续六度称雄。回想今年4月,美国对中国数家机构禁售至强PHI计算卡。就当很多舆论认为天河超算将遭遇劫难之时,国防科大接连对外发布足以替代E5的“火星”和可以替代至强PHI的矩阵2000,既是向美国禁售至强PHI的亮剑,也是公开了天河超算将来的发展方向——矩阵2000替代至强PHI,实现自主创新,走一条以往没人走过的GPDSP路线。
所谓GPDSP,是通用数字信号处理器,用于高速、实时的信号处理,有非常高的双精浮点性能,国防科大正是将其作为超算的加速器。
笔者日前采访了中国计算机学会高性能计算专业委员会秘书长张云泉,他指出,中国新一代超算在性能上是可以与美国超算匹敌的,但在实际应用水平上还有差距。因为采访机会难得,没有谈许多读者关心的基础知识,这里做些补充,以便读者能理解,相对于美国走GPGPU路线的新超算,即利用GPU很高的双精浮点性能在超算中充当加速器,中国走GPDSP路线到底孰优孰劣。
同构计算和异构计算
不同加速器的选择,导致中美超算的不同发展路线。那么为什么要用到加速器呢?
超算可以分为两种架构。采用同构计算架构的超算只需要单纯使用一种处理器,在同一类型的处理器上执行计算任务。举例来说,日本超算“京”采用的处理器是富士通的Sparc64-VIIIfx,中国的全国产超算神威蓝光采用了申威1600,美国的Mira和Sequoia采用了PowerPC-A2处理器,这些超算都没有采用GPU或其它类型的众核芯片等加速器。日本富士通的京,美国IBM的Mira和Sequoia,中国的神威蓝光都是采用同构计算架构超算的代表。
日本超算“京”
IBM的Sequoia
而异构计算要使用不同类型的处理器来处理不同类型的计算任务。常见的计算单元包括CPU、GPGPU、GPDSP、ASIC、FPGA和其它类型的众核处理器等。异构计算是一种分布式计算,它或是用能同时支持SIMD方式和MIMD方式的单个独立计算机,或是用由高速网络互连的一组独立计算机来完成计算任务。采用异构计算架构的超算会使用至少2种类型的处理器,其中异构计算架构中通用CPU负责逻辑复杂的调度和串行任务,加速器负责并行度高的任务,实现计算加速。具体来说,采用异构计算架构的超算在运算中既使用处理器,又使用GPU或众核芯片等加速器。以美国泰坦和中国天河2号为例,泰坦有18688个运算节点,每个运算节点由1个16核心AMD-Opteron-6274处理器和1个NVIDIA-Tesla-K20加速器组成,共计299008个运算核心;天河2号有16000个计算节点,每个节点由2片Intel-E5-2692和3片Xeon-Phi组成,共使用了32000片Intel-E5-2692和48000片Xeon-Phi。除了泰坦和天河2号之外,曙光6000和天河1号也采用的是异构计算架构。
美国泰坦
异构计算的优势
因超算大多应用于金融、制造、能源、科研和军事等领域,对双精浮点要求较高。采用GPGPU或众核芯片做加速器,一方面可以获得很高的浮点性能,另一方面可以获得不错的性能-功耗比。以天河2号的一个计算节点为例:
Xeon-E5的满载功耗达145W,双精浮点为0.21TFlops,而Xeon-PHI功耗300W,双精浮点达1T Flops;天河2号一个计算节点由2片Xeon-E5和3片Xeon-PHI组成,理论双精浮点性能为3.42T Flops,功耗为1190W,理论双精浮点性能与功耗的比值为2.87GFlops/W。相同功耗下使用8片Xeon-E5只能获得1696Gflops的理论双精浮点性能,理论双精浮点性能与功耗的比值为1.42GFlops/W。从数据可以看出,在同等功耗下,在使用Xeon-PHI加速后,理论双精浮点性能与是只使用Xeon-E5的2倍。
因此,相同功耗的情况下,异构计算能获得非常高的理论双精浮点性能。
诚然,有得必有失,在获得性能优势的同时,也不可避免的会导致编程方面的困难。具体来说,用GPU做加速器的话,会因为GPU和CPU的编程模型不一致,导致在编程上不如采用同构技术(e.g. 纯CPU)的超算方便,在通用性方面也会稍逊一筹。
总之,同构计算编程方便、效率高、通用性强;异构计算编程麻烦、效率不如同构超算、通用性差,但是性能-功耗比高。因此虽然在通用性和效率方面相比采用同构计算的超算处于劣势,但更加好的性能-功耗比成为其更受偏爱的原因。天河2号、天河1号、曙光6000等超算都采用了异构计算架构。
加速器的选择
异构计算非常重要的一点就是加速器的选择,加速器的性能很大程度上会影响到超算的性能。举例来说,Xeon-Phi在运行linpack测试时,实际性能仅仅相当于理论最大运算性能的65-70%,这直接导致了天河2号的整机效率仅为61.7%,同样使用Xeon-PHI的美国超算Stampede的整机效率比天河2号更低,只有60.7%,而且这还是Stampede的运算能力仅为天河2号的五分之一的情况下的成绩——因为超算运算能力越强,效率就越难提升,因此,在被Xeon-Phi的低效率拖累的情况下,以天河2号的性能而言,61.7%的整机效率实属不易。
天河2号
美国超算Stampede
大规模科学计算一般都能做到高度并行化,能将计算任务拆分给海量的小核心来并行执行。因此,在加速器选择方面就产生了三个方案:
一是用GPGPU做加速器。因为GPU是大宽度并行结构(GPU拥有海量SIMD计算单元),高端GPU的资源集成度非常高,能很容易做到非常高的理论双精浮点计算能力。以英伟达最新的加速卡K80为例,该加速卡功耗300W,双精浮点高达2.9TFlops。
二是用众核芯片做加速器。一方面添加浮点、向量指令(比如Intel的AVX、FMA,龙芯的LoongSIMD)提升浮点性能。另一方面堆砌核心数量,比如Intel的第一代Xeon-PHI就有60核,双精浮点性能为1T,功耗为300W;龙芯也曾经有过16核的龙芯3C的方案,但在工作进度完成大半后被迫放弃。因国产众核加速器还处于保密状态,美国情报部门对其非常感兴趣,本文就不将其与英伟达的GPGPU和Intel的Xeon-Phi做对比了,唯一能透露的就是,该众核芯片虽然性能逊色于Intel的Xeon-Phi,但设计理念非常先进,是优于Xeon-Phi的存在。
三是用GPDSP做加速器。国防科大自主研发了矩阵2000以替代Intel的Xeon-PHI,矩阵2000双精浮点达2.4T,功耗200W,虽然离第二代至强PHI双精浮点3T的性能有差距,但性能和性能-功耗比都足以笑傲天河2号正在使用的Intel第一代至强PHI,成为天河2A升级计划中至强PHI计算卡的理想替代品。
GPGPU和GPDSP的优缺点
GPU的大宽度并行结构能做到非常高的理论双精浮点计算能力(英伟达的加速卡K80双精浮点高达2.9TFlops)。但因CPU和GPU的编程模型是不一致,导致GPGPU在编程方面很不方便,只能跑OpenCL、OpenACC、CUDA代码,不能跑OpenMP并行处理的代码。加上GPGPU作为加速卡和CPU是不共享内存,需要程序员显式拷贝,进而导致数据访问速度变慢。因此,GPGPU相对而言编程麻烦、效率相对而言并不高、通用性差,但是性能-功耗比高。
GPDSP是国防科大首创,是应对美国禁售Xeon-PHI的技术储备和秘密武器。国防科大最迟在2013年就开始着手GPDSP的研发工作。今年发布的矩阵2000采用40nm制程工艺,拥有16核,主频1G,双精浮点2.4T,功耗为200W。因此,矩阵2000虽然在性能上因受制于国内的制造工艺和设计水平,在性能上不如GPGPU,但在性能-功耗上已经略优于GPGPU(2.4T/200W 对比 2.91T/300W),而且已经大幅优于天河2号目前使用的第一代至强PHI计算卡(2.4T/200W 对比 1T/300W)。
GPDSP相对于GPGPU更接近于CPU,可以独立运行OS(Linux或其它实时内核),在编程方面比GPGPU稍微容易一些(其实相对于CPU两者编程难度都很大)。矩阵2000也是带分支能力的众核处理器,和Xeon- PHI是相似类型计算卡,理论上讲,扩充一些GPDSP编译指导语句也能跑OpenMP代码。当然,GPDSP也能跑OpenCL、OpenACC并行处理代码(异构代码)。
因此,GPDSP虽然在性能上不如GPGPU,但在性能-功耗上已经略优于GPGPU(2.4T/200W 对比 2.91T/300W),在效率和通用性方面优于GPGPU。
GPGPU相对于GPDSP处于先天劣势
据了解,美国的2台新超算将于2017—2018年被安装在劳伦斯利物莫国家实验室和橡树岭国家实验室,这两台超算将采用IBM和英伟达的产品,理论浮点计算能力都超越100Pflops,将会是天河2A、新一代曙光超算冲击世界第一的强有力竞争对手。
那么,相对于走GPGPU路线的美国新超算Sierra和Summit,国防科大的GPDSP和美国的GPGPU孰优孰劣呢?
GPU在做并行计算时,传统渲染架构中的TMU、 ROP等特性毫无用处,反而占用了晶体管资源。DSP是纯粹向量机,不像GPU那样有光栅化渲染占晶体管,影响管线结构。
虽然GPU是大宽度并行结构,高端GPU的资源集成度非常高,能很容易做到非常高的理论双精浮点计算能力,但在彼此工艺和集成能力相当的情况下,舍弃图形部分的DSP的晶体管效率更高,而且访存效率也高于GPU传统图形渲染管线那种绕弯子的访存方式。
因此,GPDSP在效率方面比GPGPU具有先天优势,很有可能就是借鉴了GPU的Shader执行部分的管理和执行结构,但又没有GPU那么多历史遗留框架造成的负面影响。国防科大在天河1和天河2的研制过程中,在加速器的选择方面把众核处理器和GPU都试了一遍,相信选择GPDSP路线是国防科大深思熟虑后的结果——中国在制造工艺和超大集成度芯片设计能力不如国外英伟达、IBM、Intel等国外巨头的时候,走GPDSP路线是缩短和国外产品在绝对性能上差距的有效途径。
中国超算发展计划
依据曙光公司公布的资料,新一代超级计算机系统——曙光7000将从处理器、高速通信网络、大规模存储系统、系统软件到应用软件全面采用自主技术,安全可控,性能将超越100PFlops。
某超算全面采用自主技术,性能-功耗比、整机效率、理论峰值等性能参数更是无与伦比——超算系统峰值几乎是天河号的2倍;超算系统整机效率比天河2号高16%;超算系统性能-功耗比是天河2号的2.5倍,根据2015年6月发布的Green500排行榜,该超算能直接排进前五。超算建成后,将面向医疗服务、生物医药、海洋科学、现代农业、油气勘探、气候气象、金融分析、信息安全、工业设计、动漫渲染等领域提供计算和技术支持服务,为中国科技创新和经济发展提供平台支撑。
根据国防科大公布的资料,因保留了天河2号的主体I/O结构,计算节点处理器依旧使用E5-2692V2,计算节点增加到18000个,按照一个计算节点需要2个E5和3个加速器来计算,天河2A需要36000片E5和54000片矩阵2000,仅54000片矩阵2000理论浮点峰值可以达到129.6Pflops。
国防科大若要将蓝图变成现实,技术难点已经不再是芯片的设计和制造,而是软件堆栈,包括GPDPS驱动程序、操作系统、编译器、基础库等,这是一项工程量巨大的工作。
祝国防科大、曙光好运!