清华可重构计算团队发表数模混合智能芯片

模拟技术

2412人已加入

描述

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

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

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

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

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

挑战一:需要设计融合多个 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 计算。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分