存算一体技术:撬开AI算力需求的金钥匙?

正文:
【导读】存算一体的基本概念最早可以追溯到上个世纪七十年代,但是受限于芯片设计复杂度与制造成本问题,以及缺少杀手级大数据应用进行驱动,存算一体一直不温不火。
但最近几年,国内一大批存算一体技术公司伴随着融资信息浮出水面,国外的存算技术的潜心研究者三星和Myhtic近来也动作频频,一个新的存储计算时代似乎将要来临。
图片
为什么要提出存算一体
早在1992年,中国工程院院士许居衍便预测,2014-2017年,人类将进入硅技术生命曲线上的拐点,即将进入“后摩尔时代”。现有冯诺依曼计算系统采用存储和运算分离的架构,存在“存储墙”与“功耗墙”瓶颈,严重制约系统算力和能效的提升。
人工智能的发展已经被算力不足,能效过低所约束和限制。笔者曾在之前的文章中做了详细论述,详细请参见《人工智能下一个10年:算力的黄金时代》,这里不再赘述。
图片
摩尔定律及AI算法算力的演进发展
在冯·诺依曼架构中,存储器与处理器是两个完全分离的单元,处理器根据指令从存储器中读取数据、完成运算,并存回存储器。两者之间数据交换通路窄以及由此引发的高能耗两大难题,在存储与运算之间筑起了一道“存储墙”。
图片
以数据为主的AI计算之下,冯·诺伊曼架构的“存储墙”和“功耗墙”挑战凸显。半个多世纪后的今天,有没有一种方式可以翻越“两面墙”?
随算力增加,处理器核心数增多,每核心可用带宽越来越少,也就限制了整体速度。搬运数据,成为相当大的瓶颈。
图片
当下的计算处理器如CPU,GPU或AI专用芯片等,均采用冯诺依曼架构设计,80%的功耗发生在数据传输上,99%的时间消耗在存储器书写过程中,而真正用于计算的能耗和时间其实占比很低。
人工智能迅猛发展的当下,人工智能算法对逻辑单元与存储单元之间信息交互能力的需求相对于传统任务更严苛。AI计算以数据为主,大量数据搬运导致功耗居高不下。到2025年,全球数据中心将使用全球20%的电量。
AlphaGo下棋打败人类,但人类只用了20瓦的大脑能耗,而AlphaGo是2万瓦。如果更多脑力劳动被机器取代,芯片散发的热量会让地球变得滚烫。
只有低功耗基础上的大算力才是可持续的。
图片
解决存储墙最根本的方案,就是把存储和计算融合到一起,用存储单元去做计算。
存算一体化是将计算机中的运算从中央处理器转入内存中进行,直接在存储单元内部进行运算,缓解数据搬运,可大幅降低数据交换时间以及计算过程中的数据存取能耗。
存算一体成为现阶段实现高带宽、低功耗、计算需求的一条有效途径。
图片
冯诺依曼架构与存内计算对比
存算一体,到底是存储器还是计算器
存算一体化的卖点究竟是什么?
是一个有计算能力的存储器,还是高能效比的计算模块:
前者,则往往需要和台积电等有志于推动下一代存储器的厂商一起合作
后者,则更倾向于以AI芯片的形式做design house
两种方案所需要解决的问题不一样:
有算力的存储还是冯诺依曼架构下的存储器,做一些加密类和低算力计算,从而节省存储与CPU之间的带宽
存内计算是非冯诺依曼架构,它通过存储单元完成二维和三维矩阵运算(这类运算占据了AI中95%以上的算力),提供大算力,它存储数据是为了高效完成运算,本质不是做存储器
笔者认为:存内计算这个名字可能更好,就是用存储器去做计算,整体还是计算类型的芯片。其计算介质是存储器,不是逻辑运算单元。
图片
存算一体主流研究方向
存算一体化技术路线,处于多种存储介质百花齐放的格局。大致可分为片外存储与片内存储两大类:
片外存储:即基于数字芯片和存储器配合的存算一体技术,通过在存储器中植入计算芯片或者逻辑计算单元来提高读写速度
片内存储:即数模混合的存算一体技术,通过在存储器嵌入算法权重,使存储器具备算法功能,实现真正意义上的将存储和计算完全结合在一起
根据存储器介质的不同,目前存算一体芯片的主流研发集中在传统易失性存储器,如SRAM、DRAM和非易失性存储器,如RRAM,PCM,MRAM与闪存等。其中比较成熟的是以SRAM和MRAM为代表的通用近存计算架构。
通用近存计算架构
这种方案通常采用同构众核的架构,每个存储计算核(MPU)包含:
计算引擎(Processing Engine, PE)
缓存(Cache)
控制(CTRL)
输入输出(Inout/Output, I/O)
如下图所示,这里缓存可以是SRAM、MRAM或类似的高速随机存储器。各个MPU之间通过片上网络(Network-on-Chip, NoC)进行连接。每个MPU访问各自的缓存,可以实现高性能并行运算。
典型案例包括英国Graphcore公司,其测试芯片集成了200-400MB的SRAM缓存以及美国Gyrfalcon Technology公司,其测试芯片集成了40MB 嵌入式MRAM缓存。
图片
基于高速缓存的通用近存计算架构
SRAM存算一体
由于SRAM是二值存储器,二值MAC运算等效于XNOR累加运算,可以用于二值神经网络运算。如下图(a)和(b)为两种典型设计方案。
其核心思想:网络权重存储于SRAM单元中,激励信号从额外字线给入,最终利用外围电路实现XNOR累加运算,结果通过计算器或模拟电流输出。这种方案的主要难点是实现大阵列运算的同时保证运算精度。
图片
SRAM存算一体单元设计
DRAM存算一体
基于DRAM的存算一体设计主要利用DRAM单元之间的电荷共享机制。如下图所示为一种典型实现方案:当多行单元同时被选通时,不同单元之间因为存储数据的不同会产生电荷交换共享,从而实现逻辑运算。
这种方案的问题:
其一计算操作对数据是破坏性的,即每次执行运算时,DRAM存储单元存储的数据会破坏,需要每次运算后进行刷新,带来较大的功耗问题
其二实现大阵列运算的同时保证运算精度难度较大
图片
基于DRAM的典型存算一体设计原理
RRAM/PCM/Flash多值存算一体
基于RRAM/PCM/Flah的多值存算一体方案的基本原理是利用存储单元的多值特性,通过器件本征的物理电气行为(例如基尔霍夫定律与欧姆定律)来实现多值MAC运算,如下图所示。
每个存储单元可以看作一个可变电导/电阻,用来存储网络权重,当在每一行施加电流/电压(激励)时,每一列即可得到MAC运算的电压/电流值。实际芯片中,根据不同存储介质的物理原理和操作方法的不同,具体实现方式会有差异。
特点:
由于RRAM/PCM/Flash本身是非易失性存储器,可以直接存储网络权重,因此不需要片外存储器,减小芯片成本
非易失性可以保证数据掉电不丢失,从而实现即时开机/关机操作,减小静态功耗,延长待机时间,非常适用于功耗受限的边缘终端设备
目前,基于RRAM/PCM的存算一体技术在学术界是非常热的一个研究方向,遗憾的是,因为RRAM/PCM成熟度等问题,目前尚未产业化,但未来具有非常大的潜力。
图片
基于RRAM/PCM/Flah的MAC运算基本原理
RRAM/PCM/MRAM二值存算一体
基于RRAM/PCM/MRAM的二值存算一体主要有两种方案。
第一种方案是利用辅助外围电路,跟上述SRAM存算一体类似,如下图(a)所示为一种典型的可重构存算一体实现方案,其可以在存储应用与存算一体应用之间进行切换。由于RRAM/PCM/MRAM非易失性电阻式存储原理,其具有不同的电路实现方式。
第二种方案是直接利用存储单元实现布尔逻辑计算,如下图(b)所示,这种方案直接利用存储单元的输入输出操作进行逻辑运算,根据不同存储器存储单元的结构与操作方法不同,可以有不同的实现方式。
图片
基于RRAM/PCM/MRAM的存算一体基本原理
(a)利用外围电路方案
(b)利用存储单元方案
技术路线的比较:
从器件工艺成熟度来看,SRAM、DRAM和Flash都是成熟的存储技术,其中SRAM可以在先进工艺上如5nm上制造,DRAM和Flash可在10-20nm工艺上制造。密度方面,Flash最高,其次是DRAM,再次是SRAM
在电路设计难度上,存内计算的DRAM > 存内计算SRAM > 存内计算Flash
在存内计算方面,SRAM和DRAM更难设计,它们是易失性存储器,工艺偏差会大幅度增加模拟计算的设计难度,Flash是非易失存储器,他的状态是连续可编程的,可以通过编程等方式来校准工艺偏差,从而提高精度。而近存计算的设计相对简单,可采用成熟的存储器技术和逻辑电路设计技术
谈到量产难度方面,DRAM> Flash >SRAM
Flash是密度最高的存储介质,Flash的单个单元可以存储的bit数最高(8-bit),这两个特点都可以大幅度增加存内计算的算力。所以从密度、可量产性、能效层面多方面综合考量,Flash作为介质是很多企业的首选
存算一体化应用场景
功耗约束条件下的算力提升是行业发展的必然趋势,存算一体技术规模化应用于大算力智能芯片,直面AI 运算的存储开销痛点,从电路设计、AI 核心设计、SOC到编译器、工具链都能有所覆盖,边缘端市场前景广阔。
基于存算一体,一个存储器运算周期可以完成100万次参数乘法和加法运算,效率提升50-100倍。显然这对AI而言就相当有价值了。
图片
适宜边缘侧终端的嵌入式应用
存算一体化芯片的运算效率由存储器件和应用场景决定,对通用性、速度、精度、功耗和成本的要求进行设计取舍:
云端需要考虑通用性、速度快和精度高,适合AI计算的训练芯片应用
终端设备需要考虑成本低、功耗低,对精度和通用性要求不高,适合AI计算的推理芯片应用。
目前存算一体化芯片模拟运算精度不高,更适宜边缘侧终端的嵌入式应用,如安防摄像头的人脸识别,智能家居的语音识别、人机交互对话等。
存算一体芯片,覆盖从端到云
面向从端侧到云的AI计算,做算力弹性扩展在存算一体的芯片产品上似乎也具备了天然的优势。存算一体会预计5-8年的时间甚至更短,去覆盖AI运算场景,就从端侧和边缘侧开始。
2MB、4MB、8MB存储器算力相对更低,可以给端侧设备去用
存算一体阵列到128MB,就可以给边缘侧了
容量达到1GB、2GB、4GB,可提供超过1000TOPS的算力,使用云端场景
总结
计算存储一体化的研究无法一蹴而就,对于广义上计算存储一体化架构的发展。
近期策略的关键在于通过芯片设计、集成、封装,拉近存储单元与计算单元的距离、增加带宽、降低数据搬运的代价、缓解由于数据搬运产生的瓶颈
中期规划,通过架构方面的创新,设存储器于计算单元中或者置计算单元于存储模块内,实现计算和存储你中有我,我中有你
远期展望,通过器件层面的创新,实现器件既是存储单元也是计算单元,不分彼此,融合一体,成为真正的计算存储一体化
当前,存算一体化芯片研发还需要面临可靠性和密度问题,需要更多的技术验证和行业实践应用:
技术层面:存算一体芯片涉及器件-芯片-算法-应用等多层次的跨层协同
细分应用场景的不同性能需求决定了神经网络算法与芯片的设计,算法依赖神经网络框架、编译、驱动、映射等工具与芯片架构的协同,芯片架构又依赖器件、电路与代工厂工艺
器件物理原理、行为特性、集成工艺都不尽相同,需要跨层协同来实现性能(精度、功耗、时延等)与成本的最优
产业生态层面:作为一种新兴技术,想要得到大规模普及,离不开产业生态的建设,需要得到芯片厂商、软件工具厂商、应用集成厂商等的大力协同、研发、推广与应用,实现性能与场景结合与落地
图片
存算一体器件-芯片-算法-应用跨层协同
在智能时代里,从可穿戴到自动驾驶,功耗约束下场景里的计算效率都是永恒的主题,存内计算是解放算力、提升能效比最强有力的武器之一。存算一体化技术是颠覆传统冯诺依曼架构的存在,是未来趋势,但从消费级到企业级市场的应用普及,可能需要十年甚至更长的时间来扎实基础,升级完善。
存内计算技术的发展是一条追求高能效计算的重要技术路线,如何有效控制存内计算接口是一个重要挑战。谁拥有兼顾计算密度与存储密度的存内计算硬件架构,谁就拥有了打开高能效计算的金钥匙。未来的存内计算一定会渗透到大大小小各种规模的应用中去,大大提高计算的能量效率。
写在最后
“知识积累”类稿件质量要求:
A:信息密度高于绝大多数券商的绝大多数报告,不低于《九章智驾》的平均水平;
B:信息要高度稀缺,需要80%以上的信息是在其他媒体上看不到的,如果基于公开信息,需要有特别牛逼的独家观点才行。多谢理解与支持。