一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种通过异构架构增强忆阻器计算系统安全性的方法与流程

2022-04-06 21:56:41 来源:中国专利 TAG:


1.本发明属于新器件忆阻器领域,具体涉及一种通过混合使用忆阻器和静态存储器的忆阻器计算系统安全性增强方法。


背景技术:

2.近来,神经网络(nns)算法已经成为机器人、视觉物体识别和自然语言处理等行业的重要元素。它们通常是数据密集型的,涉及大量的向量矩阵乘法(vmms)。传统的计算机架构将计算和内存分开,由于其在执行此类算法方面的无效性而受到挑战。基于新兴的记忆体设备的计算系统,如电阻式随机存取存储器(rram)和相变存储器(pcm),引入了一种原地解决方案,以提高速度和能源效率。这些记忆体计算系统既可以存储nn的权重,又可以在内存中处理它们,这就避免了计算单元和内存之间巨大的矩阵数据移动。然而,由于忆阻器器件的非易失性,当系统关闭时,存储在忆阻器交叉开关阵列中的nn权重会暴露在攻击者面前。静态存储器交叉开关阵列也可以执行忆阻器开关阵列的任务,而且静态存储器具有易失性,即系统断电后,存储在静态存储器交叉开关阵列中的参数会消失。但是静态存储器的硬件开销笔忆阻器打。因此可以混合使用忆阻器和静态存储区,达到即能够保证忆阻器计算系统安全性的同时又能将系统的硬件开销控制在可以一定范围内的目的。


技术实现要素:

