存内计算技术发展趋势分析
导读
存内计算突破了传统冯诺依曼瓶颈,实现了存储单元与逻辑单元的融合,是实现智能计算的主要技术路线之一。当前的存内计算技术主要面临着硬件资源复用、存内计算单元设计和模拟运算实现等关键挑战亟待解决。随着技术的演进,存内计算凭借其低功耗、高响应速度等性能优势,将首先在物联网的终端推理场景得到应用。存内计算的硬件载体也将从NOR Flash向新型非挥发存储器件方向逐步转变。
一、引言
近年来,人工智能算法发展迅速,在图像处理、语音识别等领域展现出显著的性能优势。为了将算法研究成果推广至实际应用场景,人工智能算法的硬件加速方法研究得到了学术圈和产业界的广泛关注。在这些研究中,不乏基于经典硬件载体的加速方法,如英伟达主导的GPU芯片路径和英特尔、赛灵思力推的FPGA芯片加速方案等。更令人激动的是,非冯诺依曼架构的出现,解决了逻辑单元和存储单元分立的问题,缓解了总线带宽对计算效率的影响。存内计算作为一种非冯诺依曼架构,被认为是人工智能算法硬件加速的未来主流趋势之一。然而,当前的存内技术发展仍面临一些制约因素有待进一步完善。从长远角度看,存内计算的实际应用场景逐渐明晰,市场前景广阔。
本文将围绕存内计算的技术特征,针对当前的研究现状、关键问题和未来发展趋势展开讨论。
二、存内计算技术的基本原理
存储单元与逻辑单元的协同工作是人工智能算法硬件加速的关键。人工智能算法可以抽象认为是为了预测某一未知函数关系,使用大量可调参数(权重)进行拟合,并利用随机样本不断对权重进行修正的运算过程。由于涉及输入信息与大量权重的逻辑运算,人工智能算法对逻辑单元与存储单元之间信息交互能力的需求相较于传统任务更为严苛。因此,人工智能算法的硬件加速研究的一个主要方向,就是通过改进逻辑单元与存储单元之间的架构关系,来增强信息交互能力。
如图1所示,根据逻辑单元与存储单元的关系,计算架构可以分为传统架构、近存储计算架构和存内计算架构3类,这也是人工智能加速技术的演进方向。近存储计算架构的目的是在不改变逻辑、存储单元自身设计功能的前提下,通过硬件布局和结构优化,增强二者间通信带宽,从而提高计算效率。存内计算则更近一步,试图直接在存储单元内部进行运算,实现了逻辑单元和存储单元的有机整合。故存内计算也称为计算存储一体化。
图1 计算架构的分类
存内计算理论上拥有多种工作模式,如图2所示。与传统逻辑运算不同,存内计算在运算过程中使用了存储单元的当前存储状态(Zi)。实际的工作模式可分为3种:模式1,计算结果与输入和存储状态均有关,结果直接输出;模式2,计算结果与输入和存储状态均有关,结果保存在存储单元内;模式3,计算结果与输入和存储状态均有关,结果输出并同时更新存储状态。
图2 存内计算的三种模式
模式1满足了人工智能算法推理功能的基本需求。推理是一个利用固定的权重和逻辑关系,实现输入输出映射的过程。权重和逻辑关系在整个应用过程中不发生改变,故可以利用存储单元保存权重的信息,并利用存内计算的功能设计实现逻辑运算。由此,在应用过程中便无需在存储和计算之间频繁调用信息,从而消除了信息搬运所带来的延时和功耗,也因此将显著提升人工智能算法的运算效率。
模式2满足了人工智能算法的权重更新过程。权重更新是人工智能算法训练过程的重要步骤。由于人工智能算法是一个逐渐趋近的过程,当前的权重可以认为是历史权重改变量的积累,因此每一个权重更新周期可以看作是在上一周期权重基础上的累加。在传统的架构中,权重更新需要依次进行存储状态的读取、权重更新量的计算和更新权重的写入3个过程。这种“读取—计算—写入”的过程是硬件限制算法效率的一个重要问题。模式2的目的就是希望可以直接在存储单元内部实现累加过程,即权重值随着输入信号的激励发生定向的变化。值得注意的是,新的存储状态(Zi+1)应与Zi和输入有关,而非直接覆盖。利用此模式,可以实现权重值的原位更新,从而省去“读取—计算—写入”过程,可以显著优化权重更新过程。
模式3是模式1和2的混合状态,涉及多种因素的相互作用。人工智能的初衷是模拟人类神经网络的工作模式,试图再现人脑的部分功能。模式3的工作原理十分贴近生物神经网络中突触单元,也因此更符合未来人工智能算法的发展趋势。然而,当前基于模式3的应用受到较大制约。一方面,从算法角度看,基于深度学习的人工智能算法是在神经网络的基础上的抽象和简化,在功能上予以分解。模式3并不符合拆解后的算法要求。另一方面,从硬件角度看,模式3虽然也是硬件对激励信号的一种响应模式,但是由于在有限硬件资源条件下,这一响应模式的可控和可预测性十分有限,很难构建复杂的系统。因此,模式3更多地被认为是面向未来人工智能算法的加速方法,如类脑计算。
三、存内计算技术的关键挑战
存内计算虽然可以突破传统冯诺依曼架构的瓶颈,但是仍受到几个关键问题的制约。
(1)硬件资源的复用问题。传统冯诺依曼架构分立了存储单元和逻辑单元,并根据距离逻辑单元的远近,将存储单元划分为硬盘、内存、缓存等多级存储模式。这使得有限的逻辑单元可以调用大量的存储信息,实现了逻辑单元的复用,从而降低了片上资源的开销。然而在存内计算架构中,存储单元和逻辑单元关系发生改变,主要存在3种模式:存储单元分散在逻辑单元内、逻辑单元分散在存储单元内或二者有机融合。这些都将导致单位逻辑单元可调用的存储信息规模的下降,从而降低了逻辑单元的复用能力,增加片上开销。网络层数是当前人工智能算法的一个重要指标,直接影响着算法性能。由于存在硬件资源复用的问题,层数的增加对存内计算架构的影响远大于对传统架构的影响,从而限制了存内计算的应用场景。
(2)存算一体化单元的设计问题。存内运算对存算一体化单元的性能要求十分苛刻。在开销上,存算一体化单元的硬件开销应该控制在一定范围内,至少要明显低于分立的存储单元和逻辑单元的开销总和。例如,基于CMOS电路的存内计算单元的硬件开销只有逐步趋近SRAM的量级,才能体现存内计算架构的存在意义。在可靠性上,存算一体化单元应该同时满足存储和计算两者的可靠性需求,如存储单元的循环特性、保持特性、一致性等以及逻辑单元的响应速度、功耗等。然而,当前的半导体技术,主要还是围绕存储、逻辑模块分别进行针对性优化。从器件工艺和电路设计上,同时照顾到二者的协同优化仍是挑战。
(3)模拟量运算的实现问题。人工智能算法的运算涉及批量的准模拟量运算。例如,算法对权重的变化范围和精度要求较为苛刻,尤其是涉及网络的训练过程,权重精度的要求将超过6bits。然而,在硬件实现过程中,数字量的精准运算开销较大。反而,具备模拟量功能的趋势性估算既能够简化算法,又能够降低对硬件的性能要求。当前,逻辑单元设计主要是基于数字量的精准运算,模拟量运算设计的理论和经验相对缺乏。另外,在硬件上实现模拟量的可控调制和存储的难度较高,也是模拟量运算难以实现的原因之一。
四、存内计算技术的发展趋势
人工智能的硬件化加速方法朝着多元化的方向发展,各种类型的加速方法的研究同步推进,各具特色且难以相互替代。针对不同应用场景,加速方案可分为云端训练、云端推理和终端推理三大块。终端训练技术难度较高,故鲜有产品推出。虽然存内计算作为人工智能加速技术较传统FPGA、GPU等方案仍不成熟,但未来落地方向逐渐明确。
(1)终端推理将是主要趋势。第一,推理过程涉及的权重精度可以进一步简化,计算复杂度也较低,从而更容易存储和计算;第二,推理过程不涉及权重更新过程,无需对存内信息进行频繁修正,从而降低了存算一体化单元的性能要求;第三,终端涉及任务较为固定,对硬件加速功能的通用性要求不高,无需频繁变动架构,故更适合存内计算的实现。
(2)物联网将是主要应用场景。第一,物联网涉及大量的智能终端,智能终端的计算过程往往涉及浅层的人工智能算法数据的预处理。存内计算由于硬件复用问题,在深层算法的加速方面不占优势,反而在浅层算法的实现过程中,简化的存算结构更易于硬件实现。第二,存内计算方案由于无需频繁搬用数据,能耗将显著降低,符合物联网对硬件低能耗的要求。如限定在推理功能的应用范畴,存内计算方案在能耗方面将更具优势。
(3)非挥发存储器件是存内计算落地的关键。基于SRAM框架能够实现存算一体的设计,但其模拟特性、集成能力等都不符合物联网终端的发展趋势。而对于非挥发存储器件,如NOR Flash、RRAM等,模拟量存储、非挥发、低功耗都是其显著优势,这也是存内计算方案核心竞争力的体现。在非挥发存储器范畴内,NOR Flash作为存储器的技术较为成熟,工艺参数、器件模型和模块设计均拥有成熟工具,故其存内计算解决方案将最先实现。未来,NOR Flash的系统架构的核心设计可以向RRAM等新型非挥发器件迁移,从而能够实现技术迭代革新和产品延续,具有较强商业化潜力。
五、结束语
存内计算技术突破了传统冯诺依曼架构的限制,优化了存储单元和逻辑单元的结构,缓解了数据搬运问题,从而显著降低了能耗。伴随着技术的发展,存内计算面临着硬件资源复用、单元设计、模拟运算优化等系列实际技术问题有待解决。面向未来,基于非挥发存储器件的存内计算芯片将是物联网场景下终端推理加速的主要方案之一。
作者简介
周正:京东方科技集团股份有限公司战略协创中心高级研究员。
联系方式:zhouz@boe.com.cn
丛瑛瑛:中国信息通信研究院信息化与工业化研究所数字技术与应用研究部工程师。
联系方式:congyingying@caict.ac.cn
本文刊于《信息通信技术与政策》2019年第9期
文章来源:中国信息通信研究院CAICT