查看原文
其他

清华高滨:基于忆阻器的存算一体单芯片算力可能高达1POPs | CCF-GAIR 2020

包永刚 芯基建 2021-01-16

忆阻器存算一体芯片用130nm的工艺制造出计算精度与28nm树莓派CPU相当的准确度,速度快20倍,能效也比GPU高3个数量级。

 作者 | 包永刚

雷锋网按:2020年8月7日-8月9日,2020第五届全球人工智能与机器人峰会(CCF-GAIR 2020)于深圳正式召开。会由中国计算机学会(CCF)主办,香港中文大学(深圳)、雷锋网联合承办,鹏城实验室、深圳市人工智能与机器人研究院协办,得到了深圳市政府的大力指导,旨在打造国内人工智能领域极具实力的跨界交流合作平台,是国内人工智能和机器人领域规模最大、规格最高、跨界最广的学术、工业和投资领域盛会。
CCF-GAIR 2020的AI芯片专场,来自学术界、产业界和投资界的6位大咖从AI芯片技术前沿、AI芯片的应用及落地、RISC-V芯片推动AI发展、新基建带来的投资机遇共同探讨新基建带来的机遇。
清华大学副教授高滨从AI芯片技术前沿的角度,带来了《基于忆阻器的存算一体芯片技术》的主题分享。

清华大学副教授高滨
高教授首先带我们回顾了现代计算的演变,从图灵机到现代计算系统中的三大基石:晶体管、布尔逻辑计算、冯诺依曼架构。高教授表示:“近几年AI对算力的需求是爆炸式的增长。芯片算力的提升与需求增长之间有一个很尖锐的矛盾。”
这个尖锐的矛盾主要有两个原因:摩尔定律放缓以及冯诺依曼架构带来的存算分离局限。这让芯片面临着算力和能效两大挑战。
要解决矛盾和挑战,需要三大基石都革新的存算一体计算机。高滨表示:“器件层面,忆阻器可以把冯诺伊曼架构里的处理、内存、外存都融合在一起,构建存算一体阵列,这也是存算一体最基本的要素。计算的范式层面,存算一体也从布尔逻辑计算变成了基于物理定律的模拟计算,架构变成存算一体架构。”
但新的计算系统因为忆阻器的稳定性、计算误差累积等问题,2018年以前完整的存算一体芯片和系统并没有突破。直到高滨所在的清华大学钱鹤、吴华强团队通过忆阻器件、电路、架构、算法等层面的创新,设计出全球首款全系集成的忆阻器存算一体芯片,用130nm的工艺制造出计算精度与28nm树莓派CPU相当的准确度,速度快20倍,能效也比GPU高3个数量级。
展望未来,高滨教授希望通存算一体技术,可以使计算的能效有百倍到千倍的提升,使单芯片的算力达到500TOPs甚至1POPs(1POPs=1000TOPs)。
高滨的团队实现了哪些突破?他们的目标能否实现?高滨教授的演讲中有更多信息。
以下是高滨教授在 CCF-GAIR 2020上的演讲内容,雷锋网对其进行了不改变原意的编辑整理:

现代计算系统的演变

现在的计算系统多种多样,小到手机、平板电脑,大到服务器、超级计算机。这些设备有一个共同点——本质上都是图灵机。
图灵机是在1936年由图灵提出,主要目的是解决机器的可计算性。他提到了图灵机的几个关键要素,包括一条无限长的纸带、一个读写头、一套控制规则,还有一个状态寄存器。有了这些东西,就可以实现通用的计算机。它相当于计算系统架构的雏形。
从现在的观点看,这些要素对应了现在计算设备里面的CPU、存储器、I/O等各个模块,所以图灵机有非常重大的理论意义。
在这个基础上,现在的计算设备形成了一套体系,我们称它为经典计算机,因为现在的计算系统基本都是这样的框架。这也与后面要介绍的新型计算机有对应。

