清华大学微电子所Thinker 人工智能芯片团队

数字与模拟可兼得:清华可重构计算团队发表数模混合AI芯片

VLSI Symposia on Technology and Circuits(简称VLSI)是集成电路与微电子领域的顶级会议,与ISSCC(国际固态电路会议)、IEDM(国际电子器件会议)并称微电子技术领域的“奥林匹克盛会”,是超大规模集成电路和半导体器件领域里最顶尖的国际会议之一,也是展现IC技术最新成果的橱窗。

今年的 VLSI 不久之前在日本京都落幕。清华大学微电子所可重构计算团队在VLSI 2019上发表了题为“采用16个存内计算单元的高能效(5.1pJ/神经元)低延时(127.3us/推理)语音识别芯片”(A 5.1pJ/Neuron 127.3us/Inference RNN-based Speech Recognition Processor using 16 Computing-in-Memory SRAM macros in 65nm CMOS)的学术论文。该论文是北京清华大学、新竹清华大学和北京清微智能科技有限公司的合作成果,其中北京清华大学微电子所博士生郭瑞琦为本文第一作者,尹首一教授为本文通讯作者,论文合作者还包括北京清华大学微电子所魏少军教授、刘雷波教授,新竹清华大学张孟凡教授等。

深度学习广泛用于各种人工智能任务中,传统的深度学习加速器侧重于面向数据流的计算架构优化。然而传统冯·诺依曼体系结构所带来的「存储墙」问题日益突显,计算单元与存储单元间的频繁数据搬移造成了大量的能耗。

存内计算(computing-in-memory,简称 CIM)技术是解决「存储墙」问题的有效途径,但存内计算只能支持向量内积等有限运算。为支持完整的 AI 应用,该团队基于可重构计算架构,融合存内计算技术,设计了数模混合计算芯片(代号 Thinker-IM),在语音识别应用中实现了极低能耗。

为了获得极低的能耗,在算法层面上使用二值化的循环神经网络(RNN)建立语音声学模型,从而降低了计算复杂度并节省了存储开销。图 1 展示了基于二值化 RNN 的语音识别系统,包括前端信号处理、二值 RNN 声学模型处理以及译码输出。

图 1:基于二值 RNN 的语音识别系统

在硬件设计层面为了打破传统的冯·诺依曼体系结构的存储墙瓶颈,设计了数模混合计算架构。其中数字部分实现了必要的语音信号处理,而通过模拟计算方式在 SRAM 中实现了同或(XNOR)计算操作,并构建了基于 SRAM 存内计算(SRAM-CIM)的 RNN 计算模块。

该芯片使用 16 个 SRAM-CIM 宏单元完成 RNN 计算任务,从而避免了存储单元与计算单元的大量数据搬移所产生的能耗。当使用 SRAM-CIM 计算单元构建一颗全功能的语音芯片时,存在以下三方面挑战,如图 2 所示。

图 2:基于存内计算的语音芯片的实现挑战

挑战一:需要设计融合多个 SRAM-CIM 单元的计算架构和数据流调度方案。一般情况下,单个 SRAM-CIM 无法存下 DNN 中的全部权重。因此需要多个 SRAM-CIM 单元协同计算,需要考虑如何组织它们的计算方式。

挑战二:需要针对复杂 AI 任务设计多比特输出 SRAM-CIM 单元。对于简单 AI 任务(如手写体识别),SRAM-CIM 单元 1 比特输出精度可以满足识别需求。但对于复杂的识别任务(如语音识别),SRAM-CIM 单元 1 比特输出就会导致 Partial Sum(部分和)的精度损失,影响最终识别精度。

挑战三:RNN 推理过程是一种时域上的迭代计算,其计算过程相当耗时。我们发现在二值 RNN 中的累加过程中存在一些冗余计算。见图 2(c),在累加过程中,如果中间数据足够大而超过剩余累加的最大值,将保证最终结果大于 0。此时剩余累加周期的计算就是冗余的,如能去除这些计算,将能够有效加速 RNN 计算。

Thinker-IM 架构如图 3 所示,主要包括语音信号处理部分和基于 CIM 的 RNN 计算引擎。芯片设计中三项关键技术分别针对性解决了上述三个问题。

图 3:Thinker-IM 芯片架构与计算数据流调度

关键技术 1:设计了数模混合架构并组织多 SRAM-CIM 单元计算方式,如图 3 所示。提出了「输出-权重」双稳定数据流架构,在计算时同时固定输出与权重,减少了数据的重复访问,其中权重被固定在 SRAM-CIM 单元中,部分和被固定在加法树中。

通过分割权重矩阵将 64 个输出神经元作为一组,进一步通过多周期累加得到最终输出。在每个周期,64 个输入被分为 16 组并转化为 SRAM 的字线激励,生成该组输出的部分和并对应在加法树中相加。

关键技术 2:设计了支持 XNOR 操作、3 比特输出的 SRAM-CIM 单元,提出了算法和硬件协同的 SRAM-CIM 能耗优化方法。如图 4 所示,存储单元采用了分割双字线设计(WLL/WLR)。输入数据转化为字线激励,而二值权重被存于存储单元中。此时,位线(Bitline, 简称 BL)的读电流依赖于输入与权重的组合。

