跨硬件和软件栈的近似计算
1. 引言
新兴的应用领域,如物联网和大数据,让我们步入了数据处理需求不断增长的时代。如今,这些系统常与物理世界交互,以监测和控制物理过程,这使得计算设备的数量大幅增加。不断增长的计算和存储需求直接影响了计算系统的整体能源和功率需求。尽管计算机架构领域有技术进步,但随着数据处理需求的增长,计算系统的能源需求仍在快速上升。因此,传统方法(如功率门控、动态电压和频率缩放)需要与新方法结合,以显著提高现代计算架构的能源和功率效率。
许多大规模应用属于RMS(识别、挖掘和合成)应用,它们本身具有容错性,原因如下:
1. 用户的感知限制,例如图像/视频处理应用的视觉输出稍有变化,由于用户的心理视觉限制,可能不会被察觉。
2. 现实世界感官数据中存在噪声和冗余。
3. 应用和算法具有误差掩蔽和衰减特性。
4. 缺乏唯一的非平凡解,例如网络搜索有时没有绝对正确的答案,多个候选答案都可接受。
利用这些特性,可以放宽精确计算的限制,以牺牲一定的输出质量为代价,探索提高能源和性能效率的新途径。近似计算(AC)就是这样一种范式,它在设计空间中提供了额外的自由度,即通过牺牲计算精度来获得传统设计无法实现的新性能区域。典型应用包括图像/视频处理、机器学习和数据挖掘等领域。
在现有研究中,有多种设计近似电路的方法,近似计算可在电路、架构和/或软件层面进行:
- 电路级近似:包括使用算法设计逻辑电路的近似版本,如近似电路的系统逻辑合成(SALSA),也可使用近似加法器和/或乘法器设计算术数据路径。
- 架构级近似:可在复杂算法(如人工神经网络)中通过识别关键神经元来实现。
- 软件级近似:可使用