训练DNN IoT应用在模拟NVM交叉开关上部署

我们正经历着计算方法和地点的转变,我们周围环境中的无数传感器改变了信息处理和消费方式。  在这种范式转变的推动下,不断壮大的TinyML社区正通过学术界和产业界双重的研究努力,广泛探索边缘计算。在这场革命的核心,我们找到了可以全天候计算传感器网络所发送信息的高效低功耗信号处理器和ML加速器。这种无处不在、不间断的计算使智能传感器能够以最有效的方式压缩所有可用的信息。

                        图1:电池供电的24/7系统正监控患者的健康状况。

 让我们考虑图1中的场景,电池供电的系统不断监控患者的健康状况。 一个低功率的ML加速器用来处理来自生物传感器网络的信息,当检测到异常时,高端处理器会被唤醒进行进一步分析,或者甚至会自动通知医生。

数据移动是在受限设备中运行高效,不间断和低功耗加速器背后的关键。 或者如何有效地在系统中的不同内存中将大量的数据输入和核权重移入或移出。 为了克服这个数据墙问题,我们提出了三种主要的潜在解决方案。

图2:Algorithm optimization techniques, Whatmough et al., ISSCC 2017. 3D architecture integration, Shulakar et al.  2017. Devices and technology comparison, Western Digital press release, 2016

首先,我们可以探索新的算法解决方案,这些算法可以利用网络中的稀疏性从降低操作数的精度或对计算kernel进行剪枝的方式入手。其次,我们可以考虑重新设计整个加速器架构,将内存移到离逻辑电路更近的地方,而逻辑电路通常是计算进行的地方。第三,我们可以利用新兴的技术和架构(例如电阻式交叉开关(Resistive Crossbar))进行内存内计算。

用交叉开关实现内存内计算(CIM)

CIM从根本上改变了数据流的存储和处理方式。 它提出了的一种新方法让计算能够在相同的存储单元中进行。 通过减少内存读写以及改善计算操作中的能量消耗,昂贵的数据移动和线性代数操作所需的能量和额外时间被大大减少。

在欧盟资助的MNEMOSENE项目中,我们探索了使用新兴的非易失性存储器(NVM)电阻性交叉开关技术的CIM如何显著节省能源并提高效率,从而加速常用计算kernel。 特别是在IJCNN 的论文“训练DNN IoT应用在模拟NVM交叉开关上部署”的文章中,我们探讨了如何有效地训练深度神经网络(DNN)来克服在NVM交叉开关中加速乘累加(MAC)操作时遇到的常见问题。

图3:使用可编程电阻器件的CIM:矢量矩阵乘法输出以电流的形式出现在位线上。 矩阵在交叉开关阵列中被编码为电导,而输入矢量则作为电压输入交叉开关。

MAC或矢量矩阵运算(可以说是ML和DSP核中最常见的运算)的加速遵循交叉开关位线上的基尔霍夫定律。 在可编程电阻器件中将输入操作数编码为电压,并将矩阵分量编码为电导,流经每个底部路径的电流可以表示为:

这意味着只需非常低的功耗,就可以完成完整的矢量矩阵运算。这个模拟计算单元的速度,高密度和低功耗的特性非常适合边缘推理。 基本计算单元NVM交叉开关加上数模转换器(DAC)和模数转换器(ADC)接口组成。 为简单起见,假设NN的每一层都可以被展开并部署在单个交叉开关中。 之后,像在NN中互连不同的层一样,我们以数字的方式互连不同的交叉开关。

图4:DNN的部署:各层被映射到数字互连的单个交叉开关来形成网络。右图展开了电阻元件中的负权重

电阻式交叉开关CIM应用面临的挑战

这种方法存在与技术不成熟相关的挑战,例如变量,温度依赖性或计算的模拟本质所固有的噪声。 但是,包含适当“噪音”元素的训练方案可以帮助我们克服这些问题。

在这项工作中,我们重点研究了与电阻式交叉开关固有架构设计相关的挑战:低精度,非一致信号范围和双极权重部署。

低精度。模拟加速器使用一组量化的模拟信号:权重值被量化为电导,输入信号被编码为量化电压,电流则根据量化隔距被数字化。

非一致动态范围。CNN中单个卷积层部署的多个滤波器意味着不同的权重矩阵被映射为相同的电导。因此,位线上累积的电流存在差异,并且ADC需要在模数转换之前进行适当的缩放。 由于交叉开关的外围器件需要微调,加速器无法为其他应用重新配置。

双极权重的部署。 当映射权重矩阵时,我们需要将正数和负数都映射到一组有限的只能为正值的电导。 为了模拟负权重,我们传统上使用第二列来计算负贡献,之后将其减去。
这种方法使交叉开关的面积以及功耗增加了一倍。

训练DNN IoT应用在模拟NVM交叉开关上部署

