系统相关
首页 > 系统相关> > NS-CIM:一种电流模式的内存计算架构,支持智能物联网视觉节点的近传感器处理

NS-CIM:一种电流模式的内存计算架构,支持智能物联网视觉节点的近传感器处理

作者:互联网

摘要:
近年来,神经网络(NNs)在创新应用方面呈现出巨大的潜力。然而,能源效率仍然是一个挑战,在边缘部署的神经网络。在这种情况下,内存计算(CIM)架构成为节能硬件设计领域的一个新兴趋势,因为它显著减少了乘累加(MAC)计算的数据移动。然而,许多最近的研究使用了大量的数据转换器来输入数据和转换输出结果,这可能抵消了内存处理的好处。为了解决这一局限性,我们提出了一种传感器与CIM宏协作的组合架构,以实现感知信号的局部处理。采用电流模式计算技术,在消除数据转换开销的同时,实现了较高的能量效率。此外,我们深入分析了所提出的混合信号电路的非理想性,并提出了一种协同设计方案来缓解这些缺陷。我们利用台积电65nm技术,在该架构中制作了一个2Kbit的CIM宏。该芯片在消耗845.5 uW功率和0.3 mm2核心区面积的同时,实现了60.6 TOPS/W的能效,为能源受限的边缘器件提供了一种有前景的解决方案。

索引 术语-内存计算,近传感器处理,物联网,二进制权值网络,常开型传感器。

介绍
近年来,神经网络(NNs)在广泛的传感应用中发挥着重要作用,如计算机视觉、语音识别。和机器人。最近[1]-[4]的许多努力都在尝试部署这些计算密集型的神经网络在边缘设备上,包括移动电话、无人机和其他loT节点。然而,由于电力/能源/面积预算的限制,硬件社区要将NNs完全集成到边缘节点中仍然是一个严峻的挑战。内存计算(CIM)是解决这一局限性的一个新兴趋势,在最近的著作[5]-[10]中得到了深入的研究。CIM提供了一种非冯·诺伊曼计算范式,即计算直接发生在内存块中,而不是在计算之前将数据移出内存。由于乘累加(MAC)操作和所需的内存访问在NNs[11]中占主导地位,CIM体系结构有望通过减少数据移动来提高能源效率。

众所周知,在精度有限的情况下,模拟计算与数字对等体[4]、[12]相比,具有提高能源效率的潜力。这一事实促使一系列CIM工作通过利用混合信号处理架构来利用原位模拟计算。然而,这一趋势导致了两个主要缺点,阻碍了CIM处理器在边缘节点上的广泛应用。首先,需要大量的模数转换器(adc)和数模转换器(dac)作为传感器、外部存储器和处理单元之间的接口。在最近提出的CIM系统中,这一开销通常是主要的能源消耗。虽然使用BNNs[131(激活和权值都限制在+/-1)可以缓解这一问题,但应用精度往往不令人满意。其次,模拟方面的缺陷,如不匹配、过程变化和非线性,从根本上限制了这些CIM体系结构的计算信噪比和可伸缩性。

为了解决这些限制,我们提出了一种近传感器CIM架构,即NS-CIM,用于节能的DNN推理。NS-CIM结合CMOS图像传感器(CIS)和CIM宏,同时进行传感和处理。为了更好地权衡模型复杂性和准确性,我们将二值神经网络[14]应用于分类应用,其性能比BNNs更稳定。二值化的重量在6T+3T开关电流SRAM (SiRAM)细胞中保持稳定。当输入数据是传感器通过这种方式产生的模拟信号时,整个系统实现了一个从模拟信号到分类结果转换,无需外部存储器访问和数据转换开销。此外,我们使用电流模式电路来降低MAC操作的复杂性,并与以前基于电荷的设计相比获得更好的可伸缩性。此外,本文还通过一个硬件-算法协同设计方案分析和解决了所提出的模拟电路所面临的挑战。最后,我们将使用制作的CIM宏演示二进制分类和多类分类的应用。从各方面考虑,我们在本文中做出了以下贡献:

1)架构:我们提出了一种混合信号架构,即NS-CIM,该架构经过精心设计,以消除外部内存访问和数据转换的开销

2)电路:我们提出了几种用于传感器和CIM宏的电流模式电路,与之前的工作相比,具有更少的复杂性和更好的可扩展性

3)设计方法:我们已经分析和识别了NS-CIM中模拟缺陷的挑战。提出了NS-CIM的硬件行为级别,以实现硬件和算法的协同设计。

4)硅:采用TSMC 65nm混合信号技术制作CIM宏电路,实现60.6 TOPS/W能效和51.2 GOPS吞吐量,功耗仅845.5 uW。

背景
A.针对神经网络的内存计算(CIM)

