中电网移动|移动中电网
 
中电网移动|移动中电网|高清图滚动区

存内计算:让AI进入高速路

AI依赖的算法是一个庞大而复杂的网络,有很多参数要存储,也需要完成大量的计算,这些计算中又会产生大量数据。在完成大量计算的过程中,一般芯片的设计思路是将大量增加并行的运算单元,例如上千个卷积单元,需要调用的存储资源也在增大,然而存储资源一直是有限的。随着运算单元的增加,每个运算单元能够使用的存储器的带宽和大小在逐渐减小,可见存储器是AI芯片的瓶颈。

http://6.eewimg.cn/news/uploadfile/2021/0322/20210322052021914.jpg

AI时代的硬件架构创新还有一大难关——内存墙(内存墙)。
 
要理解内存墙,还需要从传统的冯诺伊曼架构说起。冯诺伊曼架构是计算机的经典体系结构,同时也是处理器芯片的主流架构。在冯诺伊曼架构中,计算与内存是分离的单元:计算单元根据从内存中读取数据,计算完成后存回内存。

http://6.eewimg.cn/news/uploadfile/2021/0322/20210322052028653.png

几十年来,处理器的性能以每年大约55%速度快速提升,而内存性能的提升速度则只有每年10%左右。长期累积下来,不均衡的发展速度造成了当前内存的存取速度严重滞后于处理器的计算速度,内存瓶颈导致高性能处理器难以发挥出应有的功效,这对日益增长的高性能计算(HPC)形成了极大的制约。

简单来说就是内存的性能提升太慢,导致计算机的计算能力提升达到一定的瓶颈,即使再增加处理器的核数,也无法提高综合计算能力。就好比蕴含巨大能量的火山,内部已经汹涌澎湃,但是无奈“脖子太细”不能完全释放。
 
内存墙就是摆在AI硬件创新的一道坎。不管你是TPU,BPU,还是XPU,你的PU做得再快,数据还是在存储那里,你要把数据从内存搬到你的PU里。数据搬移需要的能量在整个计算中占非常大的比重,而且数据搬运的效率不会因为摩尔定律的发展而提高。
 
就拿谷歌发布的TPU来说,看实验数据可以发现,因为TPU所带的DDR3存储架构,带宽只有30个GB/s,虽然第一代TPU做的非常快,但由于存储带宽的限制,很多时间它是在等数据,大大限制了性能的发挥。
 
对于当今的AI芯片来说,追求极致计算能效比是我们的目标,内存墙对于AI芯片能效比的限制效应尤其显著。众所周知,人工智能中神经网络模型的一个重要特点就是计算量大,而且计算过程中涉及到的数据量也很大,使用传统冯诺伊曼架构会需要频繁读写内存。目前的DRAM一次读写32bit数据消耗的能量比起32bit数据计算消耗的能量要大两到三个数量级,因此成为了总体计算设备中的能效比瓶颈。由此看来,内存访问瓶颈就是一个不得不解决的问题。
 
如何翻越内存墙?存内计算诞生
 
内存墙之所以存在,从另一个角度看主要还是由于处理器/加速器芯片和主内存是两个独立的模块,计算和内存之间距离太远,因此来回搬运数据代价太高,无论是吞吐量还是能效比方面这种数据搬运都成为了瓶颈。那么,如何让内存和计算离得更近一些呢?一个最简单有效的方法就是“存内计算”(in-memory computing)也叫存算一体化。存内计算,顾名思义就是直接在存储内做计算。其具体实现方式有若干条技术路径。
 
未来的计算机体系结构可能要改变传统的把计算和存储分开的冯·诺依曼架构。其中的一个创新架构的研究方向是存算一体化,在存储里面加上计算的功能。当计算和存储都放在一起,在内存里面实现神经网络计算的时候,功耗可以降低20倍,速度提高50倍。所以,省去数据搬移,计算的功耗和性能都可以大大提高。

哪种类型的存储做存内计算最好?
 
其实,能做存内计算的存储器并不多,除了FLASH,还有忆阻器、相变存储器、铁电存储器、自旋存储器、SRAM等,但各有各的优缺点。比如,IBM在相变存储(PCRAM)里实现神经网络计算的功能,利用新型存储器件的模拟计算功能来实现神经网络的计算;加州大学圣芭芭拉分校谢源教授在新型存储器件ReRAM(阻变存储)里面做计算的功能,让存储器件做神经网络的计算,称之为PRIME架构。
 
有些厂商吧目光投向了NOR FLASH,综合来看,NOR FLASH是目前最适合产业化的方向,众多巨头投资的美国初创公司Mythic采用的也正是NOR FLASH。NOR FLASH的优势不仅体现在功耗和成熟度等方面,高精度也是很大的优势。
 
由于在很多AI推理运算中,90%以上的运算资源都消耗在数据搬运的过程。芯片内部到外部的带宽以及片上缓存空间限制了运算的效率。所以有人说,存算一体化是下一代AI芯片的关键。
 
这个圈子里的玩家还真不少
 
