System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向深度学习存算一体芯片的计算精度补偿架构与方法技术_技高网

一种面向深度学习存算一体芯片的计算精度补偿架构与方法技术

技术编号:41210564 阅读:12 留言:0更新日期:2024-05-09 23:33
本发明专利技术公开了一种面向深度学习存算一体芯片的计算精度补偿架构与方法,在神经网络模型向忆阻器阵列映射的过程中,不同网络层间仅共享行资源,不共享列资源,在列方向上根据神经网络规模的不同,有不同程度的资源剩余;基于神经网络模型映射后的剩余资源训练补偿架构,忆阻器阵列通过输入电压的方式,修正输出端电流。本发明专利技术针对不同噪音的综合影响,针对忆阻器芯片在实际使用过程中实际所产生的噪声情况,基本不增加额外的硬件耗费,避免线下训练添加噪声模型时由于噪音模型不准确带来的精度损失问题,提高了神经网络模型在实际忆阻器芯片中的网络精度。

【技术实现步骤摘要】

本专利技术涉及基于忆阻器材料的存算一体芯片可靠性设计,具体涉及一种面向深度学习存算一体芯片的计算精度补偿架构与方法


技术介绍

1、随着深度学习网络的不断发展,对于神经网络计算在速度功耗方面的要求日渐提高。传统的主流硬件平台以cpu和gpu为主,均基于冯诺依曼计算架构实现。深度神经网络算法属于数据密集型的数据流式的计算,处理单元与存储单元间产生了大量的数据传输,由于“存储墙”问题,有限的数据传输带宽会显著影响神经网络计算速度。存储内计算可有效降低数据通信代价,是神经网络计算架构的重要研究方向。忆阻器与传统存储器相比有更高的集成度与能效,且适合于存储内计算,是实现存算一体芯片的最佳器件。

2、由于工艺的局限性,当前忆阻器计算阵列在运行深度神经网络计算时,存在多种类型的噪音,如硬错误、工艺偏差、读噪音、写噪音及电压降等;各种噪音在忆阻器阵列中叠加,共同影响输出结果。在离线训练中对单一噪音的分析并不能解决实际计算中的精度损失,而在线训练写操作成本高,且对忆阻器寿命与可靠性影响较大。


技术实现思路

1、为了克服以上技术问题,本专利技术的目的在于提供一种面向深度学习存算一体芯片的计算精度补偿架构与方法,该架构针对不同噪音的综合影响,针对忆阻器芯片在实际使用过程中实际所产生的噪声情况(忆阻器在使用过程中不同生命周期阶段噪声的特点不同),基本不增加额外的硬件耗费,避免线下训练添加噪声模型时由于噪音模型不准确带来的精度损失问题,提高了神经网络模型在实际忆阻器芯片中的网络精度。

<p>2、为了实现上述目的,本专利技术采用的技术方案是:

3、一种面向深度学习存算一体芯片的计算精度补偿架构,在神经网络模型向忆阻器阵列映射的过程中,不同网络层间仅共享行资源,不共享列资源,在列方向上根据神经网络规模的不同,有不同程度的资源剩余;

4、基于神经网络模型映射后的剩余资源训练补偿架构,忆阻器阵列通过输入电压的方式,修正输出端电流。

5、所述忆阻器阵列中有三种噪声,即随机写入噪声、互联电阻噪声以及saf噪声,在向忆阻器元件写入数据时无可避免的产生随机噪声,该噪声使用高斯噪声模拟,不同的标准差代表不同程度的噪声。

6、互联噪声由忆阻器阵列中各单元间的连接线上的电阻造成,连接线上的电阻造成忆阻器阵列引入非理想性值,即互联噪声。

7、根据基尔霍夫电压定律,位于忆阻器阵列左下部分的忆阻器元件所对应的等效电导相对接近理想值,而右上的忆阻器元件则会受到较为严重的影响。随着工艺尺寸的缩小,互联电阻逐渐增大,对阵列中电流的干扰作用将会增强。由于忆阻器阵列基于电流进行计算,互联电阻的增加对其计算准确度产生的影响也逐渐增加。一些忆阻器元件会卡在高电导状态或低电导状态,即stuck-at-0(sa0)与stuck-at-1(sa1)。这样引起的噪声被称作stuck-at-fault(saf)噪声,这种噪声是由于忆阻器元件制造工艺不成熟,个别忆阻器元件的故障所引起的,因此难以避免。通常sa0是因为短路造成的,这将导致忆阻器元件始终处于高电导状态,而sa1则是由于元件损坏或是电路断裂导致,这将导致这一位置始终处于低电导状态。若直接将神经网络的参数部署在受到saf噪声影响的忆阻器阵列上,saf噪声对计算精度的影响能力与saf噪声的随机性有很大关系。

