如何让计算机更节能

如何让计算机更节能
本内容由人工智能自动翻译。

随着晶体管尺寸不断缩小,其可靠性也会降低。提高工作电压或许有所帮助,但这意味着功耗也会相应增加。

随着信息技术消耗的能源在全球能源供应中所占比例不断上升,一些研究人员和硬件制造商正在探索一种可能:允许芯片偶尔算错。在许多常见应用中,例如视频渲染,用户可能根本不会察觉差别,而这种做法可能显著提升能效。

在今年的面向对象编程、系统、语言与应用(OOPSLA)会议上,麻省理工学院计算机科学与人工智能实验室的研究人员介绍了一种新系统,可让程序员识别代码中能够容忍少量错误的部分。随后,系统会确定将哪些程序指令分配给不可靠的硬件组件,从而在满足程序员精度要求的同时,最大限度地节省能源。

这个名为 Chisel 的系统还配有一款工具,可帮助程序员准确评估程序能够容忍多少错误。如果图像中有 1% 的像素渲染不正确,用户会注意到吗?如果是 2% 或 5% 呢?Chisel 会按照程序员的要求,在不可靠硬件上多次模拟图像渲染算法的执行,并采用多种不同的错误率进行测试。这样就无需凭猜测来确定精度要求。

研究人员使用从研究文献中选取的一系列不可靠硬件模型,在若干常见的图像处理和金融分析算法上测试了该系统。在模拟中,最终节省的功耗为 9% 至 19%。

成果不断累积

这项新研究建立在去年 OOSPLA 上发表的一篇论文之上,该论文 介绍了 一种名为 Rely 的编程语言。两篇论文均获得了该会议的最佳论文奖之一。

Rely 提供了指定精度要求的机制,并包含一个运算符——句点或点号——表示某条指令可以在不可靠硬件上执行。在去年发表的研究中,程序员必须手动插入这些点号。Chisel 则会自动插入,并保证其分配方案能够最大限度地节省能源。

“我们以往所有研究中的一个发现是,通常,我们分析的计算任务大部分时间都花在一个或几个计算量非常大的函数上,”新论文第一作者、电子工程与计算机科学专业研究生萨沙·米赛洛维奇(Sasa Misailovic)说。“我们把这类计算称为‘内核’,并将研究重点放在它们上面。”

与米赛洛维奇共同撰写论文的还有他的导师、电子工程与计算机科学系(EECS)教授马丁·里纳德(Martin Rinard);同属里纳德研究组的学生萨拉·阿舒尔(Sara Achour)和齐超(Zichao Qi);以及曾在里纳德指导下攻读博士学位、明年将加入 EECS 教师队伍的迈克尔·卡宾(Michael Carbin)。

米赛洛维奇说,实际上,程序通常只有少数几个内核。原则上,Chisel 本可以被设计成自动查找这些内核。但里纳德表示,大多数从事高性能代码开发的人可能希望对程序的运行方式保留一定程度的控制权。一般来说,他们已经在使用便于识别内核的工具。

组合爆炸

然而,单个内核仍可能包含 100 条或更多指令,其中任意组合都可以分配给不可靠硬件。手动逐一检查所有可能的组合,并评估它们对计算精度和节能效果的影响,仍会耗费过多时间。

研究人员为计算精度、指令执行可靠性和节能效果分别建立了三个数学表达式,将这些指标表示为各条指令的函数。这些表达式缩小了系统搜索范围,以便确定应将哪些指令分配给不可靠硬件。这个问题虽然仍然复杂,但经过简化后,现成的软件就能够处理。

“我认为这项工作非常出色,”华盛顿大学计算机科学与工程副教授路易斯·塞兹(Luis Ceze)说。“各种趋势都表明,未来的硬件将是不可靠的,因为这是提升能效和速度的一种方式。”

不过,塞兹指出,麻省理工学院研究人员使用的硬件模型要求指定各项操作执行时的可靠性。“这限制了近似计算所能带来的节能效果,”塞兹说。“我支持粒度更粗的近似计算:一次性近似执行一大批操作。这样在性能和能效提升方面,可以从百分之几十提高到几十倍。”

至于麻省理工学院研究人员的工作能否调整以适应这种模型,塞兹说:“可以做到。事实上,我的研究组在不同情境下做过类似研究。因此,这绝对可行。”

本文最初刊载于 《麻省理工学院新闻》

作者:拉里·哈迪斯蒂(Larry Hardesty)是《麻省理工学院新闻》的特约撰稿人。

图片:2013 年 2 月 28 日,一名男子在华沙敲击电脑键盘。路透社/Kacper Pempel/资料图片

分享:

授权与转载
世界经济论坛发布的文章,可依据《知识共享署名-非商业性使用-禁止演绎4.0国际公共许可协议》以及我方《使用条款》进行转载。 本文所表达的观点仅代表作者个人立场,并不代表世界经济论坛的观点。