为了在电阻式交叉开关中优化NN的部署,同时确保可重配置性,我们提出了使用考虑到底层模拟硬件特性的量化训练算法。
这种方法在训练DNN时保证了层与层之间一致的动态范围,从而实现了可重新配置的部署。


图5:上图:传统硬件实现,逐层/逐滤波器精调的外围设备。 下图:提出方案,共享外围设备节以省面积。

通过确保动态范围一致性,我们能够复用并共享面积和能耗都十分昂贵的DAC / ADC外设。

为了在电路上实现均匀的动态范围,我们确保DNN的激活和权重都在(量化的)一致范围内。
为此,我们更改了DNN的训练图,在权重和激活的前期引入了量化单元。这个方案广泛用于量化感知训练中,但独特之处在于它没有定义每层甚至每个过滤器的量化变量范围,而是全局地约束它们:输入(X)/输出(Y)的激活,权重(W)和偏移量(B)在NN中的每个隐藏层共享。

给定预设精度以及边界限制(x0,x1等)计算X,Y,W和B的值。计算是根据隐藏层的特性通过全局变量控制操作进行的。

为了帮助训练阶段的收敛,自定义损失会被添加到图表中,从而动态地(取决于周期)消除目标偏差。


图6:训练图的概述:包括使用Straight Through
Estimator (STE)块,全局变量和控制来处理一致动态范围以及自定义正则化项的传统量化方法。

借助一致的动态范围,我们可以探索利用仅有正权重矩阵来解决双极权重部署的问题。

通过在训练阶段增加一个额外的约束,我们进一步限制了用于训练NN的权重范围,迫使它们为正数。 为了在训练过程中帮助网络收敛,我们建议使用额外的损失项逐步迁移权重矩阵,并在训练周期消除负值的存在:

最后,我们得到只有正值的权重矩阵,这样极大地简化了权重部署所需的电路。

人类行为识别和图像分类示例

我们考虑两个不同的边缘推理应用的代表性案例:

1. CIFAR10图像分类问题,包含六个卷积层组成的简单的CNN模型

2. 人类行为识别全连接(FC)网络,基于加速度传感器和来自单一手臂的磁感应数据(模拟智能手表)对活动进行分类。

精度。 我们考虑了PCM NVM元件实现多达16种不同电导水平,也就是4位权重的情况。 评估了我们提出的具有一致动态范围和可重新配置性的方法,并与传统量化方法(STE)进行比较,精度损失在以上两种应用中均可以忽略不计。

图7:左图:使用标准STE方法(8位和4位)和我们的所提方案(4位)的CIFAR10精度变化。 右图:不同权重/激活精度下的人类行为识别(HAR)准确度变化。

更有趣的是用单极权重训练NN的结果。在较小的HAR FC网络中,即使权重精度非常低,我们也可以看到好的效果。 因此,在NVM元件中,单极性权重矩阵方法能够提供极高的精度。

图8:左图:不同权重/激活精度下的HAR准确度变化,标准STE与我们提出的双极/单极方案的比较。右图:在不同量化方法下,强制成单极的通道百分比对CIFAR10准确度的影响。

较大的CNN会在实现的精度与其单极性之间进行权衡。我们分析了将卷积层中一定比例的过滤器放入单极设备所带来的影响。百分比越大,面积和能耗的改善就越明显,但是它和最终的分类精度之间有所取舍。
可以通过将40%的过滤器强制为单极来实现有竞争力的精度,同时仍能确保整个NN有一致的动态范围。 这个实验证明了需要权衡PPA与此类加速器中提供的精度。

面积与能源效益。 我们将PCM看作NVM元件并定制设计了4位和8位ADC和DAC(使用55nm技术),从而计算了CIFAR10和HAR应用中每次推断的能量和面积。
由于外围资源共享,CIFAR10案例与传统方案相比可以节省高达80%的面积, HAR案例中的能耗降低多达55%。

总结

当今的计算正向边缘转移,节能的信号和ML加速器可以在边缘利用我们周围传感器的优势。
模拟加速器作为高效处理系统的推动者已经引起了研究界的关注,但它存在的问题仍有待解决。 在我们的IJCNN 2020会议论文中,我们建立了初始机制,在了解将要被部署的模拟硬件的基础上来训练DNN。这样可以最小化由于电域上动态范围差异引起的可重配置性的限制,我们提出了一种实现全部或部分单极权重矩阵的机制来获得相当大的面积和能耗效益。

如果有任何疑问请及时联系我们。

作者:Fernando García Redondo
翻译:Khorina,Evens
原文链接:https://community.arm.com/developer/research/b/articles/posts/training-dnn-iot-applications-for-deployment-on-analog-nvm-crossbars

发表评论

邮箱地址不会被公开。 必填项已用*标注