Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

MIT「跨越性」AI芯片解密:真的是颠覆性创新吗?

近日,关于“MIT开发出跨越性专用芯片,功耗降低95%,手机也能运行神经网络”的文章刷遍了朋友圈。其中的技术是MIT Chandrakasan组发在今年ISSCC上的一篇论文。对于我们这样喜欢打破沙锅问到底的技术人员来看,看朋友圈的科技媒体文章犹如隔靴搔痒,于是找来了今年的ISSCC论文仔细阅读,这里把具体分析与大家一起分享。

首先上总体评价:论文是好论文,技术是具有独创性的好技术,中ISSCC名至实归,但是离工业界大规模应用还有一定距离

背景


报道中的“跨越性”AI芯片事实上是发表于ISSCC 2018的论文,标题为《Conv-RAM: An Energy-Efficient SRAM with Embedded Convolution Computation for Low-Power CNN-Based Machine Learning Applications》,具体的Session是31-Computation in Memory for Machine Learning。顾名思义,该Session主要讨论的是如何在机器学习应用中直接使用内存内计算去改善性能和能效比。再经过数年的发展后,机器学习加速芯片社区基本都认识到了内存访问是性能的瓶颈,因此想方设法想要把内存访问造成的性能损失给优化掉,而内存内计算就是一种方法。事实上,一旦做到内存内计算,就已经超越了传统的冯诺伊曼计算机架构,可以说是影响深远。因此,今年ISSCC专门为Computation in Memory for Machine Learning开了一个Session。

本文的作者来自MIT Anantha Chandrakasan组。Anantha Chandrakasan在芯片领域可谓是鼎鼎大名,是数字电路经典教科书《Digital Integrated Circuits: A Design Perspective》的作者之一,同时也是低功耗数字电路设计、UWB系统等多个领域的先驱者,基本每年Chandrakasan组在ISSCC都会至少有一篇论文发表。

论文首先开宗明义,指出目前CNN加速芯片中,内存访问已经成为性能瓶颈,其能量消耗远大于用于计算的单元。

为了降低内存访问能耗,可以在CNN中使用1-bit权重,并且根据相关论文1-bit权重AlexNet上能实现还不错的效果。所以,本论文也将会使用1-bit权重,具体地说,CNN输入是高精度数字,而权重则是binary(-1或1)。这里需要提醒读者的是,虽然1-bit在一些场合可以实现不错的效果,但是选择使用1-bit作为权重也大大限制了论文中描述架构的灵活性,因为1-bit权重目前使用的场合毕竟还比较有限。

如果做一些数学变换,卷积输出实际上是输入的加权平均。所以该论文使用Multiplication-And-Average (MAV)操作来实现内存内计算。

Conv-SRAM与MAV具体实现

Conv-SRAM的具体实现如下图所示:权重(1-bit)储存在SRAM中,输入数据(7-bit数字信号)经过DAC成为模拟信号,而根据SRAM中的对应权重,DAC的输出在模拟域被乘以1或者-1,然后在模拟域做平均,最后由ADC读出成为数字信号,这个操作即MAV。

这么做能实现几个特点:首先,这里不再有明显的“读写内存”的动作,因为根据当前内存的内容(即权重)直接对输入数据进行操作,避免了之前的“从内存读数据——从内存读权重——权重与数据相乘——结果存回内存”的冯诺伊曼式计算过程。当然,不用读写内存这件事从另一个角度看是因为计算全部是在模拟域完成,做模拟信号处理的时候不使用冯诺伊曼式的处理模型本来就很常见。第二个特点是,因为CNN中输入数据是被带不同权重的卷积核复用的,因此一组输入数据可以广播给多组不同卷积核做并行处理。

而接下来的MAV则是Conv-RAM的核心操作。熟悉混合信号电路的朋友们对于这一些操作应当相当熟悉,因为在经典的ADC和DAC中经常会用这些。具体来说,由于乘法的权重是1-bit(1或-1),因此可以简单地用一个开关加差分线来控制,如果是权重是1就让差分线一边的电容充电到DAC输出值,反之则让差分线另一边充到这个值。平均也很简单,几条差分线简单地连到一起就是在电荷域做了平均了。

于是,使用Conv-SRAM和MAV,最终实现了在LeNET网络对MNIST数据集分类这个benchmark上60倍以的能效比提升,而分类精度降低了约2%。

产品化之困

看到这里,可以说这是一篇非常高质量的学术论文,首先它占了几个时下非常热门的关键词,包括“人工智能加速”,“内存内计算”,“非冯诺伊曼架构”等等,其次工作的质量也很不错,在ISSCC上发表也属名至实归。

然而,这样的结果想要真正实用化,还有许多的路要走。从论文的实测情况来看也是如此,芯片的benchmark是LeNET+MNIST,这样的benchmark可以说是仅仅验证了概念。具体地,我们认为该技术离实用化还需要克服的问题包括:

-1-bit权重的网络模型性能问题。目前低精度网络确实是深度学习领域最热门的研究方向之一,但是1-bit权重的网络模型到底在哪些地方可以使用却还没有定论可言。论文引用了之前的结果,1-bit权重AlexNet可以实现准确率损失在1%左右,但是AlexNet是一个相对简单的网络并且在目前已经使用不多,而一些更复杂的主流网络如ResNet在深度较深之后,1-bit权重造成的计算精度损失经过多级网络层之间的层层传播累积最后可能会造成很大的误差。这一点如何克服我们尚未看到明确方向。

-如何规模化的问题。论文中的核心操作MAV全部是在模拟领域实现,因此每一路输入输出都需要精度较高的DAC和ADC模块。这些模块其实占据的芯片面积不小,因此规模化的成本代价不小;另外,模拟电路的本质注定了在规模化的时候会遇到设计流程上的困难,包括输入失调,模块间的参数失配等等,因此规模化的难度会远远大于数字电路。

-如果1-bit流行,真的需要这样的专用加速器吗?这其实也是个很重要的问题:假设我们能解决1-bit权重网络的精度问题,那么网络可能可以直接使用SoC上的ARM核直接运算,为何还要另外添加这样一个复杂的模块呢。

总结

《Conv-RAM:An Energy-Efficient SRAM with Embedded Convolution Computationfor Low-Power CNN-Based Machine Learning Applications》是一篇相当成功的论文,一方面概念非常新颖,另一方面在设计方面也属扎实。然而,其中的内存内计算方法想要实用化还有不少距离。

矽说
矽说

产业神经网络深度学习CNN
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

模拟信号技术

模拟信号(英语:analog signal),是指在时域上数学形式为连续函数的信号。与模拟信号对应的是数字信号,后者采取分立的逻辑值,而前者可以获取连续值。模拟信号的概念常常在涉及电的领域中被使用,不过经典力学、气动力学(pneumatic)、水力学等学科有时也会使用模拟信号的概念。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

Alex网络技术

AlexNet是一个卷积神经网络的名字,最初是与CUDA一起使用GPU支持运行的,AlexNet是2012年ImageNet竞赛冠军获得者Alex Krizhevsky设计的。该网络达错误率大大减小了15.3%,比亚军高出10.8个百分点。AlexNet是由SuperVision组设计的,由Alex Krizhevsky, Geoffrey Hinton和Ilya Sutskever组成。

推荐文章
暂无评论
暂无评论~