Time Domain Near Memory Computing Engine
本文提出了一种时域近存计算架构,该架构将数字权重和输入转换为时域信号以进行高效的低精度乘累加运算,在平衡模拟与数字设计权衡以最小化外围开销的同时实现了7.62 TOPS/W的能效。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下你正在经营一家繁忙的厨房。在传统厨房中,厨师(计算机处理器)必须不断往返于储藏室(内存)取食材(数据),烹饪后,再跑回储藏室取下一批。这种来回奔跑消耗了巨大的能量和时间。
本文提出了一种经营厨房的新方法:近内存计算。与其让厨师跑向储藏室,我们不如在储藏室旁边设立一个小型的备餐台。食材已经在那里了,厨师可以立即开始烹饪,无需进行那令人筋疲力尽的奔跑。
然而,作者们注意到,即使有了备餐台,我们测量和混合食材的方式仍然效率低下。他们提出了两种利用时间而非仅仅依靠标准电力来进行“混合”(数学运算)的新方法。
以下是他们想法的分解,使用了简单的类比:
核心问题:“电压”瓶颈
通常,计算机通过改变水位(电压)的高度来进行数学运算。如果你想要非常精确,就需要测量水位高度的微小差异。但是,测量微小差异需要巨大且耗电的泵,以及非常大的桶(电容器)来保持水的稳定。当你试图获得更高的精度时,能量成本会呈指数级上升。
解决方案:“时间”开关
作者们说:“为什么要测量水的高度?让我们测量水流动了多久。”
他们建立了一个系统,其中:
- 权重(食谱): 存储在内存中,这些通过一个特殊阀门(数模转换器,DAC)转化为稳定的水流(电流)。
- 输入(订单): 这些被转化为一个计时器。系统不是测量特定的水位高度,而是计算阀门保持开启的秒数。
- 乘法运算: 如果你有一股稳定的水流,并让它流动特定的时间,那么收集到的总水量就是数学运算的结果。
- 类比: 想象往桶里注水。“食谱”决定了水龙头的宽度,“订单”决定了你让水龙头开启多久。桶里的总水量就是答案。
两种“混合”方法
一旦收集到水,他们就需要将来自许多不同食谱的结果相加。他们测试了两种方法:
方法一:“多米诺骨牌链”(延迟单元架构)
- 工作原理: 想象一排多米诺骨牌。第一块倒下,触发第二块,第二块触发第三块。在这个系统中,从每个食谱收集到的水量控制着特定骨牌倒下的速度。
- 过程: 你推倒第一块骨牌,它沿着链条传递。最后一块骨牌倒下所需的总时间代表了所有食谱的总和。
- 优点: 速度极快。你推一次,答案几乎立即从另一端出来。
- 缺点: 如果骨牌不完全相同(在现实中它们很少完全相同),微小的误差会累积。当最后一块骨牌倒下时,时间可能会有些许偏差,这使得最终答案在进行大型复杂计算时精度降低。
方法二:“秒表团队”(基于计数器的架构)
- 工作原理: 与其使用多米诺骨牌链,不如想象一个团队,每个人都有自己的秒表。
- 过程: 你让 A 记录骨牌倒下的时间并写下数字。然后让 B 记录他们的时间并写下数字。你在纸上将所有数字相加。
- 优点: 因为每个人都是独立测量的,A 的错误不会搞乱 B 的测量。最终总和非常准确且“线性”(可预测)。
- 缺点: 速度较慢。你必须停下来,写下数字,移到下一个人,然后重复。这需要更多时间和更多“脑力”(控制逻辑)来管理团队。
结果
团队构建了一个小型原型(一个 4x4 的厨房工作站)来测试这些想法。
- 速度: 他们实现了每秒 4000 万次运行(40 MHz)。
- 效率: 他们使用的功率极低(42 微瓦)。
- 效率得分: 他们达到了 7.62 TOPS/W 的得分。
- 翻译: 对于他们使用的每一微小能量,他们获得了巨大的计算能力。对于低精度任务(如基础人工智能所使用的任务),这比标准数字芯片要好得多。
结论
该论文声称,通过从测量“水位高度”(电压)切换到测量“水流时间”,他们创造了一种在 AI 任务中能效高得多的计算机芯片。
- 如果你需要速度,“多米诺骨牌链”很棒,但在处理复杂数学时会变得有点混乱。
- 如果你需要准确性,“秒表团队”更好,但它速度较慢。
作者们总结道,目前对于他们的原型来说,“多米诺骨牌链”(延迟单元)方法是获胜者,因为它更快且使用的控制功率更少,尽管它在精度方面存在一些限制。他们计划在未来的版本中尝试解决精度问题。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。