目前,全球存内计算有不少玩家。除了学术界,产业界也越来越多的玩家布局该技术。IBM基于其独特的相变存内计算已经有了数年的技术积累;台积电正大力推进基于ReRAM的存内计算方案;英特尔、博世、美光、Lam Research、应用材料、微软、亚马逊、软银则投资了基于NOR Flash的存内计算芯片。
 
典型产品和典型企业
 
目前存算一体化大体分为:
 
1.DRAM和SSD中植入计算芯片或者逻辑计算单元,可以被叫做存内处理或者近数据计算,这种方式非常适合云端的大数据和神经网络训练等应用;
2.存储和计算完全结合在一起,使用存储的器件单元直接完成计算,比较适合神经网络推理类应用。
 
存算一体最典型的代表产品
 
最典型的商用产品要属Intel的3D XPoint存储器技术。Intel与美光2015年共同研制了3D XPoint技术,这种技术同时拥有高性能和非易失性两种特性。结合二者优点诞生了英特尔Optane存储器。这是一种将革命性3D Xpoint技术非易失性存储器介质引入内存和SSD的存储解决方案,并融合了英特尔先进的系统内存控制器、接口硬件和软件 IP,能够充分释放巨大的性能潜力,速度上,不仅比固态硬盘快10倍以上,甚至可以当做内存来使用。但好景不长,3D Xpoint芯片本身,其最初的设想是打通内存(非易失性)和闪存,尽管延迟比常规3D闪存优秀太多,可对比DRAM,速度、延迟还是有一定差距,且成本奇高。美光最终宣布终止对3D Xpoint存储技术的开发,Intel就要独自奋战了……

http://6.eewimg.cn/news/uploadfile/2021/0322/20210322052039450.jpg

存算一体化典型企业——知存科技
 
知存科技的研发理念是将存储和计算结合到闪存单元中的存算一体。闪存技术已经非常成熟,商用几十年了,成本很低。 

See the source image

当前商用的神经网络非常庞大,拥有数百万至数千万的权重参数,或者推理过程中需要完成几百万到上千万个乘加法运算。传统的计算系统需要将网络权重参数存在片外的非易失性存储器中,例如NAND Flash或NOR Flash。
 
运算过程中,需要把部分需要的权重参数搬运到DRAM,再把小部分参数传入到芯片中的SRAM和eDRAM中,之后导入寄存器和运算单元完成运算。神经网络运算需要大面积SRAM和eDRAM来减少片内外数据搬运和提高运算效率,但是由于片上存储成本的限制,也需要高成本、高速度的DRAM来缓存片上无法容纳的权重参数和临时数据。
 
但知存科技有自己的高招。知存科技的Flash存储单元本身就可以存储神经网络的权重参数,同时又可以完成和此权重相关的乘加法运算,就是将乘加法运算和存储全部融合到一个Flash单元里。例如,只需要100万个Flash单元,就可以存储100万个权重参数,同时并行完成100万次乘加法运算。
 
知存科技想做的是这样一款芯片:深度学习网络被映射到多个Flash阵列,这些Flash阵列不仅存储,还和深度学习网络同时完成网络的推理,这个过程不需要逻辑计算电路。这种方式的运算效率非常高,成本很低,单个Flash单元能够完成7、8 bit的乘加法运算。
 
存算一体化面临的挑战
 
1.计算精度有限
 
现有浮栅器件存储不适合计算,需要优化和改进。而且片内存储使用的是模拟计算,计算精度会受到模拟计算低信噪比的影响,精度上限在8bit。而且只能做定点数计算,难以实现精准的浮点数计算。所以他并不适合高精度的AI场景,仅适用于嵌入式AI对能效比有要求且对精度没那么高的场景。
 
2.落地场景限制条件多
 
在AI仍旧探寻场景的前提下,存算一体化落地问题仍需紧密结合场景具体分析。
 
3.芯片开发
 
存算一体化芯片产业化尚处于起步阶段,目前面临上游支撑不足,下游应用不匹配等困局。存算一体化芯片对于常规芯片还是有些不一样。比如没有成熟专用的EDA根据辅助设计和仿真;流片之后没有工具去测试;落地阶段暂没有软件与之匹配。存算一体芯片与开发环境、架构和现有工艺的兼容需要市场和时间。
 
总结
 
作为AI发展的关键推动力,AI芯片能够在多大程度上满足AI算法的需求成为关键。要满足AI算法的需求就需要解决AI芯片内存墙的核心挑战,存内计算以其能够同时存储和计算的特性被视为解决内存墙挑战的一种方法,但其用模拟计算满足数字算法的需求,外围电路设计、软件设计、工艺带来的误差都是挑战。
 
目前存算一体的极限效率为>300Tops/W(8bit),现在工业界差距较大5-50Tops/W,进步空间还是很大的。所以说,想要啃掉“内存墙”这块“硬骨头”,存算一体化的发展还有很长的一段路…

猜你喜欢
中电网移动|移动中电网|频道导航区