想让电脑更好?先让它们更糟

大科技大科技 大科技 2016-07-15 2257 0

克里希纳·帕莱姆是美国莱斯大学的计算机科学家,但他制造的计算机连加法都算不好。对于它们来说,2+2可能等于5。
但别以为它们很蠢,这种算得不太准的计算机,可能是解决智能便携设备费电问题的最佳办法。它们还能进行更加复杂的模拟,可更好地预测气候变化,帮助我们更高效地设计汽车和飞机,揭示行星形成的秘密。这种计算机可能会揭示人脑的秘密,甚至实现对人脑的模拟。

想让电脑更好?先让它们更糟

 

性能vs能效

直到现在,我们不得不接受性能和能效之间不可调和的矛盾:计算机要么运行得更快,要么以低功率运行,但不能两者兼得。这意味着更强大的智能手机需要更大容量的电池,还意味着超级计算机会超级费电。所以,如何让计算机以较少的电量做更多的事,是摆在研究人员面前的一个大问题。
方法之一就是减少执行代码的时间——时间用得越少,越省电。对于程序员来说,这意味着要找到更快得到预期结果的办法。举一个经典问题:旅行推销员前往多个城市做推销时如何选择最佳的路线。这个问题通常很难解决,因为随着城市数量的增加,那么可能的路途数量就会以指数形式增长。程序员通常满足于寻找一个估计会有最佳路径一半好的路线,这样既不会消耗太多的计算时间,也可得到一个不错的结果。
但使用“偷工减料”的软件只能节省部分的电量。要想真正节省电量,还得需要改变硬件的工作方式。

牺牲准确性

通常,芯片里的晶体管借助硅通道来实现从开(1)和关(0)两个状态之间的切换,如果通道被关上(0),电流就无法通过;如果施加一个电压,通道就会被打开(1),就像大坝开闸放水一样,能让电流通过。
在互补式金属氧化物半导体(CMOS)芯片设计工艺中,只有你给它提供5伏稳定的电压时,通道才能正常地进行切换。如果减低电压,通道会变得不稳定——有时会切换,有时不会。
也就是说,计算机芯片里的晶体管如果不在全额功率下运作,计算就会不准确,但却可以大幅度减少功耗。但如果不准确程度处在一个可接受的范围内,那么以这种牺牲换来节能是值得的。而帕莱姆的团队就是使用这种思路,来解决计算机性能和能效之间的矛盾。
帕莱姆的团队做出了基于CMOS技术的故意不稳定的版本。他们设计了全新的数字电路,里面需要产生准确数据的地方,则提供稳定的5伏电压,但其他不需要太准确数据的地方,只提供1伏电压。他们发现,有一半多的地方都可使用1伏电压。
这样,帕莱姆版本的加法器——一种常见的逻辑电路,仅仅是把两个数字相加——也不能得到准确的结果。帕莱姆说:“当它相加两个数时,它给出的答案虽然不够准确,但这会减少很多能源消耗。”
应用到数十亿个晶体管上,你将会省很多的电。这种技术可以用到不需要准确数据的地方。例如,用大量数值来代表像素颜色。在一个实验中,他们研发了一种数字视频解码器,使用的是不太准确数据来代表显示到屏幕上的像素颜色。他们发现人单凭肉眼很难注意到图像质量有损失。
受到此成功的鼓励,他们又对音频应用进行了测试。他们得到的初步结果表明,用不准确数据处理,可减少一半的功耗,同时语音清晰度只减少了5%。他们认为,这种技术可以大幅度减少智能手机和个人电脑的功耗,毕竟这些设备基本上就是一个视听设备。

降低位数

基于帕莱姆的想法,英国牛津大学的物理学家蒂姆·帕尔默想到这也许能解决目前一个棘手的问题:在不需等待下一代超级计算机到来之前,如何提高气候预测的准确性。
气候的变化关键在于云的作用。你无法自信地预测它们会对全球气候有什么影响,除非你可以直接对云进行模拟。但现在还不清楚如何对其进行模拟。
今天的超级计算机没有实力进行这样的气候模拟,未来更强大的继任者又得消耗太多的能量。根据当前的技术,能对云进行模拟的机器,功耗可能大约为100兆瓦,是今天最强大超级计算机功耗的5到10倍,大致相当于一个小型发电站的总输出功率。
超级计算机之所以会消耗如此多的能量,是因为它们通常是为64位数据而优化的。数据使用64位,就可利用更多的内存,处理更庞大的信息,但功耗就越大。使用32位或16位,处理的数据量就会降低,结果不太准确,但功耗也会降低。而气候模拟涉及到数以百万计的变量,例如风、对流、温度、空气压力、海洋温度和盐度,这些变量的重要程度都不尽相同,都使用64位很浪费电量。因此,我们需要根据对模拟的重要性,用可变位数的数据来表示不同的变量。
芯片制造商已经开始适应这种需求了。最近,美国著名的芯片制造商英伟达公司就推出了图形处理器TX1,能够具有“混合精度”处理能力,允许一些软件在16位和32位工作模式之间进行切换。现在,帕尔默和他的同事正与IBM等超级计算机制造商探讨研发新一代省电的机器,可以允许计算机使用可变位数的数据。
其回报可能是巨大的。目前气候模拟是把地球的大气层分割一个个底面积为100平方千米、高为1千米的区域。帕尔默认为,不准确的计算机可把这个区域缩为边长1千米的立方体,这足够模拟云的大致细节。
帕尔默说:“做出20个不太准确的计算,比做出10个准确计算更有用。”虽然计算的准确度降低了,但是因为使用了更加细致的模拟,最终在总体上会得到更大的准确度。

准确的程度

当然你不能完全放弃准确性。毫无疑问,如果所有的气候模拟变量都用16位而不是64位数据来表示,将是一场灾难。哪些数据可减少位数是研究中的一个挑战。现在,主要的办法是,在程序代码中设定准确性的阈值,这样程序员就可以控制哪些错误是可以接受的,哪些则不行。
不准确计算虽然不适合所有的领域,但仍然有着广阔的应用范围。例如在事故调查之中,不准确计算将允许同一时间内进行大量场景的模拟,可迅速找出事故的原因。
一些学者甚至认为不准确计算可能最终帮助我们理解大脑是如何运作的。当前最强大的超级计算机与人脑的计算水平差不多,然而超级计算机需要消耗兆瓦级的电量,而人脑运行时能耗大致相当20瓦灯泡。这个巨大的差距来自哪里呢?
帕尔默正与英国苏塞克斯大学的研究人员合作,探究大脑中随机的电波动是否就是某种程度上的不准确计算。事实上,大脑可能就是不准确计算的完美例子——消耗很少的能量,却具有强大的计算能力。
总之,想让电脑更好,先使它们计算不准确,变得更糟。也许,不准确计算将会是未来更强大的计算机的基础。

版权声明

本文仅代表作者观点,不代表网站立场。
本文系作者授权大科技发表,未经许可,不得转载。

喜欢0发布评论

评论列表

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址