3.本发明的目的在于提供一种通过混合使用忆阻器和静态存储器的方法,来增强忆阻器计算系统的安全性。
4.实现本发明目的的技术解决方案为:一种通过在同一个忆阻器计算系统中混合使用忆阻器和静态电阻器来提升忆阻器计算系统安全性的方法,包括以下步骤:
5.步骤1、分别将神经网络模型的每一层的参数随机化并保持其他层参数不变,测试神经网络模型的准确率,将对模型准确率影响较大的网络层和较小的网络层分别标记为msl和lsl,准确率越高即表示该层越重要,反之越不重要,转入步骤2。
6.步骤2、分别将神经网络模型的每比特位的参数随机化并保持其他比特位参数不变,测试神经网络模型的准确率,将对模型准确率影响较大的比特位和较小的比特位分别标记为msb和lsb,准确率越高即表示该比特位越重要,反之越不重要,转入步骤3。
7.步骤3、基于上述两个步骤得出的结果,通过将神经网络参数中的重要层的重要比特位映射至静态存储器并且其他参数映射至忆阻器来提升忆阻器计算系统安全性。
8.本发明与现有技术相比,其显著优点在于:
9.(1)不增加针对忆阻器的额外写操作,从而减少了因对忆阻器的额外写操作给系统带来的时延和功耗开销。
10.(2)不增加针对忆阻器的额外写操作,同时也避免了因对忆阻器的额外写操作降低忆阻器计算系统的使用寿命。
附图说明
11.图1为本发明忆阻器计算系统安全性增强方法的流程图。
12.图2为展示忆阻器单元和静态存储器单元分别与交叉开关阵列兼容示意图,其中图(a)为忆阻器单元示意图,图(b)为静态存储器单元示意图,图(c)为忆阻器单元和静态存储器单元按照交叉开关阵列兼容示意图。
13.图3为展示所提出的混合使用忆阻器和静态电阻器的示意图。
14.图4展示了仅保护部分网络层的部分比特位情况下,模型的预测准确性示意图。
15.图5展示了仅保护部分网络层的部分比特位情况下,系统的硬件开销示意图。
具体实施方式
16.本发明公开了一种通过异构架构增强忆阻器计算系统安全性的方法,结合忆阻器的非易失性和静态存储器的易失性以保护存储在忆阻器计算系统内的神经网络模型。首先,通过实验评估神经网络参数的每一个网络层,找出参数中的重要网络层;然后,通过实验评估神经网络参数的每一个比特位,找出参数中的重要比特位;最后,提出将参数中的重要网络层的重要比特位映射至静态存储器计算模块,将剩余的参数映射至忆阻器计算模块。本发明操作简单,实用性强,可以提高忆阻器存内逻辑计算的效率。该方法操作简单,实用性强,可以提高提升忆阻器计算系统的安全性。
17.神经网络主要由卷积(conv)层和全连接(fc)层构成,而conv层和fc层最主要的运算是向量矩阵相乘(vmm)。vmm操作可以显示为:
[0018][0019]
其中xi(i∈[1,m])是输入特征映射,m为神经网络权值矩阵的行数并且m>1,yj(j∈[1,n])是输出激活,n为神经网络权值矩阵的列数并且n>1,w
i,j
是神经网络权值矩阵第i行第j列元素。分别由忆阻器和静态存储器组成的交叉开关阵列可以执行向量矩阵相乘(vmm)操作从而加速神经网络模型计算。忆阻器单元和静态存储器单元分别由图2(a)和图2(b)表示。其中一个忆阻器单元由一个忆阻器设备和一个开关组成;一个静态存储器单元由6个晶体管(6t)组成的静态存储器和两个开关组成。将忆阻器单元和静态存储器单元按照交叉开关阵列的形式组织起来,如图2(c)所示。输入特征映射xi通过数字模拟转换器(dac)转换成电压vi,在比特位输出的为累计电流ij,经过模拟数字转换器(adc)转换成输出特征映射yj。
[0020]
结合图1,本发明所述的通过异构架构增强忆阻器计算系统安全性的方法,包括以下步骤:
[0021]
步骤1、分别将神经网络模型的每一层的参数随机化并保持其他层参数不变,测试神经网络模型的准确率,将对模型准确率影响较大的网络层和较小的网络层分别标记为msl和lsl,准确率越高即表示该层越重要,反之越不重要,得到神经网络模型每一层的重要性值,具体如下:
[0022]
神经网络模型执行计算的过程是逐层进行的。根据这个特点,提出将某一层的神经网络模型参数随机化并保持其他参数不变,测试神经网络模型的预测准确性;逐个测试每一层。
[0023]
神经网络模型表述为
[0024][0025]
其中n是测试数据集中输入的个数,fw表示神经网络模型的功能,(ini,outi)表示第i个输入输出对,q表示模型准确率;将神经网络模型的任意一层的参数随机化之后的模型表述为
[0026][0027]
其中w
*
表示随机化的参数。
[0028]
转入步骤2。
[0029]
步骤2、分别将神经网络模型的每比特位的参数随机化并保持其他比特位参数不变,测试神经网络模型的准确率,将对模型准确率影响较大的比特位和较小的比特位分别标记为msb和lsb,准确率越高即表示该比特位越重要,反之越不重要,具体如下:
[0030]
神经网络模型的每一个参数都有多个比特位组成。根据这个特点,提出将神经网络模型所有参数的某一个比特位随机化并保持比特位不变,测试神经网络模型的预测准确性;逐个测试每一层。
[0031]
将神经网络模型的任意一比特位的参数随机化之后的模型表述为
[0032][0033]
其中表示任意一比特位随机化的参数。
[0034]
转入步骤3。
[0035]
步骤3、根据步骤1得到的msl和lsl,以及步骤2得到的msb和lsb,通过将神经网络参数中的重要层的重要比特位映射至静态存储器并且其他参数映射至忆阻器来提升忆阻器计算系统安全性,具体如下:
[0036]
步骤3.1、分别检查忆阻器单元和静态存储器单元与教材开关阵列的兼容性:一个忆阻器单元由一个忆阻器设备和一个开关组成,其两端分别连接字线和位线,可以与交叉开关阵列兼容;一个静态存储器单元由6个晶体管(6t)组成的静态存储器和两个开关组成,其两端亦分别连接字线和位线,可以与交叉开关阵列兼容。
[0037]
步骤3.2、硬件实现忆阻器计算模块和静态存储器计算模块的混合架构。
[0038]
1)对于选定的待保护网络层,其映射至由忆阻器计算模块和静态存储器计算模块混合组成的tile中,其他的网络层则直接映射至仅由忆阻器计算模块组成的tiles中;
[0039]
2)将选定的待保护网络层中选定的待保护比特位映射至静态存储器计算模块中,其他比特位映射至忆阻器计算模块中;
[0040]
3)忆阻器计算模块和静态存储器计算模块具有相同的路由构架。下面结合附图及具体实施例对本发明作进一步详细说明。
[0041]
实施例
[0042]
结合图1,本实施例公开了一种通过异构架构增强忆阻器计算系统安全性的方法,具体步骤如下:
[0043]
步骤1、分别将神经网络模型的每一层的参数随机化并保持其他层参数不变,测试神经网络模型的准确率,准确率越高即表示该层越重要,反之越不重要,得到神经网络模型每一层的重要性。
[0044]
表1展示了神经网络模型lenet、alexnet和vgg16的每一层的重要性。总体来说神经网络的前面几层和最后一层比较重要。神经网络的前面几层会影响到后面的所有网络层;神经网络的最后一层直接影响神经网络模型的输出如表1。
[0045]
表1
[0046] lenetalexnetvgg16116.62%39.77%60.63%230.93%54.03%73.69%339.04%58.26%43.82%433.34%64.78%69.91%545.20%73.25%82.69%6
‑‑
74.20%82.76%7
‑‑
61.34%84.18%8
‑‑
62.41%88.70%9
‑‑‑‑
89.63%10
‑‑‑‑
87.87%11
‑‑‑‑
89.85%12
‑‑‑‑
90.36%13
‑‑‑‑
90.45%14
‑‑‑‑
47.86%
[0047]
步骤2、分别将神经网络模型的每比特位的参数随机化并保持其他比特位参数不变,测试神经网络模型的准确率,准确率越高即表示该比特位越重要,反之越不重要,得到神经网络模型参数的每一比特的重要性。
[0048]
表2展示了神经网络模型lenet、alexnet和vgg16的参数的每一比特位的重要性。总体来说神经网络参数的前面几个比特位比较重要。神经网络参数的前面几个比特位的值决定着整个参数的值的大小,如表2。
[0049]
表2
[0050] lenetalexnetvgg16112.07%11.74%10.01%210.66%12.27%19.48%316.84%30.08%70.75%442.65%61.19%83.65%554.20%69.26%89.85%661.41%73.14%90.46%763.11%73.76%90.40%863.22%74.07%90.50%
[0051]
步骤3、基于上述两个步骤得出的结果,通过将神经网络参数中的重要层的重要比
特位映射至静态存储器并且其他参数映射至忆阻器来提升忆阻器计算系统安全性,具体如下:
[0052]
由内存单元构成的交叉开关阵列能够执行模拟vmm操作,关键在于每一个位线输出的电流为每一个字线输入的电压经过该列位线所连接的所有内存单元并在位线上累计。分别考察图2(a)和2(b)中忆阻器单元和静态存储器单元,其均一端可以连接字线另一端可以连接位线,因此均与交叉开关阵列兼容。
[0053]
如图3所示,忆阻器计算系统的最基本单元为处理元素(pe),每一个pe包含多个交叉开关阵列。注意单个忆阻器单元或单个静态存储器单元仅能存储一位数据。一个高精度的参数需要多个单元来表示,即
[0054][0055]
其中b表示比特位指数,p表示参数的精度,表示参数w
i,j
第b位的值。将不同比特位的值乘以相应的缩放值2
b-1
,之后再相加得到原本的w
i,j
。为了设计的简洁性,忆阻器计算模块和静态存储器计算模块有着相同的路由结构。即每4个pe连接一个路由,每4个路由连接一个更高层的路由,直到最顶层的路由。多个pe由不同层级的路由连接起来,组成一个卡元(tile)。在同时含有忆阻器和静态存储器的tile中,忆阻器pe组成的模块称为忆阻器计算模块;静态存储器pe组成的模块称为静态存储器计算模块。忆阻器计算模块和静态存储器计算模块分享同一tile缓存和激活函数模块、pooling模块、控制器、内存等外围电路。
[0056]
假定将重要网络层的重要的k比特参数映射至静态存储器计算模块中,剩余的p-k比特映射至忆阻器计算模块中。在计算中,待保护网络层的输入分别通过忆阻器计算模块的路由和静态存储器的路由从tile缓存传输至各个pe中,各个pe计算的结果再通过路由器传回至tile缓存中,并送至激活函数模块等外围电路作进一步处理,处理完再将结果拷贝至tile缓存中。
[0057]
在基准模型lenet,alexnet和vgg16上测试所提出的方法。图4分别展示了仅保护部分网络层的部分比特位情况下,模型的预测准确性。只需要保护一层神经网络的一个比特位,对于所有模型来说,其功能均能得到很好的保护。图5分别展示了仅保护部分网络层的部分比特位情况下,系统的硬件开销。因为只需要保护部分网络层的部分比特位,因此本发明的硬件开销比较小。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献