突破“冯诺依曼瓶颈”,一段存储与人工智能凝成的自由故事

美光科技 电子工程专辑 今天


在计算中使用某种形式的存储器以实现“存内计算(In-Memory Computing)”的做法,最近成为了人们热议的焦点。由于能够突破冯·诺依曼(von Neumann)架构中令人生厌的“存储墙”和“功耗墙”,这些新的架构被视作未来30年内,推动“数据计算的文艺复兴”时代到来的关键力量。

惊喜提示:文末有彩蛋

计算,最好在内存中完成

当今社会处于一个信息爆炸的大数据时代,对超高速、高带宽、大容量、高密度、低功耗和低成本的超高性能计算需求呈爆发式增长,而人工智能的出现更加速了这种趋势,因为它需要大量的数据进行训练。

以智能摄像头为例,随着摄像头的分辨率从1080P转向4K,其一天所采集到的数据量将达到200GB。面临同样问题的还包括智能医院、自动驾驶和智能工厂,它们一天所产生的数据将分别超过3TB、4TB和1PB。2020年,一位普通的互联网用户平均每天产生的数据量大概是1.5GB,这样的数据产生速度远远超出了我们的想象。

美光科技(Micron)首席执行官Sanjay Mehrotra曾指出,人工智能服务器所需的固态存储器DRAM的数量是标准服务器的两倍。由于我们仍处于AI发展的早期阶段,还面临着众多挑战,但从长远来看,AI对NAND和DRAM的需求应该会急速飙升。

面对滚滚而来的数据洪流,要使通过AIoT设备传输的大量数据变得有用,无论是采用本地处理、实时处理还是云端处理,高效灵活的计算平台、高性能存储和复杂但易于使用的机器学习堆栈,都是大数据/人工智能取得突破性成果的关键,三个元素缺一不可。正如Sanjay Mehrotra所说,“昨天的计算体系结构不适用于明天。从长远来看,我们认为计算最好在内存中完成。”

图1:计算最好在内存中完成

讨厌的“存储墙”

但在传统计算设备广泛采用的冯·诺依曼架构中,计算和存储功能不但是分离的,而且更侧重于计算。数据在处理器和存储器之间不停的来回传输,消耗了约80%的时间和功耗。学术界为此想出了很多方法试图改变这种状况,例如通过光互连2.5D/3D堆叠实现高带宽数据通信,或者通过增加缓存级数、高密度片上存储这样的近数据存储,来缓解访存延迟和高功耗。但试想一下,人类大脑有计算和存储的区别吗?我们是用左半球来计算,右半球做存储的吗?显然不是,人脑本身的计算和存储都发生在同一个地方,不需要数据迁移。

图2:传统的冯·诺依曼计算架构

除了体系架构自身的限制外,处理器和存储器二者之间长期以来所采用的不同工艺路线,也是造成计算和存储分离,继而产生“存储墙”和“功耗墙”问题的重要原因之一。用户对处理器的高性能需求是无止境的,这使得半导体厂商不断通过提高晶体管内部的开关速度、使用更多的金属布线层和先进封装技术等手段来提升性能;但对于存储器来说,消费者和厂商更在意的是如何在更小的存储单元面积上获得更多的晶体管数量,用以增加存储密度,扩大存储容量。从图3可以看出,1980-2000年,处理器和存储器两者的速度失配以每年50%的速率在增加。

图3:1980-2000年,处理器和存储器两者的速度失配以每年50%的速率增加

与此同时,数据迁移需要的功耗在整个计算中的占比也在“水涨船高”。有研究显示,7nm工艺时代,访存功耗达到25pJ/bit(45.5%),通信功耗达到10pJ/bit(18.2%),数据传输和访问功耗占比达到了63.7%。

因此,学术界和产业界都希望尽快找到一种与人脑结构类似的创新架构的想法就不足为奇了,比如通过对DRAM的逻辑层和存储层进行堆叠,实现近数据存储计算(Near Memory Compute),或者是最好能够将存储和计算有机地结合在一起(存储器颗粒本身的算法嵌入),直接利用存储单元进行计算,最大程度的消除数据迁移所带来的功耗开销。

人工智能,“存内计算”的助推剂

在这一背景下,更聚焦存储的新型“存内计算”架构诞生了。从目前趋势来看,真正对“存内计算”架构起到决定性推动作用的,将是人工智能/物联网相关应用的加速落地。

之所以做出这样的判断,原因有二。其一,物联网中包含大量智能终端,其计算过程往往涉及浅层人工智能算法数据的预处理。存内计算由于硬件复用问题,在深层算法的加速方面应该不占优势,但在浅层算法的实现过程中,简化的存算结构更易于硬件实现。其二,存内计算方案由于无需频繁搬用数据,能耗将显著降低,更符合物联网对硬件低功耗的要求。

