前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数字与模拟可兼得:清华可重构计算团队发表数模混合AI芯片

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

作者头像
机器之心
修改2019-08-07 16:45:26
1.2K0
修改2019-08-07 16:45:26
举报
文章被收录于专栏:机器之心机器之心

机器之心发布

来源:Thinker 人工智能芯片团队

清华大学微电子所

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

本文为机器之心发布,转载请联系本公众号获得授权。

✄------------------------------------------------

加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告 & 商务合作:bd@jiqizhixin.com

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档