为了解决内存墙问题,提出了内存计算[5],使计算操作接近内存元素,这在提高神经网络加速器的能量效率方面具有很大的潜力。图1显示了传统CIM的架构。首先,输入被转换成模拟电压或脉宽调制(PWM)信号。然后,这些模拟信号驱动SRAM阵列中的字线(WL)开关来对位线(BLs)进行充放电。最后,对BLs上的结果进行累加或取平均值,得到MAC操作的输出。通过实现内存计算,从数据主机到处理器的总内存访问可以减少26.5倍[15],如图1所示,这大大提高了能源效率。

在这里插入图片描述

然而,这种计算范式遇到了可扩展性问题,阻碍了其在大规模分布式物联网传感器节点上的应用。传统的CIM系统经常使用DACs(时域转换器)或TDCs (time-domain converters)作为数据接口,向网络管理员提供输入数据。例如,[15-17]中提出的系统使用并行dac来驱动SRAM数组中的BLs,当应用程序需要高吞吐量时,这会导致显著的开销。同时,传感器使用adc将原始模拟信息转换为数字数据,便于存储在存储器中。然而,这种ADC-DAC操作并不有助于信息提取,却消耗了大量的硬件资源。之前的作品[18]、[19]指出了CMOS图像传感器存在的模拟读出瓶颈,[5]、[20]强调了传统CIM架构中数据转换的开销。在本文中,我们建议将近传感器处理与CIM范式结合起来,通过将感知信号直接传送到CIM块来消除数据转换开销。第三部分为整体架构设计。

B.近传感处理