8、所述神经网络中,包括卷积层和全连接层;

9、对于卷积层(c,k,k,n),映射到忆阻器阵列后规模为(cxkxk,n),在忆阻器阵列中增加kxk行输入数据,对应于在网络模型的卷积层各输出通道增加kxk大小的卷积核,对于全连接层(h,w),映射到忆阻器阵列后规模扔为(h,w),在忆阻器阵列中增加m行输入数据,对应于在全连接层增加规模为(m,w)的参数矩阵。

10、所述神经网络模型为lenet-5、vgg8或resnet。

11、所述忆阻器阵列包括忆阻器阵列1、忆阻器阵列2、忆阻器阵列3与忆阻器阵列4;

12、所述忆阻器阵列1包含第一层卷积层全部参数与第二层卷积层部分参数,两层参数在行方向上并排分布,避免在列方向上的数据输出端产生交叉,剩余的忆阻器单元为空闲状态;

13、所述忆阻器阵列2包含第二层卷积网络剩余的参数,在进行第二层卷积层计算时,忆阻器阵列1与忆阻器阵列2的计算输出相加,得到最终的计算结果;忆阻器阵列3与忆阻器阵列4共同放置第三层全连接层的矩阵参数,与第二层卷积层相同,忆阻器阵列3与忆阻器阵列4的输出相加后得到最终计算结果。

14、所述第一层卷积层未添加补偿通道,其对应的忆阻器资源中,列方向上剩余的忆阻器单元保持空闲状态;第二层卷积层添加补偿通道,卷积层的补偿通道规模与第二层的原始卷积层规模相关,平均地分配到忆阻器阵列1与忆阻器阵列2中,放置位置为原始卷积核的相同列中;第二层卷积进行计算时,同一忆阻器阵列中,补偿通道的输出与原始卷积核输出自然叠加,第三层全连接层分配到忆阻器阵列3与忆阻器阵列4两个忆阻器阵列中,每个忆阻器阵列增加1个补偿通道,放置位置同样为原矩阵参数的相同列中。

15、一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,包括以下步骤:

16、首先设计并训练原始网络模型,所述原始网络模型为lenet-5、vgg8或resnet,确定各层的参数规模,原始网络模型向忆阻器阵列映射前,基于忆阻器阵列大小,计算网络模型中各卷积层和全连接层的资源剩余情况;

17、当某网络层剩余的可用于补偿通道使用的忆阻器单元数量不足以在每个忆阻器阵列中添加补偿通道时,选择放弃在该网络层中添加补偿通道,或者通过分配更多硬件资源给该网络层的方式获取补偿通道空间;

18、原始网络模型完成映射后,进行补偿通道权重的训练;

19、对于卷积层,补偿通道的输入由属于同一输出通道的所有原始网络模型输入生成,对于全连接层,补偿通道的输入由位于同一忆阻器阵列的部分原始网络模型输入生成;

20、对于软硬件协同训练,补偿通道的初始化、计算与训练在线下完成;原始网络模型的输入送入忆阻器阵列,忆阻器阵列输出结果作为中间值,同时基于原始网络模型的输入在线下生成补偿通道输入,与补偿通道权重进行相应计算后,与忆阻器阵列计算的中间值相加,生成最终的计算结果,用于下一步的神经网络操作;权重更新仅针对线下的补偿通道权重;

21、训练完成后,将补偿通道权重写入忆阻器阵列预留的补偿通道空间中;对于纯线上训练,首先将初始化的权重值写入忆阻器阵列预留的补偿通道空间中,各忆阻器阵列的输出值直接包含补偿通道计算结果。

22、当网络规模较小,单个网络层仅需要单个忆阻器阵列,增加补偿通道时,原始网络模型向忆阻器阵列映射前,需要考虑各层补偿通道的规模,对于卷积层,补偿通道规模为(1,k,k,n),即输入通道数量为1,输出通道数量为n,输出通道数量与原始网络模型的卷积层输出通道数量相等,映射到忆阻器阵列中后,占用的阵列规模为(kxk,n)本文档来自技高网...

【技术保护点】

1.一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,在神经网络模型向忆阻器阵列映射的过程中,不同网络层间仅共享行资源,不共享列资源,在列方向上根据神经网络规模的不同,有不同程度的资源剩余;

2.根据权利要求1所述的一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,所述神经网络中,包括卷积层和全连接层;

3.根据权利要求1所述的一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,所述忆阻器阵列包括忆阻器阵列1、忆阻器阵列2、忆阻器阵列3与忆阻器阵列4;