传统的计算机有三大基石,这三大基石也是构成现代计算机最基本的要素。第一个基石是晶体管,它是构成芯片的最基本的半导体器件。第二个基石是布尔逻辑计算,它给出了一套计算规定。第三个基石是冯诺依曼架构,在上面形成了处理器芯片、存储芯片,构成了计算机的硬件系统。当然它本质上都是图灵计算机。硬件之上,经典计算机还有软件,包括汇编语言、编译器、编程语言,以及与用户直接交互的应用软件。
接下来了解下三大基石的演变过程。说到布尔逻辑运算,就不得不提到世界第一台计算机阿塔纳索夫-贝瑞计算机ABC。ABC基于真空管制造,用于美国的大学教学。ABC重要的意义在于首次引入数字计算二进制的思想,通过二进制电子开关做加法和减法的运算。现在看来这个算力非常可怜,每秒只能做大概30次加减法,但其实已经比人要快很多。
几年以后,二战爆发,美国发现如果让人计算弹道,雇用200多名受过专业训练的计算员至少2个月才能完成一张射表。因此,美国组织了很多科学家在1946年建造了非常著名的第一台通用电子计算机——ENICA。这台计算机的算力是每秒5000次加法或400次乘法。

ENICA建造完成以后,团队里一个很重要的工程师冯诺依曼开始反思,之后写了一个报告,报告里明确提到,未来的计算机应该包括控制器、存储器、运算器这样几个部分,也就是现在所说冯诺依曼的体系结构。冯诺依曼架构的意义非常重大,这种存储与运算分离的设计,大大简化了计算机的设计,也让编程、各种控制都变得很简单。

一年后,三位物理学家巴丁、肖克利、布赖坦发明了晶体管。有了晶体管之后,三大基石完整了,集成电路就开始蓬勃发展。

20多年以后,英特尔的创始人戈登摩尔,通过观察集成电路的发展趋势,总结出了摩尔定律。

在摩尔定律的驱动下,芯片算力不断发展,从早期的CPU到现在的各种高端芯片,都有了长足的进步。

人工智能发展对硬件的挑战

但AI对算力的需求越来越高,硬件的挑战也越来越大。
算力是AI的三大要素之一,AI技术出现以来,算力和人工智能一直是一个相互促进的发展。最近几年,之所以AI有长足的进步,一个很重要的事件就是GPU的出现。GPU相当于开启了深度学习的黄金时代,通过并行的加速,让深度神经网络有了很强的硬件的支撑。
不过,近几年AI对算力的需求是爆炸式的增长。所以芯片算力的提升与需求增长之间有一个很尖锐的矛盾。下图显示了单芯片算力的变化,2010年以前,CPU算力是一条非常漂亮的指数增长,沿摩尔定律发展。

2010年以后,芯片的算力很难再提升。当然,最近10年GPU的发展很快,它明显比CPU的算力有数量级的提高。但即便这样,GPU算力提高的速度也在逐渐饱和。
AI算法对算力的需求却正好是一个反过来的趋势,2010年以前的几十年,虽然AI对算力的需求越来越高,但总体而言可以满足需求。过去的这几年突然出现了拐点,呈现出爆炸式的趋势增长,它不但是指数,而且每年都是几个数量级的翻番。
仔细看就会发现,AI算法对算力的需求每3-4个月就会翻一番,这非常恐怖,传统芯片很难跟上算力需求增长的步伐。
要想解决这个问题,要从根源上找原因。芯片算力增长越来越缓主要有两个原因,一个是摩尔定律变缓。现在高端芯片基本都是7纳米、5纳米,一个原子大概也就是1纳米的尺寸。晶体管微缩越来越难,面临各种物理极限挑战。过去几十年芯片的性能提升伴随摩尔定律的发展,但是这条路以后想往下走会越来越难。
第二个原因是冯诺依曼架构带来的存算分离局限。冯诺依曼的架构简化了设计,让开发变得简单,但冯诺依曼这个架构存储和计算物理上是分离的,所计算的过程中需要不断的通过总线交换数据,把数据从内存读到CPU里,计算完后再写回存储。
在这个过程中,我们希望存储和CPU的速度差不多,但实际上存储速度远低于计算速度。中间这个图是一个典型的存储器的体系结构,实际上主存DRAM芯片的速度远低于CPU的缓存和计算的速度,DRAM读每个比特的功耗也比CPU高很多。