loT设备通常有有限的能量和面积预算,而此类设备的数量往往是巨大的,最近的努力倾向于处理从传感器获得的数据的感觉数据。因此,只有关键信息被提取并发送到主机系统。这种体系结构方法被称为近传感器处理方案,在最近的著作《[18]》、《[19]》、《[22]-[25]》中进行了深入的研究。例如。在[221]中,作者实现了一个运动触发的低功耗图像传感器,其中一个运动检测(MD处理器在次采样帧上执行MD,以使连续的低功耗操作。只有当运动被检测到,一个完整的帧将被捕获并发送给主机。在[24]中,提出了一种超低功耗永不关闭的语音特征提取器,实现了模拟域特征提取。在[231]中,一个类似haar的滤波器使用开关电容阵列来执行传感器内的始终on人脸检测。这些近传感器处理器只通过模拟信号处理来转换有意义的数据和分析结果,而不是在计算前将所有原始数据转换为数字域。因此,与传统的传感器-处理器系统相比,这种技术在提高能源效率方面具有更大的潜力。这一优势促使我们提出NS-CIM架构,以更低的转换开销实现更灵活的物联网应用。图2给出了一个使用所提出的NS-CIM架构的人脸识别系统的示例。所提出的设计在这样的系统中扮演着始终在线的传感器节点的角色,因为它消耗的电力很少。传感器节点连续接收信号,利用CIM阵列中的神经网络判断人脸是否出现在视场中。当人脸出现时,NS-CIM节点可以触发大规模系统,并将提取的特征发送到执行更高级别的处理和分类任务。当关键事件(例如,人脸出现)发生的频率较低时,这种类型的系统更节能。

这一工作集中在两个主要的限制存在于以前的作品。(1)以往的工作依赖于数据转换器和数字/模拟存储器作为传感器和处理块之间的接口,这是现有工作的瓶颈。(2)以往基于电荷的作品[16]、[26]、[27]由于计算量信噪比取决于供电电压和电容面积。在本文中,我们采用了电流模式(CM)电路来解决数据转换的开销,增强了体系结构设计的可扩展性。,在过程缩小方面受到限制。
在这里插入图片描述

C.电流模(CM)计算

电流模式(CM)电路使用支路电流而不是节点电压来表示信息。图3给出了电压模式和电流模式的APS电路[21]的比较。不同之处在于连接到光电二极管(PD)的晶体管工作在不同的区域。在电压型APS。晶体管作为源跟随器工作,将电压差施加到输出线路上。在电流模式ap中,晶体管工作在线性区域,将电压信号转换为电流信号。然后,电流通过电流输送器输送到ap外部。随着技术节点的缩小,这种差异非常有意义。供电电压的大幅降低严重影响了高级CMOS技术节点的电压模式和电荷域计算的硬件性能,主要体现在动态范围(DR)和响应速度。同时,在电荷域CIM系统中,经常使用开关电容进行积累运算,需要精确匹配和较大的电容面积才能保证足够的计算信噪比。CM计算[28]有望解决这些问题。首先,CM数据表示将DR与电源电压解耦,这意味着较低的电源电压对DR的影响相对于电压模式和电荷域电路不那么严重。其次,CM电路中的累积操作远没有开关电容蓄电池复杂,因为根据基尔霍夫电流定律,只需通过导线结就可以简单地增加电流。这种差异对于积累操作占所有操作的最重要部分的二元权重网络更有意义。

然而,模拟计算经常受到电路缺陷的影响,如通道长度调制(CLM)效应、晶体管失配和工艺变化。在本文中,我们提出了一些低成本的反馈电路设计,以减少CM图像传感器和CIM宏中的CLM效应。在我们之前的工作[291]中,我们已经证明对权值进行再训练可以有效地减轻模拟缺陷导致的精度下降。在此基础上,我们进一步研究了失配和过程变化误差,并建立了NS-CIM体系结构的行为级模型,对误差弹性模型进行了分析和优化。

NS-CIM架构综述

图4(a)显示了NS-CIM体系结构的概述。总体架构由一个电流模式的有源像素传感器(CM-APS)、一个内存计算宏(CIM)组成。一个数字数据流控制器,以及几个后处理单元和外设。总的来说,NS-CIM的操作流程如下。首先,图像传感器将光强转换为电流信号。然后,当前的传送带(CCs)将这些信号传递到CIM宏中,在那里进行MAC计算。在MAC计算过程中,6T+3T开关电流SRAM (SiRAM)单元中的镜像晶体管产生像素电流的副本。这些电流根据SRAM中存储的重量在BL或BLB上累积。然后,电流模式神经元(CM-Neuron)细胞按列进行微分电流积分运算,将部分和添加到隐含层输出中。最后,输出层电路将隐含层输出相加得到最终输出。分类结果通过比较输出电流的大小与比较器或赢家通吃(WTA)电路得到。

图4(b)说明了如何将一个3层的多层感知器(MLP)映射到NS-CIM架构上。假设CM-APS有m xn个像素,最大扫描速率为m像素/周期,为了匹配输入模式,CIM宏在每个通道中应该分别有m行和n列。该通道是指存储权重的SRAM细胞的间距,这些权重将输入节点连接到一个隐藏的神经元。CIM有k个并联通道。这意味着MLP模型可以容纳k个隐藏层神经元。在每个像素扫描周期中,每个CIM通道中的一列被CIM核心和cm神经元之间的MUX激活。这样,隐层神经元的k部分和可以并行计算。如图4所示。然后cm神经元将部分和积累起来。由于CM-APS需要n个周期才能完成对所有像素的扫描,所以部分和在cm -神经元中是一个周期一个周期地积累的。直到在t(n)帧被完全扫描,隐藏层的最终输出才在cm -神经元中就绪。在下一个周期t(n +1)内,cm -神经元的输出电流经过ReLU单元和输出层电路。经过较短的设置时间,比较器在输出层电路可以产生分类结果。

在这里插入图片描述
有三个特点使提议的建筑不同于以前的作品。(1)[9],[10],[27]在很多以前的作品中都使用bnn。由于NS-CIM使用该体系结构以模拟信号表示输入和激活,支持二进制权网络(BWNs),提高了应用的准确性。(2) NS-CIM利用了电流模式计算的优势,使得动态功率更依赖于输入输出值的大小。因此,像素值为零的CIM行不会消耗动态功率,因为没有产生电流。此外,CIM的列在累积操作时从cm -神经元中分离出来,不会耗散动态功率。这一特性使NS-CIM更节能,特别是在少输入应用中。(3) NS-CIM体系结构能够在多个维度上扩展,这意味着所提出的体系结构能够支持不同的模型配置和不同的性能权衡。下一节将介绍详细的电路设计,并描述如何实现这些新特性。

电路设计
A.CM-APS: 电流模游园像素传感器

在APS中,光强被转换为光电二极管上的电势,可以作为电压或电流信号读出。如图3所示,APS的工作方式取决于读出电路的设计。对于电压模式ap,电压通过源跟踪器读出。相反,在CM-APS的读出晶体管是偏置在线性区域的输出电流,这是成比例的光电二极管电压(或光强)。在本文中,我们设计了一个CM-APS电路作为NS-CIM体系结构的输入,因为目前的域计算提供了更直接的片上代数实现,如加减和缩放[21]。这一优势对附加质心算法和模型的体系结构特别有利,如BWNs和BNNs。

CM-APS传感器电路设计如图5所示。本设计采用了简单的3T像素结构[30]。读出晶体管M1在线性区域有偏置。因此,M1的漏极电流可以表示为(1)中已知的形式:
I D = 1 2 μ n C o x W L [ 2 ( V G S − V T H ) V D S − V D S 2 ] I_{D}=\frac{1}{2} \mu _{n}C_{ox}\frac{W}{L}[2(V_{GS}-V_{TH})V_{DS}-V^{2}_{DS}] ID​=21​μn​Cox​LW​[2(VGS​−VTH​)VDS​−VDS2​]

(1)中,VGs为栅源电压,i.c,积分后的光电二极管电压,如图5所示。Vps为漏源极电压,为晶体管M1的长径比。由(1)可得MI的跨导为(2):
在这里插入图片描述
由(2)可以看出,Vps的稳定性对输出的线性度至关重要。为了得到稳定的M1 Vps,我们使用电流输送器(CC)[31]电路来稳定输出线电压(Vpix out),如图5 (a)所示。晶体管M6向电流镜引入负反馈。输入阻抗 Z i n = g m 4 g m 6 r o 6 Z_{in} = \frac{g_{m4}}{g_{m6}r_{o6}} Zin​=gm6​ro6​gm4​​,是基本电流镜 g m 6 r o 6 g_{m6}r_{o6} gm6​ro6​的 1 4 \frac{1}{4} 41​。这样,如果晶体管M6提供足够的增益来实现接近零的输入阻抗, V p i x _ o u t V_{pix \_out} Vpix_out​就可以稳定,从而提高像素电流的线性度。如图5 ©所示中,M6的引入显著提高了输出电流在不同光强下的线性度,但代价是lbias带来的偏置功率。根据TSMC 65 nm工艺的模拟结果,最大非线性误差仅为1.8%。
在这里插入图片描述
在这里插入图片描述
在传统的CM-APS工作[21]中,CC用于镜像像素电流,同时输出电压设置为一定的参考电压。在本文中,CC将像素电流传递给一行SiRAM单元进行n内存计算,同时CC的输入电压是稳定的。然而,在传感器和CIM宏之间传输如此多的输出电流是很困难的。因此,我们将镜像晶体管放入SRAM单元中,在每个单元中产生精确的输出电流。如图5 (a)所示,CC将像素电流转换为电压信号VpL。使用一个取样和保持开关电容(Cs/H)来存储电压一段时间。然后,模拟缓冲区通过驱动线(DL)将Vpr广播到SiRAM单元。通过这种方式,每个SiRAM电池中的镜像晶体管可以产生CC输出电流的副本。这种结构的一个关键缺陷是这些镜像晶体管的不匹配,这将导致MAC操作过程中的增益误差。我们将在第五节讨论这个问题的解决办法。

B.SiRAM: 6T+8T 开关电流SRAM

6T+3T SiRAM电池电路设计及CIM通道结构如图6所示。SiRAM电池由一个6T SRAM电池和一个3T开关电流结构组成,3T开关电流结构由两个NMOS开关和一个镜像晶体管组成。如图6所示,开关由6T细胞的Q和O控制。分别连接电流镜像晶体管到BL或BLB。如简化模型所示,每个SiRAM单元中的镜像晶体管作为一个小电流源,由驱动线电压Vpr控制,从而为BL或BLB提供一个像素电流的副本。考虑CLM效应,饱和区输出电流由式(3)给出:
在这里插入图片描述
在这里插入图片描述
λ V B L B L B \lambda V_{\frac{BL}{BLB}} λVBLBBL​​项是CLM效应引起的输入相关增益误差,其中系数A为1/L。增加通道长度L是降低CLM效应的一个明显选择。然而,我们选择稳定 V B L B L B V_{\frac{BL}{BLB}} VBLBBL​​,以避免向SiRAM单元引入大面积开销。这是通过降低cm -神经元电路的输入阻抗来实现的,这将在下一节中介绍。假设输入层大小为m xn, BWN全连接层的MAC操作用(4)表示。
在这里插入图片描述
我们可以从(5)中观察到,一列SiRAM可以产生一个隐藏神经元的部分和,用位线电流的差值表示。通过在一个CIM通道中按列累积这些部分总和。我们可以获得一个完全隐藏的神经元输出。

C.CM神经元:电流模神经元细胞
图7给出了[32]的基本原理图和电流模式神经元(CM-Neuron)细胞的时序图。该单元是差分电流积分器,用于累积BL和BLB电流的差值。累积的结果保存在cm -神经元中,作为隐层输出。cm -神经元电路一般由电流反馈回路(MI和M2)和电流镜像输出结构(M2和M3)组成。积分运算是通过将反馈电流(等于上一个周期的输出电流)加到当前周期的输入电流来实现的。如图所示在时序图中,所提议的积分器允许若干运算,包括加、减和差分累加。本文主要利用CM-Neuron在CIM列的BL/BLB上积累差动电流,获取隐含层输出。这个过程由三个步骤完成:复位、- ibb和+IBL。
在这里插入图片描述
(i)复位步进时,接通p1、p2开关,断开s1、s2开关,此时MI、M2门极电压相等。因此,流向MI和M2的电流等于j。由于M2和M3构成电流镜,输出电流可由式(6)计算。
(ii) In-IpLB步骤,S1和p1打开,s2和p2关闭,M2的栅极电压和漏极电流保持稳定。因此,通过晶体管MI的电流可由(7)得到。
(iii) 在+IpL步骤中,s1和p1关闭,s2和p2打开。MI在最后一步中持有的电流反馈到电流回路。因此,我们可以用(8)计算M2漏极电流。由于M3反映M2电流,所以输出电流可以用(9)表示
在这里插入图片描述
通过重复步骤(ii)和(ii),将每个CIM柱的差动电流反复累积到cm -神经元细胞中。经过n次迭代,隐神经元输出完全计算为式(10)。
在这里插入图片描述
图8为基本cm -神经元电路的瞬态仿真结果。在本仿真中,将差分输入对iblb - iblb设置为脉冲值为±0.5 uA的周期信号。±integ操作在复位后的50ns开始,持续20个周期。可以观察到,在复位阶段,输出电流保持为0。然后,在每个积分周期后,差分输入值被加到输出。因此,通过顺序选择CIM列通过MUX,可以计算隐藏神经元的值并保存在cm -神经元电路中。值得注意的是,电容C1/C2的实际值在电流积分方面没有意义,因为它们只考虑在P1/P2关断状态下保持门电压M1/M2的情况。因此,我们在这个电路中使用MOS电容器,因为他们提供了更好的面积效率比金属绝缘体金属(MIM)和金属氧化物金属(MOM)电容器。

然而,cm -神经元电路的基本方案存在缺陷,这顺便影响了CIM阵列的计算精度。如图7(a)所示,输入节点X由两个输入分支BL和BLB共享。由于X根据P1和P2开关的状态在C1和C2之间切换,所以节点X的电压在每个时钟边缘都可能出现一跳。这一跳导致BL和BLB的电压不稳定。由式(3)可知,此电压跳变将输入相关的噪声引入位线电流。因此,本文提出了一种改进的cm神经元电路来解决这一问题。

图9显示了改进后的cm神经元电路的完整版本。模拟电流偏置Ibias被所有cm神经元细胞所镜像,以提供电流源2。通过这种方式,所有cm神经元可以共享一种电流偏置。与基本节点的主要区别在于输入节点的配置。如图9所示,输入节点X和Y分离,共栅晶体管M3/M4放置在输入节点和电容C1/C2的上极板之间。这些晶体管构成提供较低输入阻抗的级联结构。M3/M5和M4/M6形成深负反馈回路,1自动稳定节点X和Y的电压
在这里插入图片描述
在这里插入图片描述
图10的仿真结果证明了电路电平改进的有效性。在基本设计中,由于MI/M2栅极电压的差异,输入节点的摆幅较大。在改进的版本中,在状态切换时只能观察到小的峰值,并且在积分操作期间输入电压保持不变。因此,累积操作时CIM列的位线电压保持相等,抑制了中CLM效应SiRAM细胞。

D. 输出层

输出层电路将隐含层的值传递到最终输出,从而得到分类结果。输出层电路设计如图11(a)所示。它由一个用于非线性转换的ReLU工作台、用于存储输出层权重的CIM列和一个用于生成决策的电流比较器组成。一个输出使能信号(OEN)被用来使能输出层的计算。这个电路连接到cm神经元细胞。如第三节所述,在扫描完一帧图像后,同时完成对cm -神经元细胞的积分操作。然后,打开OEN来触发输出层的计算。在很短的稳定时间内,分类结果将作为二进制数字在输出缓冲区读取。

ReLU函数可以通过一个简单的NMOS电流镜像来实现,因为hidden-laver值的符号取决于当前的方向。电流从cm神经元流向ReLU电路,可以激活晶体管产生镜像电流。否则,电流镜像晶体管将落入截止区域,在那里输出电流约为零。隐藏到输出阶段的MAC操作与输入到隐藏阶段的MAC操作相同,只是这一阶段没有时域积分操作。这个阶段使用的CIM列数等于输出神经元数。分类决策可以通过找到电流输出最显著的列来做出。对于二值分类模型,这个过程比较简单,因为结果可以由两个SiRAM列的差分电流方向决定,如(11)所示。
在这里插入图片描述
如图11(a)所示,CIM列的位线通过使能开关连接到两个输出网(和12)。然后,使用电流模式减法器和符号(-)电路比较I和12,产生一个表示分类结果的二进制输出。图11(b)中的仿真结果是一个全系统计算实例。模拟的CIM宏被简化为(32,4,2),带有2×2输出层,以使结果更加直观。从重置开始,cm -神经元需要4个时钟周期来计算隐层输出。然后打开OEN,激活输出层电路,根据符号1-12产生一个决策。输出层在连续时域内操作。因此,决定几乎是在OEN上升边缘到来的同时做出的。对于多类应用,电流模式WTA电路[33],[34]可以用来寻找输出的赢家。

硬件与算法协同
A.电路缺陷的影响

模拟缺陷是影响混合信号体系结构计算质量的一个主要因素。这些缺陷一般可以分为两类:随机噪声和静态误差。随机噪声,例如热噪声,可以通过在等效无噪声网络中加入输入参考噪声来分析。不同随机噪声源的累积通常被认为是加性高斯白噪声(AWGN)。另一方面,静态误差在时间上是静态的,但在空间上是变化的。因此,产出质量与投入分布有很强的相关性,使得整体行为复杂化。

在NS-CIM中,失配扮演着关键角色,作为“静态错误”的一部分,因为电流镜像结构经常被使用。VTH和W/L的不匹配在CM-APS的输出中引入了固定模式噪声(FPN),并在使用电流镜的构件之间的连接点造成增益误差。众所周知,失配与晶体管的面积密切相关。因此,增益误差在不同的构件之间具有不同的分布参数。图12为增益误差的仿真结果。每个统计结果都是在Cadence上运行的2000迭代蒙特卡罗分析得到的。这些分布参数的差异主要来自于不同的晶体管面积。然而,一些其他的模拟缺陷,如时钟馈通,也导致了这种多样性。以CC电路中的开关电容为例,时钟馈通在开关关闭后在驱动线路上引起电压下降,进一步导致SiRAM单元内镜像电流下降。因此,CC和SiRAM之间的增益误差均值小于1,如图12所示。
在这里插入图片描述
这些增益误差对输入/输出质量的影响是NS-CIM体系结构的一个关键问题。如图13所示,考虑到前两个模块的增益误差,峰值信噪比(PSNR)的等效输入质量下降到25 dB。这种降级可能直接导致在实际硬件实现中的故障分类。然而,在我们之前的工作[29]中,我们已经在理论上证明了静态误差可以通过使用现场硬件模型微调网络参数来减轻。在微调的帮助下,增益误差对输出精度的影响可以最小化。在本文中,我们利用这种固有的误差容错来允许更激进的面积缩小。为了评估和校准不匹配效应,我们建立了NS-CIM的行为层模型,以实现硬件和算法的协同设计。

B.行为层模型
如图14所示,NS-CIM体系结构的行为级模型由一个数据流图组成,该数据流图准确地模拟了图4所示的体系结构。与[39]中的方法类似,我们也在模型中加入电路缺陷,以实现硬件感知的训练机制。有限的输入精度和两个错误注入模型,其中包括随机噪声和静态增益误差。有四种不同的增益误差,即G1-G4,表示图12中不同的分布参数。行为级模型是基于Theano (v1.0.3)、Lasagne (v0.2)和Python (v3.7)开发的。所有的软件实验都运行在NVIDIA 1080Ti GPU上。基于行为层模型的微调方法主要包括以下五个步骤:

(1)使用高斯随机发生器对静态误差值进行初始化。‘I’he参数来自蒙特卡罗模拟的每个建筑块。
(2)在BWN模型中插入包含步骤(1)中产生的误差值的高斯随机噪声和增益误差层,如图14所示。
(3)运行误差感知模型的前向路径,计算损失函数。
(4)计算梯度,更新权重。
(5)重复步骤(3)和(4)若干次,直到精度损失恢复。
在这里插入图片描述

表I给出了用于测试协同设计方法和芯片的BWNs的结构。在本节中,我们使用了两个大规模的人脸数据集,即扩展的耶鲁人脸数据集(Yale- b +)[35]和CelebA属性数据集(CelebA)[36],来证明这种协同设计方法的效率。对于Yale-B+中的每个受试者,我们组成一个包含952个样本的训练集和一个包含200个样本的测试集。我们没有分开

在这里插入图片描述
在这里插入图片描述
验证设置为Yale-B+,因为数据量相当有限。对于CelebA中的每个属性,我们使用50000个样本作为训练集,10000个样本作为测试集,10000个样本作为验证集。使用网格搜索方法对验证集进行超参数优化。批大小取集合内(32,64,128,256,512},学习率取集合内{0.001,0.005,0.01}。我们报告与最佳验证精度相关的测试精度。我们从CelebA的40个属性中选取了8个具有明确评价标准的属性,其中准确度最高的4个属性(男性、秃头、戴帽子和刘海)和准确度最低的4个属性(无胡子、髭须双下巴和弓形眉)。使用OpenCV提供的resize方法,将所有输入图像的大小调整为32×32灰度图像。我们不使用任何数据增强或无监督的预培训。正如[14]所建议的,在我们所有的实验中,都是使用ADAM学习规则来优化平方铰链损耗。在整个训练和微调过程中,学习速率保持不变。我们在网络中不使用任何批处理规范化或局部响应规范化。最大训练纪元数设置为250,足够长的时间进行训练损失的收敛。在下面的章节中,我们将纯软件实现结果作为基线。

C.微调性能

模内不匹配误差会导致精度下降,而微调程序可以用来恢复准确性。表II和表III展示了行为水平模型在两个数据集上的训练和测试结果。用于Yale-B+数据集上的人脸识别。错配误差导致的准确率、精密度和召回率分别下降2.0%、2.7%和2.9%。在使用行为级模型对二值权值进行微调后,最坏情况下的损失为0.8%。0.6%和1.5%。此外,可以看到,对于受试者1-7,微调后的准确率甚至比基线还要高。对于更复杂的数据集CelebA。在调整权重之前,最坏情况的损失为基线5.0%,3.1%和7.0%。经过微调后,它变成了1.7%、2.8%和2.3%,这意味着在应用程序质量和模型稳健性方面有了显著的提高。结果表明,该方法可以有效地恢复单个模具因失配误差引起的质量退化。

模间工艺变化,导致芯片之间的电气参数变化,也是混合信号硬件设计的关键。为了模拟这些变化,我们生成不同的增益误差模式来运行测试和对行为级模型进行微调。图15和16展示了在Yale-B+和CelebA数据集上使用行为水平模型的评价结果。由于工艺变化是影响产量的主要因素之一,我们在Yale-B+数据集上模拟比较了我们设计的产量。与基线性能相比,我们将精确度损失的标准设为< 1%。对于Yale-B+中的每个受试者,我们使用不同的增益误差模式进行50次测试,以模拟方差。如图15所示,对权重进行微调可以显著提高产量。耶鲁- b +的例子实现1.4X-3.7X更高的产量与微调程序。在CelebA数据集上评估模型的鲁棒性,结果如图16所示的箱形图所示。如图所示,失配误差会导致严重的精度损失,而这些变化会导致性能在很大范围内传播。微调过程有助于回收精度,减少精度变化。此外,精确度更接近基线,在某些情况下甚至更好。定量结果显示错误率降低4.5% ~ 15.8%,标准差降低2.5 x ~ 5.8 x。

为了解释微调如何帮助BWN适应硬件错误,我们给出了损耗和错误率曲线
在这里插入图片描述
在这里插入图片描述
图17中的训练时间。损失曲线来自训练集,错误率曲线来自前100个时期的测试集,BWN是在一个基础模型上训练的,这个基础模型是一个纯软件模型,没有任何硬件信息。在第100时代的末期。该模型收敛良好,得到了基线错误率。从当前状态开始,我们将二进制权重加载到硬件行为级模型。此时由于增益误差的注入,损耗率和错误率都急剧增加,出现如图所示的峰值。经过100个时代的微调。损耗函数收敛,抑制了硬件引入的误差。图17中的表格显示了微调过程前后二值权值的变化情况。在所有的8208个权值中,只有21.7%的权值经过微调后被逆转,这些逆转的权值使得网络几乎吸收了所有由于硬件误差造成的精度损失。这些结果表明,神经网络固有的容错性可以被用来缓和NS-CIM体系结构中的硬件缺陷。
在这里插入图片描述
在这里插入图片描述

实施结果

本工作采用台积电65nm CMOS通用工艺,实现了2k位片上SiRAM的测试芯片。模具照片如图18所示。一些基本特性在表四中给出。芯片的架构如图4所示。然而,为了以较低的复杂性演示这个概念,我们只在这个芯片中实现了CC和CIM块,它们被认为是所提议的体系结构的基本部分。我们已经在之前的作品[25]中演示了带有算法感知模拟输出的CMOS图像传感器,[40]。因此,CM-APS还没有在该芯片中实现,我们使用5位dac产生模拟电流作为传感器输出的仿真。表IV和V中的性能结果考虑了CM-APS的仿真结果。
在这里插入图片描述
在所制造的芯片中,一个2 kb内存被布置成一个32行64列的数组。有32个CCs一个接一个地连接到SiRAM行。柱子被分成16个平行的通道,每个通道有4个柱子。每个通道共用一个厘米神经元,因此芯片上有16个厘米神经元。这个32x4x16 CIM宏(对应图4中的mxnx k)最多支持32×4输入节点和16个隐藏层神经元。在每个时钟周期中,32个模拟输入将32×16矩阵乘以1×16的部分和向量。cm神经元细胞在4个周期内完成部分累加。在该芯片中,CIM阵列的吞吐量高达o 32 x 16 = 512 bit/cycle,比传统SRAM读出带宽(最大I/ o配置72 ~ 144 bit/cycle)高3.5X-7.1X。见表四。芯片在1V电源下工作在100MHz时钟率下,核心功耗为845.5 uW。因此,对于二进制权重模拟输入MAC操作,est芯片达到51.2 GOPS的吞吐量和60.6 TOPS/W的能量效率。考虑到集成CM-APS的全系统,能源效率仍高达58.0 TOPS/W。

图19给出了原型IC的功率击穿结果和几个放大估计。我们通过假设每个构建块的功耗是恒定的来执行升级估计。CIM尺寸(m、n、k)的不同扩展导致使用不同数量的构建块。这反过来导致了不同的总功耗。CIM宏观的整体功耗可以计算PcIM = mnkPsiRAM + mPcc + nPмUx + kPNuron。cm神经元细胞是能量消耗的主要贡献者,占总能量的60%以上。这是因为cm神经元细胞持续燃烧偏置功率,以提供足够的输入电流范围。因此,静态功率在电流模式架构的功耗中占主导地位。向上扩展的估计表明,增加m可以提供显著的收益,因为吞吐量可以在很小的功率下得到改善,在增加n时,由于吞吐量一致,会导致效率降低。k的增大对总功率的影响最大,因为k增加了cm神经元细胞的数量。
在这里插入图片描述
在这里插入图片描述
图20为捕获波形及原型CIM芯片精度评估结果。这些结果是通过测量BL电流产生的,并对所有CIM行设置恒定的输入值(2、4和6),并逐步调整CIM列中的+1数量。采用积分非线性(INL)方法对CIM的线性度进行了评价。总体INL小于1.4 LSB,如图所示。捕获信号的信噪比(SNR)为36 dB。
在这里插入图片描述
图21给出了使用表i中的基准数据集和BWNs的片上评估结果。与[9]中的方法类似,我们也使用制作的CIM宏计算了最后两个全连接(FC)层。使用单片机(STM32)将数据加载到芯片中,并接收芯片的输出。结果表明,所制备芯片的输出质量基本可以接受,片内测试结果与行为层模型预测的结果基本一致。CelebA数据集的精度下降主要来自对原始数据的过度压缩,正如我们在第五节中提到的。这个问题可以通过扩大CIM宏来解决,以支持更大的网络和更高的分辨率输入。

表V给出了与先前关于基于sram的CIM体系结构的研究的比较。原型IC工作在51.2GOPS(一个OP一个5-b x 1-b MAC)消耗845.5 W功率。这相当于60.6 TOPS/W的能源效率。将CM-APS考虑在内,能源效率仍高达58.0 TOPS/W。如表所示,CIM宏比之前的工作效率提高了1.5 x 29.7倍。这种效率效益主要来自数据接口和WL/BL外围设备的减少。一方面,传统的CIM体系结构需要dac或TDCs来驱动WLs,这消耗了大量的电力/能源预算。我们利用近传感器处理范式来解决这一局限性。我们在传统的6T SRAM单元中增加了一个镜像晶体管,因此在CIM阵列中实现了传感器输出的直接复制。另一方面,传统的基于电荷的CIM设计[6]、[7]、[9]可能存在位翻转错误,因为在计算过程中WL和BL都处于活动状态。因此,为了补偿或避免这种错误,这些工作人员做了很多努力,提出了附加电路,从而导致硬件成本的增加。在这项工作中,我们在每个SiRAM单元内实现电流开关,从而在计算时间内将WLs设为较低。此外,当前开关的状态由6T细胞保持静态后,重量得到负载。因此,不需要增加额外的动态功率。与[91]相比,在片上计算FC层时,MNIST数据集的分类错误率降低了2.1%。尽管与数字实现[8]相比,该工作的灵活性有限,但电力和能源效率的提高证明了该工作对于能源预算严格受限的许多场景的适用性。

结论
在本文中,我们为物联网视觉应用提出了一种节能的NS-CIM体系结构。该体系结构利用了近传感器处理方案和内存计算模式,显著减少了数据转换和数据移动。在电路层面,我们利用电流模式设计方法来实现稳健和高效的接口和计算单元。此外,为了处理模拟的缺陷,如不匹配和过程变化,我们提出了一种协同设计的方法,以减轻错误和进一步减少硬件消耗与可忽略的精度损失。TSMC 65纳米技术的实施结果表明,与现有的需要持续感知的物联网应用相比,所提议的架构实现了1.5 x29.7倍的能源效率,我们的架构展示了一个有前途的解决方案,在有限的电力和能源预算下将智能推向感官边缘。

标签:输出,cm,CIM,电路,内存,NS,电流,神经元
来源: https://blog.csdn.net/BerryNard/article/details/112180606