谈谈模拟存内计算!
未来几代计算系统需要继续提高处理速度和能源效率,以满足在严格的环境约束下不断增长的工作负载要求,因此,特定领域的硬件加速器和平台已经得到广泛使用。除了存储器和处理元件分离的传统方法外,一种称为内存内计算(IMC:In-Memory-Computing)的新兴方法正在被积极研究中。
IMC将内存和处理放在同一位置,减少了数据传输能量,从而有望提高能源效率。与数字IMC不同,模拟IMC在模拟域中执行乘法和加法等运算。它可能会使用新型器件,这些器件是使用具有更高可扩展性的新材料制造的。尽管进行了积极的研究,但关于它们在常见计算任务中的性能的知识依然有限。
在本文中,我们分析了模拟IMC器件在两个成像问题上的性能:图像去噪和语义分割。在这两种情况下,我们都使用了基于深度学习的算法,展示了应用程序之间的性能如何变化,并讨论了内部和外部噪声源的影响。我们对其性能进行分析,并了解特定应用对所需性能水平的要求,有助于为模拟IMC器件选择合适的应用,从而进一步作为未来模拟IMC器件制造商提供参考。
1
介绍
计算效率对于处理包括音频、图像和视频在内的高质量流数据的所有平台都很重要。例如,自动驾驶汽车应该能够实时处理大量数据以确保安全,例如行人检测。能源消耗是当今社会的另一个关键方面,部分原因是全球物联网设备数量的增长。在受限设备上运行的应用,如智能手机和平板电脑,可能需要长曝光相机拍摄和后续图像处理,这可能需要非常高的能耗。另一方面,通过降低输入数据质量来降低需求可能会对处理输入数据的算法的性能产生负面影响。
理想情况下,我们希望在获得相同或更高性能的同时提高能源效率。行业内常见的方案是使用特定领域的硬件加速器和平台,通过专业化减少每次执行所消耗的能源(即,他们用编程灵活性换取能源效率)。传统方法使用分离的存储器和处理元件,需要数据传输,这可能会导致显著的延迟和能量消耗。进一步的专业化促使了一种称为内存计算(IMC)的新兴方法的诞生,该方法将内存和处理元件放在同一位置,从而减少了数据传输,并有望提高能源效率。虽然IMC架构可以是全数字的,但也存在其他变体,例如模拟IMC(AIMC),它在模拟域中执行乘法和加法等常见操作。AIMC可以使用新型器件,这些器件是使用比传统器件(例如闪存单元)具有更高可扩展性的新材料制造的。这种新器件将信息存储为其电导状态,并被称为忆阻器件,或简称为忆阻器。神经网络层包括矩阵乘法序列,其中每一层都可以表示为核权重的矩阵,并且忆阻器可以存储它们。图1显示了如何将忆阻器排列成密集阵列,并在适当的位置执行与神经网络相关的矩阵运算。基于忆阻器的AIMC能够提供:(i)高片上存储器密度,足以完全在片上存储更大的网络,从而消除昂贵的片外传输,以及(ii)非易失性(即在断电后保持状态的能力),这降低了静态功率。这使得AIMC在基于深度学习的应用中特别有前景,因此它可以在未来的图像和视频处理中发挥重要作用。然而,忆阻器仍然是一项新兴技术。
图1 神经网络权重被映射到模拟硬件上。在该示例中,权重W和输入向量x分别被直接映射到电导值G和电压幅度V。输出矢量编码在每个阵列的列上的电流中,并由欧姆定律和基尔霍夫定律确定。
电流忆阻器的性能受到各种模拟缺陷的影响,例如器件间的变化、电导变化、波动和漂移,统称为非理想性。因此,它们也会影响AIMC架构上运行的算法的准确性,例如,通过降低卷积神经网络(CNN)识别给定图像中对象的能力,而不是在数字域中测量的准确性。此外,低质量的输入数据,如噪声图像,外部噪声源与内部忆阻器特定的非理想性相结合,对这些应用的性能有特殊的影响。因此,结合输入数据分析哪些参数影响忆阻器特性是很重要的。通过这种方式,我们可以全面了解特定忆阻器的算法性能,并了解过渡到AIMC架构时出现的基本权衡。
该领域先前的工作包括对关键计算单元(如矩阵向量乘法)的忆阻器非理想性的性能研究。基于深度学习的模型,例如ResNet,也已被研究。然而,这些工作并没有从最终用户的角度分析性能。据我们所知,到目前为止,既没有讨论向AIMC架构的过渡将如何影响算法的工作,也没有研究哪种类型的算法更有可能表现良好以及为什么表现良好。此外,还缺乏对输入数据质量和忆阻器非理想性的综合影响的整体看法。在本文中,我们考虑一种特定的忆阻器类型。我们的主要贡献是:
从最终用户的角度研究忆阻器的非理想性对两种应用的影响:语义分割和去噪,后者使用浅层自动编码器,前者使用最先进的网络(Mask R-CNN),
对外部噪声导致输入数据质量下降的影响进行分析,
讨论AIMC架构实现的未来可能性以及什么类型的应用更适合他们。
2
相关工作
基于忆阻器的AIMC系统可以在广泛的图像和视频处理应用中用作深度学习加速器。忆阻器的非理想性已经得到了积极的研究。Sebastian等人对AIMC器件的各种应用进行了更广泛的综述,包括图像滤波和压缩。Zhang等人加速了用于视觉分类的神经网络(CIFAR-10),尽管增加了忆阻器电导方差,但仍能保持分类精度。类似地,Joshi等人研究了CNN训练对忆阻器非理想性的解释。他们在数字域中训练ResNet类型的CNN,并将权重转移到忆阻器。如果没有额外的工作,精度会下降;然而,他们提出了一种方法,该方法将噪声与电导噪声成比例地注入权重,以补偿精度损失。因此,他们设法获得了可接受的分类准确度(例如,CIFAR-10的准确度为93.7%)。除了基于忆阻器的非理想性改变训练过程外,一些工作还优化了数字域中预先训练的权重到忆阻器上的转换,以保持尽可能好的性能。由于AIMC架构适用于所有类型的矩阵向量乘法,因此它们的使用不限于基于深度学习的算法。在一个基于AIMC压缩传感的图像恢复应用中进行了研究。在这种应用中,与在许多其他应用中一样,电导方差降低了整体精度;然而,结果表明,由于忆阻器的非理想性,精度损失被限制在许多应用中可以接受的水平。这表明了了解忆阻器功能以相应地选择应用的重要性。Dazzi等人考虑AIMC支持的架构选择,并提出了一种为图像分类找到最佳映射的方法。该方法将CNN内核矩阵映射到具有最佳大小的基于忆阻器的交叉阵列上,并找到基于给定网络的存储激活的最佳方式,ResNet-32提高了吞吐量。
3
内存内计算
如前所述,在传统的硬件架构中,计算单元和存储器是分开的。AIMC通过使用忆阻器来存储数据和执行计算,从而减少数据传输。矩阵乘法可以说是AIMC最适合的原始运算。由于卷积可以用矩阵向量乘法来表示,因此可以应用相同的方法来加速细胞神经网络。为了在硬件中执行这样的操作,核矩阵W被映射到电导值G,电导值G被存储在以密集阵列组织的忆阻器中。图1所示,输入矢量值x可以通过沿着交叉开关的行施加而被映射为读取电压V的幅度。根据欧姆定律和基尔霍夫电流求和定律,多累积结果由电流I表示,电流I的列测量为
其中1≤k≤m和1≤j≤n。类似地,在数字硬件上预先训练的CNN的卷积核权重可以映射到基于忆阻器的交叉阵列的电导值。在本文中,我们仅限于相变存储器(PCM)。PCM忆阻器由一种改变其相的材料组成,该材料从高导电性结晶相转变为低导电性非晶相。可逆相变是由局部熔化、淬火和再结晶引起的,再结晶是通过向器件施加电脉冲来控制的。因此,通过改变PCM材料的电导水平,可以将忆阻器编程为特定值。在本节中,我们将讨论这种忆阻器的固有噪声源。
3.1
编程噪声
在将权重W映射到目标电导值G之后,后者被编程到PCM忆阻器上。这是通过经由电编程脉冲逐渐改变忆阻器中的非晶(高电阻)区域的范围来实现的;然而,这种纳米级存储器件的编程是非线性和随机的。因此,引入了误差,产生了有噪声的编程电导值Gp。这种误差被称为编程噪声,并且已经根据经验观察到平均电导变化与其初始电导之间的负相关性。根据编程噪声的水平,器件被认为具有给定数量的有限电导状态,即与给定目标电导相对应的电导值的非重叠范围。图2显示了不同(非重叠)状态的数量如何随PCM忆阻器的编程噪声而变化。
图2 当对PCM器件进行编程时,电导率被相对于目标电导率的噪声遮蔽。在这个图中,我们模拟写入九个等距电导权重。这些在较低的噪声水平下是可区分的,例如σprog=1.0,但在较高的噪声水平上不再具有统计可微分性。
3.2
电导漂移
另一个非理想性是电导漂移,它描述了编程的电导值Gp如何随时间变化。这种漂移是由于通过非晶相的导电路径的逐渐自愈而发生的,经验上由以下关系式得出
其中,Gd(t)k,j是时间t处的漂移电导值,tc是接收到最后编程电导值Gpk,j的时间,而v是漂移指数。通常,在v和目标电导状态之间存在非线性关系。
为了补偿漂移的影响,Le Gallo等人提出了一种方案,其中将恒定电压脉冲周期性地施加到交叉阵列中的列的子集,并存储由此产生的总电流。通过将初始结果与后续读数进行比较,可以估计校正因子并将其应用于未来的读数。
3.3
读取噪声
电导值的瞬时波动是由于固有的1/f噪声和随机电报噪声而发生的。这些噪声源的影响存在于纳米级忆阻器中。读取噪声的功率谱密度通过非线性关系与读取脉冲的频率和电导值相关。
3.4
外设
AIMC系统包括模拟域和数字域,由数据转换器作为接口。因此,在应用层面分析AIMC系统的性能时,仅考虑忆阻器参数是不够的。此外,我们需要考虑数模转换器(DAC)和模数转换器(ADC)的参数,例如以位为单位的数字信号的最大分辨率,称为位分辨率。它可能会影响推理精度,并且是有代价的:更高的比特分辨率意味着更高的能量消耗,甚至可能主导整个AIMC系统的能量。因此,仅仅依靠高分辨率数据转换器可能会降低AIMC系统的市场采用机会。因此,为了目标推断精度,希望尽可能多地降低比特分辨率。
4
灵敏度分析
如前所述,PCM忆阻器的常见非理想性包括编程噪声、电导漂移和读取噪声。在本文中,我们使用IBM模拟硬件加速套件,简称aihwkit。它提供了PCM忆阻器的统计模型,该模型基于对具有一百万个忆阻器制造的交叉阵列的经验测量。因此,使用aihwkit,我们可以模拟推理,包括真实忆阻器中存在的噪声源。表1显示了基于PCM的AIMC基线配置。
表1 基于PCM的AIMC基线配置
为了表示负权重,每个交叉点使用一对忆阻器,分别用正权重和负权重编程。默认情况下,我们对DAC和ADC的设置很慷慨(12位被认为是高分辨率)。通过这种方式,我们可以确保外围组件不会误导性地影响忆阻器的性能。然而,我们也分析了对ADC位分辨率的灵敏度。对于灵敏度分析,我们改变一个参数,同时保持其他参数不变,因为我们研究了两个应用:图像去噪和语义分割。
4.1
去噪
在我们的第一个实验中,我们使用具有三个卷积层和两个线性层的基于CNN的图像去噪自动编码器作为编码块。类似地,使用两个线性层和三个去卷积层作为解码块,参见图3。请注意,aihwkit还没有实现去卷积层。因此,我们考虑一种混合模拟-数字体系结构,其中最后三层是在数字域中计算的。然而,对于未来几代硬件来说,这并非不可能的情况;网络的许多其他部分,例如非线性激活函数、偏差和批量归一化块,也在数字域中计算。
图3 我们的去噪器自动编码器架构。编码器部分由三个卷积层和两个线性层组成,而解码器部分与编码器对称,编码器具有两个线性层次和三个去卷积层次。最后一层应用sigmoid激活函数。
去噪器是有意设计成浅层的,以允许进行更为详尽的分析,而非为了与最先进的网络竞争。潜在空间只有32维,可训练参数的总数为94321,其中大多数(88384个参数)属于模拟域。自动编码器在MNIST数据集的数字域中进行训练,其中输入图像的像素被归一化为单位间隔,并被标准偏差高达σ=0.60的零均值高斯噪声遮挡。为了突出字符周围有尖锐的边缘,损失函数选择
其中LMSE是均方误差(MSE),LTV是总变化(TV)惩罚,α是权衡参数。TV惩罚作用于图像的梯度并惩罚大的偏差,从而有效地阻碍平滑边界。作为一个优化器,Adam被用于固定的学习率和权重衰减。在测试过程中,我们将图像输入噪声的标准偏差固定为σ=0.30。图4显示了实验的结果。特别是,图4(g)显示,当ADC分辨率为4位时,重建的图像看起来都是一样的。这是零映射,是模拟层权重分布的结果,参见图5。由于隐藏层大多包含接近零的权重,因此在ADC处将得到的张量量化为全零张量。当然,这不是模拟硬件本身的缺陷,而是外围设备的问题。然而,有一种简单的解决方法,因为可以利用非均匀量化。为了缓解这种潜在的质量问题,我们使用μ律量化重新进行实验,即对于给定的输入x,我们对输出进行编码
其中log表示自然对数,μ=2n−1,其中n是所需的输出位分辨率。这种非线性映射导致不均匀间隔的量化水平,分辨率增加到接近零,参见图6。
图4 PCM忆阻器中常见的不同非理想性的灵敏度分析。我们研究了不同的参数如何影响为去噪而设计的浅层自动编码器的整体性能。
图5 去噪实验中使用的自动编码器的模拟权重分布。
图6 在具有可变比特分辨率的ADC中使用的非均匀量化。
最后,我们改变图像的输入噪声,见图7。在这种情况下,模拟特性在整个实验过程中是相同的。请注意,自动编码器是在高斯噪声高达σ=0.60的图像上训练的,因此,像最后两列中看到的例子在训练过程中以前是看不见的。对于σ=0.64,数字重建能够很好地外推结果,但对于σ=0.80的较大噪声级,数字重建失败;然而,在模拟域中,当σ=0.64时,退化已经很明显了。
图7 不同输入噪声水平的数字域和模拟域图像去噪比较。
4.2
语义分割
与去噪研究相反,我们使用最先进的网络进行语义分割,即具有ResNet-50-FPN框架的Mask R-CNN。该网络由44.4M个参数组成,并且深度明显更深。在AIMC的背景下,推动Mask R-CNN分析的另一个方面是它是分层的:首先,它建立在Faster R-CNN的基础上,后者又由两个阶段组成:区域提案网络,输出候选边界框,然后是RoiPool,进行分类和边界框回归。Mask R-CNN也使用了这种两阶段方法;然而,与第二阶段并行地,产生ROI掩码。因此,如果非理想存在于管道的不同部分,那么观察它们是如何表现出来的是很有趣的。同样,我们将卷积层和线性层转换到模拟域,使用来自torchvision提供的COCO数据集的预训练权重。
我们使用城市场景输入图像来测试网络的性能,包括网络训练的几个类别,例如行人、汽车和红绿灯。与之前的实验类似,我们分析了ADC分辨率、编程噪声、读取噪声和电导漂移;参见图8。我们不包括数字输出结果,因为我们无法观察到它与模拟基线之间的显著定性差异。此外,我们在与去噪应用不同的时间尺度上模拟漂移,因为在早期阶段观察到性能退化。图8(a)显示ADC分辨率同时影响标签和掩码,而图8(b)显示编程噪声主要影响掩码。图8(c)显示读取噪声似乎根本没有太大影响,而图9显示漂移保持了掩模,但标记随着时间的推移而减弱。
图8 使用Mask R-CNN对应用于语义分割的非理想性进行灵敏度分析。第一行显示模拟基线设置的结果。绿色表示汽车、卡车和公共汽车的标签,红色表示人员,紫色交通灯、黄色摩托车和青色自行车,其余标签为黑色。
图9 电导漂移对标记分数和掩码的影响。
5
讨论
在这两个实验中,模拟基线的表现接近或与数字基线相当,见图4(c,d)和图8。这为AIMC获得市场采用提供了一定程度的可信度,尽管存在特定于设备的非理想性。使用模拟基线,我们能够在一定程度上处理有噪声的输入图像(如图7所示),这表明它们适用于包括手持设备和物联网设备在内的一系列最终用户应用。我们还注意到,这两种应用都因ADC位分辨率降低而严重受损。在去噪应用中,图像恢复在4位ADC级别完全失败(图4(g)),而对于语义分割,从6位ADC分辨率开始,掩码都是错位的(图8(a))。然而,如图6所示,这是外围组件设计的一个问题,可以通过利用非均匀量化来缓解。事实上,当应用这种量化方案时,去噪实验中的比特分辨率可以被认为是可接受的,低至3比特ADC分辨率。
此外,我们观察到编程噪声对语义分割的影响大于对去噪的影响。在图4(h–j)中,大多数数字都被准确恢复,而对于分割,掩码已经在低噪声水平下失真,如σ=2.0,见图8(b)。回顾编程噪声的基本物理,我们在图2中看到,在σ=2.0左右,电导状态是重叠的,这很可能会影响与这些电导值对应的映射核权重。从我们的结果来看,与去噪相比,分割应用更受可靠电导状态减少的影响,这可能是由于自动编码器的浅层设计不允许累积误差的传播达到与更深的Mask R-CNN网络相同的程度。
相反,读取噪声似乎对去噪有更大的影响(见图4(k–m)),而它几乎不影响语义分割的性能(图8(c))。此外,与其他噪声源相比,读取噪声对数字形状的影响更大,例如,对于图4(m)中的σ=4.0,数字2和数字3似乎开始分别类似于数字9和数字8,而数字5随着宽度的增加而失真,使其无法识别。
电导漂移对去噪问题有模糊影响,参见图4(n–r),这是其物理性质的直观表现,因为权重(或电导值)随着时间的推移而减少。然而,随着全局漂移过程的实施,情况变得更加复杂,但存在一种情况并非不可想象,即由于忆阻器的非线性行为,漂移仍在减少部分权重。对于语义分割,标签和分数通常在减少;然而,掩码并没有受到同样的影响,参见图9。这可能是因为Mask R-CNN将掩码创建和标记分离,管道的标记部分对这种特定噪声更敏感。在这两种应用中,模糊效果都不会扭曲形状(就像其他非理想情况一样),并且数字的形状也会得到保留,类似于分割任务的掩码结果,参见图8(d)。
最后,我们想强调非理想之间在表现形式上的差异。当分析Mask R-CNN时,将编程噪声增加的影响与由于电导漂移引起的退化进行比较时,可以清楚地观察到这一点。在图10中,分割掩码的退化速度快于标记(至少对于某些标签,如汽车)。这是未来应用可以利用的东西:知道验收标准,某些非理想情况可以在一定限度内容忍,使AIMC器件在商业上可行。
图10 编程噪声对标签分数和掩码的影响。
6
结论
模拟IMC是一项新兴技术,有潜力满足全球对节能产品的需求,同时加速未来几代人工智能和计算机视觉应用所使用的硬件。如果AIMC系统能够达到批量生产阶段,我们可能会在资源受限的环境中发现它们,例如在物联网设备和自动驾驶汽车中。然而,由于其模拟性质,存在固有噪声源,并将影响整体性能。在本文中,我们从最终用户的角度研究了这些噪声源在基于特定忆阻器类型的AIMC系统中的表现,即PCM忆阻器,用于两种不同的计算机视觉应用。在我们的实验中,我们分析了不同模拟特性以及相关外围组件的影响,让我们深入了解如何设计未来的硬件,以及如何选择AIMC系统可能表现良好的合适应用。
特别感谢文章作者:
Marcus Valtonen 、Ornhag Puren Guler、Dmitry Knyaginin和Mattias Borg
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第3409期内容,欢迎关注。
推荐阅读
半导体行业观察
『半导体第一垂直媒体』
实时 专业 原创 深度
识别二维码,回复下方关键词,阅读更多
晶圆|集成电路|设备|汽车芯片|存储|台积电|AI|封装
回复 投稿,看《如何成为“半导体行业观察”的一员 》
回复 搜索,还能轻松找到其他你感兴趣的文章!