由各种系统和设备产生的数字数据的显著增长已经被充分记录在案。研究表明,在2000年之前,世界上的数字数据量与模拟数据量相比相形见绌。今天,几乎所有生成、传输和消费的数据都是以数字形式出现的。
当数字世界中的大量数据属于交易类型时,商业计算机就开始发展。如今,交易数据持续增长,但在由消费者图像、监控视频、娱乐信息、社交媒体和传感器数据主导的数字世界中,交易数据只是一个小得多的部分。然而,今天的大多数系统,包括个人计算机,基本上使用相同类型的处理器、相同的存储层次结构和相同的由事务系统开创的计算范式。
为支持事务处理(例如,财务事务)而构建的系统有特殊的需求。这些系统的处理器的大部分复杂性是为了满足高可靠性、高精度和定义良好的操作顺序。这些属性有助于对程序进行推理和调试,但即使在程序执行的那些操作和阶段,它们也会带来成本,而这些操作和阶段本可以被放松。
如果我们只能处理这些新的非事务性数据,系统会是什么样子?挖掘和处理这些数据的典型应用程序通常可以容忍较低的精度、不精确的排序,甚至在系统操作中存在一些不可靠性。因此,及时交付的偶尔过时的或大致正确的信息通常比稍后交付或以更大代价交付的最新的和精确的信息更有用。
有人可能会说,近似计算使得对程序产生的结果进行逻辑推理变得困难。然而,即使在传统的计算中,这种推理也常常是困难的——实数不能总是被精确地表示出来,多个处理器对共享变量的访问顺序常常是不可预测的,可能导致不确定的结果,而且从任何系统中消除所有潜在的错误来源(硬件和软件)几乎是不可能的。与传统计算不同,近似计算允许错误发生,并将容忍错误的责任转移到运行时、编译器甚至应用程序本身。
下面的论文通过近似计算演示了在成本、功率和延迟方面的显著优势。文中的编程模型允许程序员认为程序的某个区域是近似的。编译器生成两个版本的近似代码,一个在主机上运行,另一个在单独的加速器上运行,该加速器可能执行更快的计算,消耗更低的能量,但结果可能与主机本应产生的准确结果不同。
作者假设,在许多近似的程序中,解空间是这样的:对程序在一系列输入上的过去行为的了解可以很好地预测程序在一些新的输入上的行为。作为近似区域的加速器,它们使用学习引擎来提供近似正确的结果。作者选择的学习引擎是一个数字神经网络。可近似部分的主机版本在一组典型输入或一组随机输入上执行。此执行的输出用于训练神经网络加速器。在容忍近似的各种程序中,作者在可容忍的质量损失下显示了令人印象深刻的性能提高和功耗降低。同样令人印象深刻的是,这些增益和功耗降低不需要针对不同程序的不同加速器实现,它们是在所有程序的所有类型的近似代码区域的相同近似加速器上获得的。
除了论文中所描述的以外,通过在相当低的电压下运行这种近似的计算引擎,还可以节省更多的能源。该行业增长的真正引擎——登纳德标度(dennard scale)已经允许晶体管缩小尺寸,同时消耗更少的电能并提高性能。但登纳德比例正在结束。设备的尺寸已经缩小到原子级别,电压无法在不影响设备可靠性的情况下大幅降低。新技术承诺了良好的动力性能,但它们的优势被为补偿其不可靠性所需要的冗余所抵消。因此,未来的技术不太可能为传统事务系统提供更好的功率性能特征。然而,对于产生近似结果的系统,如作者所描述的系统,所需的冗余可能是不同的,而且相当简单,使得低压操作在这类系统中是可行的。
近似计算似乎是我们最好的希望,通过未来的CMOS和后硅技术,将大量的计算用于处理世界上产生的大量数据。下面的论文是一个很好的例子,说明了为实现这一承诺需要做哪些工作。
数字图书馆是由计算机协会出版的。版权所有©2015 ACM, Inc.
没有发现记录