另外就是总线传输,根据台积电的数据,10纳米的工艺下,数据的传输和缓存已经占比超过60%,达到了69%。所以大部分的功耗和延迟不是用在计算上,而是用在数据在总线上的传输。
更可怕的是,这个统计只是普通的科学计算,这些计算的数据缓存量并不是很高,大部分的AI算法都是数据密集型计算,数据量更大。对AI的算法,这样一个传输的功耗和延迟的占比可能都超过99%。这一现象通常被称为存储墙的问题。
这让芯片面临两个巨大的问题,一个是算力不足,还有一个是能效过低。所以我们就需要从集成电路的三大基石来考虑,通过引入新架构和新器件来解决芯片的算力和能效的不足。
具体怎么做呢?看看历史的发展,从最早期的传统计算机到最近这几年通过多核并行加速的技术。有了AI以后,学术界、产业界开始考虑用近存计算,冯诺依曼架构的存算分离是一个很重要的瓶颈,把存储和计算尽可能的做得近,像谷歌很著名的TPU就是采用了这样一个近存计算的思想,还有GPU也采用这个思想。

比如,把片上做很大容量的SRAM,或集成3D DRAM,像HBM,堆到计算芯片上面,从一定程度上缓解了存储墙的问题,但是并没有本质解决。要想从本质解决这个问题,就需要进一步把存储和计算融合在一起,这就出现了存算一体的技术。存算一体技术用一种新的半导体器件,这种器件既能够做计算又能够做存储,实现了最底层的融合。
对于存算一体,国内外都在关注,比如IBM就公布了他们的三步曲,第一步是想采用近似计算的数字AI芯片,第二步是基于模拟计算的AI芯片,第三步是采用优化材料体系的模拟计算芯片,用这种新材料、新器件来做。
在国内,去年华为任正非就专门提到边缘计算不是把CPU做到存储器里面,就是把存储做到CPU里,这改变了冯诺依曼结构,存储和计算合二为一,速度更快。
今年,阿里达摩院在未来十大科技趋势的第二条就提到,冯诺依曼架构的存储和计算分离,已经不适合数据驱动的人工智能的应用,要把它们合在一起突破AI算力瓶颈。

存算一体技术的研究进展

什么是存算一体的技术?存算一体技术现在发展到什么样的程度了?刚才我就提到,想做存算一体,首先得有一种新的器件,能够融合计算和存储。什么器件能做到这一点呢?这就要先讲忆阻器的概念。
忆阻器其实也是一个很古老的概念,是由蔡少棠这位伯克利大学的华裔教授提出,他在1971年的时候预测了有这样一种新的器件,当时完全是从物理理论来分析,把电路里最基本的三种无源器件:电阻、电容、电感摆起来,发现从对称性的角度来说少了一块。

蔡少棠教授通过理论推导,最后发现如果有他称为忆阻器的新器件,把忆阻器加进这个图里,整个对称性就非常完美了。但几十年来一直没有人能做出来,一直到2000年以后,很多公司和学校逐渐把忆阻器做出来了。
忆阻器本身是一个两端型的器件,上下两个电极,中间一个介质层,介质层的电阻可以发生变化。而且,这种变化是非易失的,也就是掉电以后,电阻的状态仍能保持。
忆阻器刚做出来,很多企业都说用它做存储很好,比现在的技术要快很多,近期大家发现它还可以做计算,因为它的很多特性跟生物的神经突触很像,所以有些人又把它称为电子突触。

