雷锋网注:本文作者计算机体系结构博士生,原文发表于知乎,经作者再次编辑后授权发布在雷锋网。ISC2016 公布了中国新一代超级计算机“太湖之光”,取代了天河二号成为Top 500 (超算排行榜)头名。本文依据现有公开资料对太湖之光进行深入分析。
(图片来自新华网)
前几天,我在办公室看到太湖之光的消息,非常振奋,当即就去找导师汇报(因为和笔者研究方向相关)
我:“中国造了一台新超算,100PFlops!”
导师的第一反应是:“功耗多少?”
我:“15MW”
导师:“Holy sh*t!”(卧槽!)
我:“他们没用 Intel 的芯片。”
导师:“oh that makes sense”(怪不得)
我不是黑 Intel,但实在是x86架构的历史包袱太重了,想要实现 性能/功耗比的重大提升,这是一个迈不过去的坎。 我在 如何看待 19 岁少年想做出在目前 Intel 同等计算性能下降低 80% 功耗的全新电路系统芯片?这个回答中就提到过,Rex Computing 的人在做的事之一就是砍掉Cache (缓存),用 Scratch Pad Memory (相当于是手动管理的快速片上内存) 取而代之。而在太湖之光的众核架构中的大量 slave core里面,采用了同样的思路,只保留了instruction cache。
data cache用Scratch Pad Memory代替,避免了众核情况下的cache coherence带来的大量性能和功耗浪费。(Master core 里面有正常的Cache),我觉得这是太湖之光实现高性能/功耗比的一个重要原因。 并且Slave core只支持user mode,于是我猜测它在TLB上面应该也有精简。但目前 SW26010 芯片还没有详细的文档资料,所以这点我也只能猜测。
至于采用众核架构,可以说是大势所趋。所谓众核架构,就是在同一个芯片上集成几十甚至上百个核心,这些核心协同或者独立工作,大大提高系统可执行的线程数,提高并行性,进而提高性能。神威SW26010 每个芯片上有多达260个核心。相似地,美国一些新的超算系统采用了Intel的众核Knights Landing芯片,据说性能也很不错。
图1:SW26010 的众核架构
至于指令集,Jack Dongarra在他的报告里特意强调SW26010 芯片的指令集和 Alpha (美国一家曾经的高性能芯片厂商)的指令集没有关系,所以哪怕神威前几代芯片和Alpha 有渊源,但这次应该真没有。
然后更令我惊喜的是不光系统搭起来跑了Linpack,而且还有三项应用入围了Gordon Bell奖的最终名单 (这个可以说是超算界最厉害的奖了)。充分说明太湖之光已经形成战斗力,可以投入真正的科研应用。
最后我们冷静下来谈一谈不足之处: HPCG的跑分。
为什么HPCG跑分重要?因为它比Linpack更接近真实应用的场景,更能体现出内存系统的瓶颈。Linpack测试的重点是系统的浮点运算能力,也就是我们前面提到的FLOPS(floating operations per second)这个指标。然而实际的应用中,浮点运算快并不代表系统有很好的性能,因为如果想要浮点运算能力得到发挥,首先需要能在短时间内把大量的数据送给需要处理的单元,这对系统的内存和互连网络的性能要求更高。而HPCG的跑分则是一个更接近综合性能的指标。用一个汽车的比喻来讲,Linpack的跑分更像是汽车的百米加速指标,而HPCG更像是到真实的赛道上去跑——这时候就不光是加大马力就能行的了,操控性等其他因素也很重要。
表1:太湖之光,天河二号,以及泰坦(美国)性能对比
由上表可以看出,太湖之光在HPCG的测试下只达到了它0.3%的峰值性能,总的算下来还不如天河二号。说明其在内存和互连网络的性能上存在很大的瓶颈。
结语
虽然太湖之光取得了很好的成绩,可以说是中国超算人的骄傲,但我们还是不能掉以轻心。美国正在大力发展 exa-scale计划 (1000 Pflops,大约是太湖之光的10倍性能) ,计划在2023年拿出性能达到exa-scale,功耗小于20MW 的超算。并且还有3台超过100Pflops的超算正在建设当中 。而我们眼前就有GPU带来的超算变革,DARPA(美国国防前沿研究计划) 也为exa-scale计划投资了不少黑科技的项目, 而且这个太湖之光一出,他们估计跟国会要钱更加容易…… 革命尚未成功,同志仍需努力啊!
注:文中资料图均来自Jack Dongarra 的报告 Report on the Sunway TaihuLight System
雷锋网注:本文为雷锋网作者授权发布文章,转载请联系授权,不得删减内容。