宇宙线簇射产生的快中子会导致超级计算机出现各种严重的错误。物理学家们通过实验测定,研究减轻宇宙线影响的方法,同时也能保护自动驾驶和量子计算等方面的安全。
2013年,一名玩家在任天堂超级马里奥游戏中遭遇了一个“不可能发生”的“瞬移”,这个事故通过直播平台引起了另一名资深玩家关注,他决心解释发生的事情,甚至向任何能够重现这一“瞬移”的人提供1000美元的奖励。很多玩家进行了尝试,但都徒劳无功。最后他的结论是:定义角色高度字节中的某一比特位恰好被改写了,而元凶很可能是来自外太空的电离粒子。2008年10月7日,一架从新加坡飞往澳大利亚的航班在11300m的高度飞行时突然发生俯冲,造成12名乘客严重受伤。调查员认为问题源自“单粒子翻转”(SEU)导致的错误数据进入了电子飞行系统。这一次可能也是宇宙射线造成的。而2003年比利时的一场电子投票中,同样由于SEU导致4096张选票的记录错误。
宇宙线同样会改写超级计算机中的数据,并造成系统崩溃。这一点受到了越来越多的关注,特别是今年将诞生E级水平的计算机,每秒计算能力达到百亿亿次。目前还不清楚宇宙线对E级机会造成多少威胁。但随着晶体管造得越来越小,翻转一个比特所需要的能量也越来越低,同时计算机的总表面积却越来越大,因此数据侵蚀(data corruption)的风险不断增加。
幸运的是,行业专家正在严肃地对待这一挑战,比如,一项对电子器件进行的所谓“宇宙压力测试”实验,就是使用中子束流照射的方式来模拟宇宙线效应。
宇宙线当然不是唯一造成计算机误差的原因,还有温度、工艺等问题,不过从第一台超级计算机Cray-1开始,宇宙线的效应就很明显,也是由于它恰巧在海拔2300 m的洛斯阿拉莫斯,那里宇宙线的影响很显著。它的制造者极不情愿地在系统中增加了“校验位”,这一数位记录的是所有数据位求和之后的奇偶性,任何数位发生反转都会造成“校验失败”。在最初6个月的运行中,Cray-1记录下了152次校验失败。随着超级计算机的发展,宇宙线的影响并未消失。2002年,当时世界第二快的计算机ASCIQ同样在洛斯阿拉莫斯,甚至不能稳定运行一小时,后来的解决方式是在服务器上加了金属板,使其稳定时间达到了6小时。
宇宙乱局
宇宙线来源于太阳或者超新星爆发等灾变事件,甚至来自我们的银河系之外。成分主要是高能质子和氦核,以接近光速在宇宙中运行,当这些高能粒子到达地球大气的时候产生次级的粒子线簇,有中子、π介子和α粒子。能存活到地面附近的主要是中子,尤其是快中子。
每秒钟都会有上百万个中子穿过我们的身体,但只有极低的几率会改变计算机内存的数位。当中子穿过芯片时,虽然不会造成物理破坏,但会造成二进制位数值的波动,有时可能完全看不出来,有时则是灾难性的。这有点像人体中DNA受到辐射的后果,取决于突变发生在哪里,可能造成癌症,但并不绝对。低能的热中子比原本宇宙线中的能量要低9个量级,它们会与芯片中的硼-10发生碰撞,硼核吸收一个中子衰变为锂,并释放出一个α粒子。
防护测量
采用冗余设计可以有效降低错误的发生,使用两套甚至三套硬件去存放数据,一旦错误发生就会被发现,这在卫星和宇宙飞船上很常见。但对于长期运行的超级计算机来说,太昂贵了。而修建3 m厚的混凝土墙来屏蔽中子也是不现实的,有的计算中心已经被放到地下深处。今天的计算机使用比校验码更加复杂的错误更正码(ECC),占数据量的12%。另外一个重要的革新就是检查点的使用,它会存储一些中间的结果,一旦发生错误,可以从上一个检查点续跑。
系统崩溃和数据丢失并不是问题的全部,还有一些不可察觉的错误,比如ECC可以发现两个数位的错误,但如果宇宙线造成三个数位的反转就无能为力了。
加速测试
越来越多商业显卡(GPUs)进入高性能计算的领域,它本是设计用于图形显示的,但现在这种低能耗高效率的设备大量进入了超级计算机和自动驾驶汽车领域,如果发生错误将可能造成一场灾难。
基于ChipIR光束线(图1),可以检验无人汽车中使用的显卡发生错误的几率。即在暴露于高能中子辐照的硬件设备上运行一个确定结果的应用。比如,在无人驾驶汽车系统中测试一个预先录制的视频,看软件是否能正确地识别出行人。
图1 大气中子束生成器件(ChipIR)示意图。放置于ISIS裂变源,由卢瑟福阿普尔顿实验室与意大利国家研究委员会(CNR)合作制造,用于微电子器件的放射性效应和高能中子SEU效应的快速检验
当然,在这个实验中,中子流的强度要比宇宙线强得多,实际上高达地表水平的15亿倍。这可以加速实验的进程,如同把设备放在真实的环境中上万年,每小时这个实验可以造成100次错误,由此推算真实环境中的GPU平均每3.2年会出现一次错误。看起来概率很低,但是如果在超级计算机上大规模地部署就不一样了。按照这个错误率估计,装有1800块GPU的超级计算机平均每15小时就会发生一次错误。而对于汽车来说,整个欧盟有2.68亿辆,就算其中十分之一在路上,那每小时也会有380个错误发生。
规模问题
随着超级计算机变得越来越大,这个问题愈加严重,如果第一台超级计算机Cray-1有几个房间那么大,那么今天的计算机已经有足球场那么大了。相应地,也引入了更多的校验机制。而在自动驾驶领域,究竟何种错误会造成致命事故的研究也在进行中。
另一个用来检验数值模拟正确性的方法就是通过物理规律本身,比如系统的总能量在模拟中应该守恒之类。另外,使用AI的方法,依据连续的图像来“感知”错误的发生。目前这种方法能找到90%的错误。比如在气候模式的模拟中,不断监控是否有数据突然超出了正常的范围,一旦发生跃变,可能就是一个错误。
量子困境
量子计算在未来可能有着巨大的应用,但宇宙线对它的影响也更大。量子信息的基本单元是量子比特(qubit),它可以有三个状态,0,1和混合态,这是它能够并行计算,能力超过超级计算机的原理所在。量子比特必须是相干的,也就是彼此之间是协同作用的。目前持续最久的相干时间大概为200 μs,而这可能也会受到宇宙线的影响(图2)。
图2 未来的障碍:科学家已经开始研究宇宙线是如何导致退相干的,这是量子计算中的严重问题
放射性同位素铜-64的半衰期超过12小时,把它放在低温下带有超导量子位的3He/4He稀释制冷机中,几天之后,放射性变得很低,超导量子位进入量子相干态,再经过几周的时间,量子比特慢慢地回到基础水平。也可以使用很重的铅砖墙来做类似的实验,每10分钟就升起然后降下铅屏蔽,可以看到量子比特稳定性的周期变化。
通过这些实验可知,在没有宇宙线和其他辐射环境条件下,量子比特最多可以持续4 ms,大大高于当前的数值。谷歌将在53比特的Sycamore量子处理器上增加铝膜岛。在颗粒状超导铝材料上制备的量子比特位于硅衬底上,当受到辐射时,量子比特和衬底之间交换光子,导致退相干,希望这些铝膜岛会优先捕获这些光子。另一个办法是使用纠错码,谷歌开发了一个棋盘状的布局,在“白格”里放数据量子比特,而“黑格”里放验证邻格正误的量子比特,这种布局可以避免量子纠缠带来的退相干。
在未来的几年中,来自太空的挑战将会进一步加剧,如果不能引入更多的技术,那么宇宙线将有可能是限制超级计算机发展的重要因素,即便芯片尺寸能够做得越来越小。也许需要更多新的纠错方法,我们并不需要太过悲观,相信一定能够找到解决的方案。