基于忆阻器,就可以把原来冯诺依曼架构里面的处理器、内存、外存都合在一起,用一个忆阻器的阵列来做,称它为存算一体阵列。
其中,最基本的要素就是我要把忆阻器的性能做好,要让这一个器件能够存储多比特的数据,而且还要速度快、功耗低。另外一方面,这种新的计算范式不再是传统的布尔逻辑计算,而是基于物理定律来计算。
举一个很经典的例子,用忆阻器阵列来算矩阵的乘法。向量矩阵乘法在神经网络里面是一个非常基本的算子,这过程要用数字电路来算,要多比特的加法器和乘法器,还需要多个SRAM。

但用忆阻器阵列,直接把要乘的矩阵元素全都映射成忆阻器的电导值,写到忆阻器的交叉阵列。加了电压到电阻会得到一个电流,这是欧姆定律告诉我们的结果,这条位线是多个器件并列的关系,基尔霍夫定律又告诉我们,器件之间的电流又会相加,它自然在阵列里就把乘法和加法的运算完成了。
所以,从存储器的角度看,它就是一步读操作,加了电压读电流,这一步操作就把整个量的乘法完成,效率很高,也不需要任何权重的数据搬运。
再回过头来看计算机的几大基石,如果要做一种存算一体型的计算机,它的三大基石都变了,器件从晶体管变成了忆阻器,计算的范式从布尔逻辑的数字计算变成了基于物理定律的模拟计算,架构变成了存算一体架构。不过,图灵机的框架没有变,只是它的几个构成的基石变了。

我们希望用户感受不到下面的变化,所以应用软件和编程语言跟以前是一样的,中间的对接就要在编译器、指令集这一块下工夫,做专门的存算一体的编译器、指令集,形成新的计算机系统。
关于忆阻器的存算一体技术,国际上也做了很多,大致可以把过去的研究分成两个阶段。第一个阶段是2008—2013年,这时候忆阻器刚刚出现,惠普实验室首先发现了忆阻器开始,大家都在做器件的研究,开发可以存储多比特数据的器件。
第二个阶段从2015年到2018年,大家器件开发好,就开始研究计算范式,在忆阻器阵列上完成各式各样的计算。这时候很多大学、公司都开始做这件事,包括清华大学。
2018年以前,业界做了很多事,尤其在器件开发和存算一体的计算范式这两个方面都有很重要的进展。但完整的存算一体芯片和系统,在2018年以前并没有突破。
这面临着一个很重要的问题,存算一体的范式它本质上是模拟计算,计算精度的影响机制很复杂,计算精度很难调控。有人做了一个分析,在此之前已有的忆阻器做一个很简单的数据集的识别,数字计算的精度可以到97%以上,但是忆阻器的系统都是60%以下,所以极大地限制了系统和芯片的开发。
我们发现了两个关键的问题,一个是虽然大家做了很多器件,但器件的性能并不稳定。这是因为忆阻器本质上是靠内部的氧离子迁移来改变器件的电阻值,这跟晶体管靠电子和空穴的工作机制很不一样,电子和空穴的数量很大,它把一切的离散性都平均掉了,但忆阻器靠离子,离子的数量比较少,所以导致这个器件存在比较大的离散性和不稳定性,就会对计算精度产生影响。
所以我们团队设计了一种新的器件结构,上面设计了一个热交换层,调控器件内部的温度,还做了一个阻变层,一个叠层结构。基于这样两个设计,就可以让器件的状态变得很稳定,可以实现稳定得多比特的调控。下面的图显示,我们团队在一个器件上做的电导调控的精度已经非常高了。

另一个问题就是计算的误差累积。也是做了一个很简单的分析,对ResNet里每一层引入1%的误差,最后它的误差非常大。对忆阻器阵列,误差是不可避免的,任何一个器件做得再准确,它都有一定的离散性,这个离散性做阵列的电流累加时,离散就会被放大,得到更大的波动。这还仅仅是一个阵列的波动,有很多层累加以后,最后这个误差就会越来越大。
所以针对这个问题,我们团队也做了一系列的创新,首先我们在电路上做了一些设计,比如说在电路里,导线和忆阻器是串联关系,导线的电阻不可回避。我们设计了一种新型的融合型阵列结构,用正负两种电流做抵消,直接让源线上的电流降低一个数量级,导线的压降就小很多。