众所周知,算法(Algorithm)、数据(Big data)和计算能力(Computing)并称为新AI时代三大驱动力,如何在追求更好性能的同时实现低功耗、低延迟和低成本,逐渐成为摆在所有AI从业者面前的艰巨挑战之一。

在实际应用中,我们发现尽管很多AI硬件平台都展示了自身所具备的强大算力,然而当用户在真正运行一个应用时,却常常发现由于存储带宽和存储架构的限制,很难将所有的AI运算单元填满,从而导致硬件的计算效率低下。以谷歌第一代TPU为例,其平均硬件乘法阵列使用率只有28%,这意味着72%的硬件在大部分时间内是没有任何事情可做的。

而在设计AI平台的时候,大量运算引擎所带来的能量消耗也是不可忽视的。图4表明,如果将完成16位整数加法能量消耗定义为1,那么将32比特的数据从DDR内存传输到芯片中,就将花费1万倍的能量消耗。因此,过大的访问带宽将会直接导致AI芯片功耗高居不下。

图4:AI硬件的计算效率与功耗由访存带宽所主导(图片来源:深鉴科技)

另一方面,5G物联网工业4.0的发展让信息量呈现爆炸式增长,但把所有数据都放到云端去进行处理和传输、存储和分析是不适合的。比如在工业自动化领域,数据存储距离一定要近才有效率;5G移动设备制造商如果不强化终端侧人工智能并进行计算-存储架构更改,将会遭遇严重的电池寿命问题。

摩尔定律目前面临的挑战是扩张速度的急速放缓,无法再提供功率、性能和面积成本(PPAC)的同步提升。因此,相关测算表明,如果能够在内存中实现存内计算,终端设备的功耗将可以降低约20倍,速度提高约50倍,从而大幅提高计算的功耗和性能,特别适用于智能语音识别、降噪、声纹、人脸、手势、文字识别等应用。

“万丈高楼平地起”

这是一句中国的老话。意思是再激动人心的远方,也要依赖于坚实的基础和天才的创新。对于存内计算来说,抛开基础存储器件去谈无异于“纸上谈兵”,对于这一点,存储巨头们有着清醒的认识。

根据存储器件的存储易失性分类,当前存内计算的实现主要聚焦在两类存储器上:1.基于易失性的SRAMDRAM构建;2.基于非易失性的相变存储器PCRAM、阻变存储器/忆阻器ReRAM、磁性随机存取存储器MRAM和浮栅器件/Flash构建。

图5:各类不同存储器件的性能对比(图片来源:美光科技)

  • 基于易失性存储器


基于SRAM存内计算芯片目前可支持无进位乘法运算的计算型cache,相关厂商在2018年还发布了面向深度学习算法的神经Cache,并在逻辑操作基础上实现了加法、乘法和减法操作;2017年,业界基于成熟DRAM存储器件实现了卷积神经网络的计算功能,实验数据表明,针对整数运算,与GPU相比,新架构可以获得7.7倍的性能提升和15倍的能效提升。

  • 基于非易失性存储器


非易失性存储器在最近十几年得到了飞速的发展,以美光为例,其代表性产品包括在2010年发布的45nm 1Gb PCM、2015年推出的27nm 16Gb conductive bridge(CBRAM,一种特殊的ReRAM)和128Gb 3D XPoint技术。基于该技术的最新产品则是美光推出的首款面向数据中心的存储和内存密集型应用的解决方案X100 SSD,它实现了每秒读写操作次数(IOP)250万次,在读、写和读写混合模式下带宽超过9GB/s的性能。

根据Objective Analysis和Coughlin Associates发表的最新年度报告《Emerging Memories Ramp Up》显示,预计到2029年,新兴内存市场可望创造200亿美元的合并收入。其中,PCRAM由于价格低于DRAM,可望在2029年前成长至160亿美元的市场规模。同时,独立型MRAMSTT-MRAM(自旋矩存储器)的收入将接近40亿美元,或超过2018年MRAM收入的170倍。

  • 基于浮栅器件/Flash


基于NOR Flash构建存内计算芯片也是当前比较主流的做法之一。通过把乘数直接存入存储单元内,再把数值输入到闪存阵列之中,并对每个单元都进行乘法,最后通过一条路径求和,就可以达到存内计算的效果。从相关厂商公布的数据来看,基于NOR Flash构建的存内计算芯片最高峰值运算效率能够达到40TOPS/W,平均值为10TOPS/W。

总体来说,基于SRAM架构是能够实现存内计算设计的,但其模拟特性、集成能力可能不太符合物联网终端的需求趋势。而非易失性存储器件,如NOR FlashReRAMPCRAM等既能够提供更多工具来增强近存储器计算,也是被存储业界普遍看好的下一阶段存内计算的建构模组,具有较强商业化潜力,是存内计算方案核心竞争力的体现。

