关键词:
存内计算
边缘计算
神经网络量化
低位宽训练
片上训练
人工智能加速器
摘要:
随着人工智能(ArtificialIntelligence,AI)算法和物联网应用的飞速发展,AI赋能的智能边缘设备正迅速进入大众视野。然而,目前智能边缘设备大都只能在本地进行神经网络推理,网络训练仍然需要依靠云端服务器完成。通常智能设备需要将本地产生的大量数据上传至云端,在云端完成网络训练后,再将网络参数等信息传回边缘设备以应用于本地任务。边缘端与云端之间的大量数据传输面临着传输延时、隐私安全、功耗限制等问题,因此边缘设备端的本地训练需求变得越来越紧迫。在算法层面,神经网络量化技术通过降低网络中数据的比特数压缩原始网络,能够明显减小模型的存储需求并提高计算效率,这为在计算资源、存储大小和电池容量均受限的边缘设备上直接部署本地训练提供了可能。在电路层面,存内计算(Computing in Memory,CIM)技术通过在存储单元附近直接完成数据计算,最大程度消除了数据搬移所导致的延时和能耗,其展现出低功耗、高能效和高计算并行度的特点,适合应用于边缘设备的本地训练。
本文从面向边缘设备的神经网络训练出发,对一系列的挑战进行研究分析并解决。本文采用由算法到单元电路再到芯片架构的设计方法解决边缘设备的本地训练问题,主要完成以下四项研究工作:
(1)针对网络训练中梯度分布特点,提出一种基于梯度分布感知的INT8神经网络训练算法,其中包括两个创新技术:1.数据感知的动态分段量化方法,通过动态地调整量化参数以应对各种特殊形状的梯度分布;2.更新方向周期搜索策略,通过周期性地搜索量化参数,在训练准确率和额外计算量之间做出权衡,降低量化计算开销。结合这两点技术构建了一个分布感知的INT8量化训练框架,该算法在多个训练任务上实现了多种网络的稳定量化训练,并且取得相较于全精度浮点基准几乎无损的训练准确率。
(2)针对神经网络训练中的转置矩阵乘问题,提出了一种基于SRAM的无ADC转置存内计算阵列,称为AFT-CIM,以实现高能效的乘累加计算(Multiply-Accumulate,MAC)。首先,设计了一个输入可切换的计算电路,在尽量减小计算逻辑的同时保留了输入路径的灵活性。此外,还设计了一个正交路径加法树电路,实现了在一个加法树上同时支持两种计算路径的灵活切换。结合这两点技术,首次创新性地在单个存内计算阵列上实现三类不同数据路径的灵活切换以满足不同计算需求,在具备优秀的能效表现的同时且具有突出的灵活性与可配置性。该阵列在28纳米工艺节点下4比特峰值计算能效达到125.8 TOPS/W。
(3)为了进行完整神经网络量化训练并且实现更高的计算能效,提出了一种基于全能转置CIM阵列的量化训练芯片架构。该架构在AFT-CIM宏电路的基础上加入一个特殊设计的转置缓冲单元,进一步拓展了原CIM阵列的计算模式。通过不同的计算模式控制,该架构在单个CIM阵列上实现了四种不同的计算逻辑,满足了训练过程中的各种转置矩阵计算需求。此外,还设计了专用量化电路,以支持高效的量化训练。该架构通过灵活的数据流配置,首次在单个CIM阵列上实现了深度神经网络训练的完整支持,不仅展现了更好的数据流灵活性,而且具有更高的计算能效。该架构在28纳米工艺下进行INT8量化训练可实现6.14 TOPS/W的计算能效。
(4)综合考虑神经网络训练所需的计算能效和算力,设计了一种面向CNN边缘训练的异构芯片架构,该架构由CIM阵列和脉动阵列共同组成。首先,通过CIM阵列灵活的数据路径控制,避免了神经网络训练中的权重矩阵转置,实现了高效的矩阵运算。其次,通过脉动阵列在前向传播和反向传播中采用两种不同的数据流,避免了神经网络训练中的激活矩阵转置,并提供了更高的计算吞吐量。该架构消除了神经网络训练中所有的矩阵转置,在计算能效和算力之间做出综合考量。该架构在28纳米工艺下进行INT8量化训练可实现4.1 TOPS/W的计算能效和2.79 TOPS的峰值算力。