基于这些设计,我们团队去年设计出了一款完整的全系统集成的忆阻器芯片,在今年2月份集成电路顶级会议ISSCC上发表,这是全球首款全系统集成的忆阻器存算一体芯片,可以运行双层全连接神经网络。

这款忆阻器存算一体芯片用的是130nm工艺,拿它与28纳米的树莓派的CPU做对比,它们的计算准确度相当,但我们的芯片推理速度已经比它快20倍。更重要的是,这款芯片能效达到78.4TOPs/W,比GPU已经高3个数量级。
有了硬件,也要开始考虑在算法和架构层面做创新。我们团队提出来一种混合训练的框架,直接把器件和电路的各种非理想因素在训练过程中都考虑到,通过建模,把这些因素都放到训练的过程中,这样它就可以容忍各种各样非理想的特性。

我们又进一步又提出自适应的训练,权重部署之后,可能还有一定的离散性。我们在芯片上做一些原位更新,对权重做一些微调,从而使整个芯片的准确率得到进一步的恢复。
我们把器件、电路、架构、算法等等所有的创新纳入到一个框架下,做了一个协同仿真的工具,通过这个工具我们就设计完成了一款完整的存算一体的计算系统,这就是今年1月份我们在《Nature》上发表的,这个系统包括了所有的忆阻器阵列,各种外围控制电路。完成了一个多层的卷积神经网络,通过这个系统,不但证明了存算一体的架构、模拟计算的范式的可行性,也证明了它在算力和能效的优势。

上个月的人工智能大会上,我们在《Nature》发表的文章获得了最高奖SAIL奖,这是会议上唯一一篇论文获奖。
再跟分享一下我们最近的一个工作。我们发现现在的人工神经网络其实跟生物并不太一样,并做了大大的简化。实际生物里除了突触和神经元外,中间还有树突,但现在的神经网络一般只考虑了突触和神经元,并没有考虑树突的存在。
过去,大家以为树突就是传递信号,所以设计芯片的时候一般就是把树突简化成一个连接线。最近两年的生物学研究告诉我们,树突有信号处理功能,能做很多主动的计算。
所以,通过对生物的调研,总结出来了生物神经网络各个部分的功能,突触主要是权重和可塑性,神经元胞体功能是积分和发放。对树突来说,它有积分和过滤两个功能,一方面它可以做一些时间域和空间域的初步积分,另一方面它会把未达到阈值的信号过滤掉,不再传到神经元胞体。
我们把这三部分用三种忆阻器来做,建立了一个更完整的神经网络,这个系统做复杂的计算任务很有优势,比如对于嘈杂背景下的识别任务,树突能把很多无用的信号过滤掉,使能效和准确率得到更好的提升。

未来展望

我们希望做新型的存算一体计算机,这个计算机从最底层的器件到编译器都会有一个变革性的改变,但不改变最上面的编程语言。通过这样一种技术,可以使计算的能效有百倍到千倍的提升,而且使单芯片的算力达到500TOPs甚至1POPs。

当然,未来还有很多挑战,比如基础理论、材料器件、电路系统、软件工具链、算法应用。
最后总结,摩尔定律的变缓,但大数据、人工智能对数据量需求的不断提升,需要开发新的技术。通过基于忆阻器的存算一体技术可以实现算力的提升和能效的提高。而且,存算一体有一个很重要的优势,就是对工艺的要求并没有那么高,可以在非先进的工艺下实现更高的算力,所以基于忆阻器的存算一体技术在AI、区块链、通信,以及各种科学计算等方面都可能会有很大的应用前景。
注:文中配图雷锋网获演讲者授权使用
福利:关注『芯基建』公众号,回复『清华大学高滨』获取演讲PPT    

往期推荐

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存