存储单元引起的位线的充电、放电电流将分别代表输入-权重-乘积(IWP)为 1、-1。当同时激活 4 条 WL 时,存储单元的读电流在 BL 上累加而代表 4 个 IWP 的累加。最终利用 TSC 和 VSA 单元实现了串行的 3 比特 BL 输出。

图 4:3-b SRAM-CIM 单元结构、波形示例与先前工作对比

在 SRAM-CIM 的存储单元中,充电电流代表 IWP=+1,而放电电流代表 IWP=-1。为了更好地区分 BL 电压值,设计放电电流远大于充电电流。因此存储单元产生 IWP=-1 时的能耗要远远小于 IWP=+1,非对称电流将产生 1.5 倍左右的功耗差。

因此,我们考虑在训练过程中调整 RNN 权重从而产生更多的 IWP=+1 的情况,故在训练的损失函数中引入了正则项修正,并设计了具有感知 CIM 能耗的权重训练流程,如图 5 所示。随着反向传播误差并最小化损失函数,IWP=+1 的比例提高,从而降低能耗。最终在保证精度需求的情况下,在三个测试数据集中平均降低了 10.0% 的能耗。

图 5:具有 CIM 能耗感知的权重调整训练流程

关键技术 3:批标准化(Batch normalization,简称 BN)与二值化的预测机制与处理单元设计。由于 BN 是线性变化,标准二值化是与 0 的阶跃比较,因此 BN 与二值化的融合可以转化为直接与另一个参数 VTH0 的比较,其中 VTH0 由 BN 参数决定。

预测过程分为两个阶段,其一是利用剩余累加的上下界提前预测二值化结果。当中间结果超过或低于剩余累加值的上或下界时,将保证最终结果的正确性,因此我们称这阶段为精确预测,剩余累加值的上下界则组成了精确阈值。

深度学习的统计特性给 RNN 带来了出色的容错性,因此我们可以进一步放宽精确阈值,以一个更激进的阈值完成预测,此过程称为激进预测。

整体预测机制为:首先进行精确预测,如果在每轮精确预测的数量超过我们预先设定的一个参数 Nex 时,激活激进预测对剩余中间累加结果进行二值化

图 6 展示了预测的流程和预测单元的设计。预测单元中包含 64 个预测通道,每个预测通道中使用累加器完成部分和的累加得到中间结果;使用比较器完成 BN 与二值化的融合操作;使用查找表的方式向比较器提供精确、激进阈值和 Nex 参数。最终在保证精度超过 90% 的情况下,在三个测试数据集中平均减少了 24.5% 的操作。

图 6:Batch normalization 与二值化的预测机制与预测单元设计

Thinker-IM 在 65nm CMOS 工艺下完成了流片,芯片面积为 6.2 mm2。在不同的电源电压和工作频率下,在每个神经元和每次推断的最低能耗分别为 5.1 pJ 和 3.36 uJ,每次推断的最低时延为 127.3 us,在能效和性能上都超过了之前工作。

分别在 Google Speech Commands, Hey snips, Smart home 三个语音数据集上对 Thinker-IM 进行测试,结果如图 7 所示。当不采取权重调整和预测机制时,在三个数据集上可以实现平均 92.3% 的精度。当分别采取上述两个优化方法后,可以在超过 90% 的识别精度下平均节省 10% 的能耗和 24.5% 的冗余操作。

图 9:芯片测试结果与工作对比表

Thinker 团队近年来基于可重构架构设计了 Thinker 系列人工智能计算芯片,相关成果相继发表在 VLSI Symposia、ISCA、IEEE JSSC 等顶尖学术会议和期刊上,受到了学术界和工业界的广泛关注。此次该团队设计了数模混合、存算一体新架构,并针对语音识别场景,设计了采用存内计算的数模混合语音芯片 Thinker-IM,为人工智能计算芯片的架构演进开拓了新方向。

论文:A 5.1pJ/Neuron 127.3us/Inference RNN-based Speech Recognition Processor using 16 Computing-in-Memory SRAM Macros in 65 nm CMOS

理论高性能计算芯片
2
相关数据
冯·诺依曼人物

约翰·冯·诺伊曼(德语:John von Neumann,1903年12月28日-1957年2月8日),原名诺依曼·亚诺什·拉约什(匈牙利语:Neumann János Lajos),出生于匈牙利的美国籍犹太人数学家,现代电子计算机与博弈论的重要创始人,在泛函分析、遍历理论、几何学、拓扑学和数值分析等众多数学领域及计算机学、量子力学和经济学中都有重大贡献。

二值化技术

二值化是将像素图像转换为二进制图像的过程。

信号处理技术

信号处理涉及到信号的分析、合成和修改。信号被宽泛地定义为传递“关于某种现象的行为或属性的信息(如声音、图像和生物测量)”的函数。例如,信号处理技术用于提高信号传输的保真度、存储效率和主观质量,并在测量信号中强调或检测感兴趣的组件。我们熟悉的语音、图像都可以看做是一种信号形式。因此,对于语音、图像的增强、降噪、识别等等操作本质上都是信号处理。

暂无评论
暂无评论~