从“新型介质”到“神经形态计算”

然而比起新型存储介质对存内计算未来的影响,存储本身与计算之间的融合,是更值得关注的趋势。

美光新兴存储副总裁Bob Brennan针对内存与计算架构的发展,曾提出过“三个阶段”的看法:第一个阶段是让内存非常靠近逻辑计算,用大量的高带宽数据总线把内存和计算处理器更紧密连在一起;第二个阶段是在内存中进行计算处理。这个概念始于1994年,尽管实现量产在技术上存在不小的难度,软件和逻辑也是分开的两部分,但这样没有传输、延迟等问题,并且大幅提升效能;第三个阶段则是神经形态(neuromorphic)计算,使用内存架构本身做计算。

Brennan的发言引发了行业的共鸣和广泛的讨论。毕竟作为全球主流的三家DRAM提供商之一,美光在2019财年交付了600万片晶圆(包括DRAM/3D XPoint/NAND/NOR),提供了30亿个解决方案,涵盖了从芯片(Silicon)到解决方案(Solution),再到“系统与软件(Systems & Software)”的完整体系,一言一行都备受关注。

但坦率的说,无论基于哪种存储技术,在面对存内计算时,其实都存在一定的挑战。如果基于易失性存储,由于目前处理器与存储器的制造工艺不同,若要在处理器上实现存储器的功能,可能会降低存储器的存储密度。反之,要在存储器上实现处理器的功能,可能会影响处理器的运行速度,很难在性能和容量上实现平衡。如果基于非易失性存储,由于目前厂商和工艺均未成熟,客观上除了需要追加更多投资之外,现有的DRAMFlash工艺也很难平移到新技术上。

不过,在存储器件中进行神经网络训练和终端推理,也就是Brennan提出的“神经形态计算”,逐渐成为近年来人们最感兴趣的应用。图6是IBM苏黎世研究中心科学家在2018年基于相变存储器进行存内计算神经网络训练算法(上),以及训练多层感知机识别手写数字的仿真结果(下)。由于存内计算可以通过消除在内存和处理器之间来回移动权重数据的需要,大大加速了训练速度,而且得到的精度比用传统计算机得到的精度只低了不到百分之一。最重要的是,由于相变存储器件的非易失性,训练后的权值可以在计算存储器中保留数月甚至数年而不需要任何电源。以这种方式训练的芯片可以用于传感器设备内的推理任务,其功率不到传统计算机的1%。


图6:在存内计算中进行神经网络训练

存内计算对加速终端推理也大有裨益。如前文所述,终端推理过程计算复杂度低,涉及的任务较为固定,对硬件加速功能的通用性要求不高,无需频繁变动架构,更适合存内计算的实现。2017年之前,人工智能无论是训练还是推理基本都在云端完成,但到了2023年,在边缘侧设备/芯片上进行AI推理将占据该市场一半以上的份额,总额高达200-300亿美元,这对IC厂商来说是一个非常庞大的市场。

美光在该领域一个很大的进展是2019年对初创公司FWDNXT的收购,一举将计算、内存、工具和软件集成到了AI综合性开发平台中。在FWDNXT人工智能推理引擎的支持下,美光深度学习加速器(DLA)技术具备面向矩阵向量乘法的大量乘法/累加单元,并且具有执行某些关键非线性传递函数的能力。易于使用的编程软件平台和接口,支持广泛的机器学习框架和神经网络,能够使内存和计算能够更紧密地融合,有助于实现更高的性能和更低的功耗。

反过来,FWDNXT的第五代机器学习推理引擎和神经网络算法,通过与美光专业的内存知识相结合,将使美光能够具备探索数据分析所需的深度学习AI解决方案的能力,并借此制造出基于AI的存储芯片,或者包括AI的存储芯片,尤其是在物联网边缘计算领域。

如果我们还能想到美光在2015年收购了FPGA初创公司Pico Computing,并一直在努力寻找可重编程设备合适的应用,以及将哪些数据放到内存中能够获得更高的性能的话,那么,很明显,美光正在学习在内存和存储中需要做些什么,以使其适合未来的神经网络中的各种难题,尤其是在边缘侧,而不是仅仅制造一堆芯片并希望它们起作用。

有奖互动
美光科技(Micron)首席执行官Sanjay Mehrotra曾指出:人工智能服务器所需的固态存储器DRAM的数量是标准服务器的多少倍?
A. 1.5倍
B. 2倍
扫描或长按下方二维码关注美光科技
在本篇同名文章的留言区参与答题互动
即有机会获得100元京东礼品卡!


也可点击“阅读原文”
直接跳转至活动文章页面参与互动