4.根据权利要求3所述的一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,所述第一层卷积层未添加补偿通道,其对应的忆阻器资源中,列方向上剩余的忆阻器单元保持空闲状态;第二层卷积层添加补偿通道,卷积层的补偿通道规模与第二层的原始卷积层规模相关,平均地分配到忆阻器阵列1与忆阻器阵列2中,放置位置为原始卷积核的相同列中;第二层卷积进行计算时,同一忆阻器阵列中,补偿通道的输出与原始卷积核输出自然叠加,第三层全连接层分配到忆阻器阵列3与忆阻器阵列4两个忆阻器阵列中,每个忆阻器阵列增加1个补偿通道,放置位置同样为原矩阵参数的相同列中。

5.权利要求1-4任一项所述的一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,其特征在于,包括以下步骤:

6.根据权利要求5所述的一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,其特征在于,当网络规模较小,单个网络层仅需要单个忆阻器阵列,增加补偿通道时,原始网络模型向忆阻器阵列映射前,考虑各层补偿通道的规模,对于卷积层,补偿通道规模为(1,K,K,N),即输入通道数量为1,输出通道数量为N,输出通道数量与原始网络模型的卷积层输出通道数量相等,映射到忆阻器阵列中后,占用的阵列规模为(KxK,N),即需要的忆阻器阵列输入行数量为KxK,输出列数量为N,补偿通道的输出列数量与原始网络模型卷积层输出列数量相同,在忆阻器阵列中分配的位置在原始网络模型卷积层的上方,写入N列中闲置的忆阻器单元中,不占用N列之外的忆阻器资源。

7.根据权利要求5所述的一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,其特征在于,当网络规模较大,单个网络层需要多个忆阻器阵列完成映射时,卷积层的补偿通道尽可能均分到各忆阻器阵列中,对于卷积层,需要增加补偿通道数量时,以(1,K,K,N)为基本单位,输入通道的数量1可增加为任意整数值,其余参数量不变,新增的补偿通道输入值通过改变选择器配置生成。

8.根据权利要求5所述的一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,其特征在于,当网络规模非常大时,所述忆阻器阵列数量用二维向量(H_,V_)表示,其中H_代表在输入行方向上需要的忆阻器阵列数量,H_值为2,表示全连接矩阵被水平分割为两个矩阵,忆阻器阵列3和4的输出值需要相加,以获得最终的计算结果;

9.根据权利要求5所述的一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,其特征在于,对于规模为(C,K,K,N)的卷积层,补偿通道的最小规模为(1,K,K,N),映射到忆阻器阵列中后为(KxK,N),其补偿通道的输入行数量为kxk,若该卷积层所需要的忆阻器阵列数量为(H_conv,V_conv),将补偿通道均分到各忆阻器阵列中时,单个忆阻器阵列中补偿通道所需要的输入行数量为为即(KxK)/H_conv的计算结果向上取整,只有当单个忆阻器阵列中空闲的输入行数量大于时,才能够满足补偿通道的设计需要;

...

【技术特征摘要】

1.一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,在神经网络模型向忆阻器阵列映射的过程中,不同网络层间仅共享行资源,不共享列资源,在列方向上根据神经网络规模的不同,有不同程度的资源剩余;

2.根据权利要求1所述的一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,所述神经网络中,包括卷积层和全连接层;

3.根据权利要求1所述的一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,所述忆阻器阵列包括忆阻器阵列1、忆阻器阵列2、忆阻器阵列3与忆阻器阵列4;

4.根据权利要求3所述的一种面向深度学习存算一体芯片的计算精度补偿架构,其特征在于,所述第一层卷积层未添加补偿通道,其对应的忆阻器资源中,列方向上剩余的忆阻器单元保持空闲状态;第二层卷积层添加补偿通道,卷积层的补偿通道规模与第二层的原始卷积层规模相关,平均地分配到忆阻器阵列1与忆阻器阵列2中,放置位置为原始卷积核的相同列中;第二层卷积进行计算时,同一忆阻器阵列中,补偿通道的输出与原始卷积核输出自然叠加,第三层全连接层分配到忆阻器阵列3与忆阻器阵列4两个忆阻器阵列中,每个忆阻器阵列增加1个补偿通道,放置位置同样为原矩阵参数的相同列中。

5.权利要求1-4任一项所述的一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,其特征在于,包括以下步骤:

6.根据权利要求5所述的一种面向深度学习存算一体芯片的计算精度补偿架构的补偿方法,其特征在于,当网络规模较小,单个网络层仅需要单个忆阻器阵列,增加补偿通道时,原始网络模型向忆阻器阵列映射前,考虑各层补偿通道的规模,对于卷积层,补偿通道规模为(1,k,k,n),即输入通道数量为1,输出通道数量为n,输出通道数量与原始网络模型...

【专利技术属性】
技术研发人员:刘龙军赵晓青孙宏滨郑南宁
申请(专利权)人:西安交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1