用于存算一体芯片的神经网络映射方法、装置、设备制造方法及图纸

技术编号:32122218 阅读:23 留言:0更新日期:2022-01-29 19:09
本发明专利技术实施例提供一种用于存算一体芯片的神经网络映射方法、装置、设备,该方法包括:根据待映射神经网络各层对应的Bias最小行数与权重矩阵对各层进行映射排序;根据所述映射排序结果,依次将各层对应的权重矩阵排布到存算一体芯片的主阵列中,并根据权重矩阵的排布位置以及Bias最小行数将对应的Bias排布到所述存算一体芯片的Bias阵列中的与所述排布位置列对应的位置;其中,依次排布各层对应的权重矩阵时按照蛇形顺序排布,有效利用了存算一体单元,另外,基于Bias最小行数以及Bias阵列空闲情况对各Bias占据的行数进行了扩展,减少单个存算一体单元上的偏置数值,降低电流噪声,提高运算精度。提高运算精度。提高运算精度。

【技术实现步骤摘要】
用于存算一体芯片的神经网络映射方法、装置、设备


[0001]本专利技术涉及半导体
,尤其涉及一种用于存算一体芯片的神经网络映射方法、装置、设备。

技术介绍

[0002]近年来,随着算法、算力和数据量规模三个维度的不断发展,机器学习技术在解决诸多问题方面不断展现出强大的优势,其中,人工神经网络以其在图像识别、目标检测、语义分割等领域的突出表现得到人们的广泛关注。但是,随着神经网络规模的扩大,传统以CPU+GPU架构处理神经网络算法的模式逐渐遇到了速度和功耗的瓶颈,究其根源是因为冯
·
诺伊曼架构下存算分离使得以数据为中心的神经网络算法给计算系统带来过大的数据传输开销,降低速度的同时增大了功耗。
[0003]存内计算技术解决了存算分离导致的问题,通过将神经网络的权重存储到存算一体(NPU)芯片中的闪存阵列节点的电导上,再将以电压表示的数据源送入阵列,由欧姆定律可知,阵列输出的电流为电压和电导的乘积,从而完成了数据源和网络权重的矩阵乘加运算,本质上是在进行模拟计算,而非传统上的数字计算。
[0004]在存算一体芯片从设计到生产的全流程中,工具链的设计是重要的一个环节。在面向存算一体芯片的工具链设计中,将特定神经网络的权重参数根据需求自动映射到芯片阵列上的技术是一项关键技术,在将训练后的神经网络映射到存算一体芯片的存算一体单元阵列上时,按照神经网络各层的顺序,依次将权重和偏置映射到存算一体芯片阵列上,一方面不能有效利用存算一体单元,增加了存算一体单元阵列规模,另一方面,由于偏置直接映射到存算一体芯片阵列上,偏置的数值越大对应存算一体单元的电导越大,在同样电压下,存算一体单元的电流越大,进而导致噪声越大,影响运算精度。

技术实现思路

[0005]针对现有技术中的问题,本专利技术提供一种用于存算一体芯片的神经网络映射方法、装置、设备,能够至少部分地解决现有技术中存在的问题。
[0006]为了实现上述目的,本专利技术采用如下技术方案:
[0007]第一方面,提供一种用于存算一体芯片的神经网络映射方法,包括:
[0008]根据待映射神经网络各层对应的Bias最小行数与权重矩阵对各层进行映射排序;
[0009]根据所述映射排序结果,依次将各层对应的权重矩阵排布到存算一体芯片的主阵列中,并根据权重矩阵的排布位置以及Bias最小行数将对应的Bias排布到所述存算一体芯片的Bias阵列中的与所述排布位置列对应的位置;
[0010]其中,依次排布各层对应的权重矩阵时按照蛇形顺序排布。
[0011]进一步地,所述主阵列中包含多个阵列分布的存算一体单元块,各层对应的权重矩阵排布到所述主阵列中的存算一体单元块上;
[0012]所述依次排布各层对应的权重矩阵时按照蛇形顺序排布,包括:针对每一层神经
网络对应的权重矩阵,按照蛇形顺序依次轮询所述主阵列中的存算一体单元块以找到所述排布位置。
[0013]进一步地,所述根据待映射神经网络各层对应的Bias最小行数与权重矩阵对各层进行映射排序,包括:
[0014]根据各层对应的Bias最小行数对各层进行映射排序;
[0015]对Bias最小行数相同的层按照权重矩阵的列数进行映射排序。
[0016]进一步地,用于存算一体芯片的神经网络映射方法还包括;
[0017]根据排布结果将所述待映射神经网络各层的权重矩阵和Bias写入所述存算一体芯片上。
[0018]进一步地,所述按照蛇形顺序依次轮询所述主阵列中的存算一体单元块以找到所述排布位置,包括:
[0019]按照蛇形顺序依次轮询所述主阵列中的存算一体单元块是否存在满足当前层排布条件的位置;
[0020]若是,将当前层的权重矩阵排布到满足当前层排布条件的位置;
[0021]若否,继续轮询下一存算一体单元块,直至找到满足所述排布条件的位置;
[0022]其中,所述排布条件为:与当前排布周期中已排布在当前存算一体单元块上的权重矩阵并排且能够容纳当前层的权重矩阵。
[0023]进一步地,排布权重矩阵时从非空闲列的下一列开始排布。
[0024]进一步地,所述按照蛇形顺序依次轮询所述主阵列中的存算一体单元块以找到所述排布位置,还包括:
[0025]若按照蛇形顺序轮询完所有存算一体单元块后仍未找到满足所述排布条件的位置,则返回首个存算一体单元块,进入下一排布周期:
[0026]判断首个存算一体单元块的空闲位置是否能够容纳当前层的权重矩阵;
[0027]若是,将当前层的权重矩阵排布在首个存算一体单元块的空闲位置;
[0028]若否,按照蛇形顺序依次轮询各存算一体单元块,直到找到能够容纳所述权重矩阵的存算一体单元块,将当前层的权重矩阵排布在所述存算一体单元块的空闲位置;
[0029]其中,排布权重矩阵时从非空闲行的下一行开始排列。
[0030]进一步地,所述将对应的Bias排布到所述存算一体芯片的Bias阵列中的与所述排布位置列对应的位置时,将所述Bias排布到列对应的位置中的非空闲行的下一行。
[0031]进一步地,用于存算一体芯片的神经网络映射方法还包括:
[0032]根据Bias排布结果和所述Bias阵列的空闲情况对Bias的排布进行扩展,得到Bias最终排布结果。
[0033]进一步地,所述根据Bias排布结果和所述Bias阵列的空闲情况对Bias的排布进行扩展,包括:
[0034]根据Bias阵列的空闲行数判断是否能够将所有Bias占用行数成倍扩展;
[0035]若是,将所有Bias占用行数成倍扩展;
[0036]若否,按照预设规则选取Bias进行扩展。
[0037]进一步地,用于存算一体芯片的神经网络映射方法还包括:
[0038]将所述存算一体芯片的存算一体单元阵列划分为主阵列以及Bias阵列;
[0039]将所述主阵列划分为多个存算一体单元块。
[0040]进一步地,用于存算一体芯片的神经网络映射方法还包括:
[0041]获取待映射神经网络的参数以及目标存算一体芯片的参数,所述待映射神经网络的参数包括各层对应的权重矩阵以及Bias;
[0042]根据各层的Bias以及所述存算一体芯片的参数得到各层对应的Bias最小行数。
[0043]第二方面,提供一种存算一体芯片,包括:用于执行神经网络运算的存算一体单元阵列,所述存算一体单元阵列包括:主阵列以及Bias阵列,所述主阵列中映射有各层神经网络对应的权重矩阵;Bias阵列中映射有各层神经网络对应的Bias;
[0044]各层对应的权重矩阵基于Bias最小行数与权重矩阵的列数排序,且按照排序结果在所述主阵列上蛇形排布,所述Bias排布到Bias阵列中的与对应权重矩阵的排布位置列对应的位置。
[0045]进一步地,所述主阵列包括多个阵列分布的存算一体单元块,各层对应的权重矩阵排布到所述主阵列中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于存算一体芯片的神经网络映射方法,其特征在于,包括:根据待映射神经网络各层对应的Bias最小行数与权重矩阵对各层进行映射排序;根据所述映射排序结果,依次将各层对应的权重矩阵排布到存算一体芯片的主阵列中,并根据权重矩阵的排布位置以及Bias最小行数将对应的Bias排布到所述存算一体芯片的Bias阵列中的与所述排布位置列对应的位置;其中,依次排布各层对应的权重矩阵时按照蛇形顺序排布。2.根据权利要求1所述的用于存算一体芯片的神经网络映射方法,其特征在于,所述主阵列中包含多个阵列分布的存算一体单元块,各层对应的权重矩阵排布到所述主阵列中的存算一体单元块上;所述依次排布各层对应的权重矩阵时按照蛇形顺序排布,包括:针对每一层神经网络对应的权重矩阵,按照蛇形顺序依次轮询所述主阵列中的存算一体单元块以找到所述排布位置。3.根据权利要求2所述的用于存算一体芯片的神经网络映射方法,其特征在于,所述根据待映射神经网络各层对应的Bias最小行数与权重矩阵对各层进行映射排序,包括:根据各层对应的Bias最小行数对各层进行映射排序;对Bias最小行数相同的层按照权重矩阵的列数进行映射排序。4.根据权利要求2所述的用于存算一体芯片的神经网络映射方法,其特征在于,还包括;根据排布结果将所述待映射神经网络各层的权重矩阵和Bias写入所述存算一体芯片上。5.根据权利要求2所述的用于存算一体芯片的神经网络映射方法,其特征在于,所述按照蛇形顺序依次轮询所述主阵列中的存算一体单元块以找到所述排布位置,包括:按照蛇形顺序依次轮询所述主阵列中的存算一体单元块是否存在满足当前层排布条件的位置;若是,将当前层的权重矩阵排布到满足当前层排布条件的位置;若否,继续轮询下一存算一体单元块,直至找到满足所述排布条件的位置;其中,所述排布条件为:与当前排布周期中已排布在当前存算一体单元块上的权重矩阵并排且能够容纳当前层的权重矩阵。6.根据权利要求5所述的用于存算一体芯片的神经网络映射方法,其特征在于,排布权重矩阵时从非空闲列的下一列开始排布。7.根据权利要求5所述的用于存算一体芯片的神经网络映射方法,其特征在于,所述按照蛇形顺序依次轮询所述主阵列中的存算一体单元块以找到所述排布位置,还包括:若按照蛇形顺序轮询完所有存算一体单元块后仍未找到满足所述排布条件的位置,则返回首个存算一体单元块,进入下一排布周期:判断首个存算一体单元块的空闲位置是否能够容纳当前层的权重矩阵;若是,将当前层的权重矩阵排布在首个存算一体单元块的空闲位置;若否,按照蛇形顺序依次轮询各存算一体单元块,直到找到能够容纳所述权重矩阵的存算一体单元块,将当前层的权重矩阵排布在所述存算一体单元块的空闲位置;其中,排布权重矩阵时从非空闲行的下一行开始排列。
8.根据权利要求1所述的用于存算一体芯片的神经网络映射方法,其特征在于,所述将对应的Bias排布到所述存算一体芯片的Bias阵列中的与所述排布位置列对应的位置时,将所述Bias排布到列对应的位置中的非空闲行的下一行。9.根据权利要求1所述的用于存算一体芯片的神经网络映射方法,其特征在于,还包括:根据Bias排布结果和所述Bias阵列的空闲情况对Bias的排布进行扩展,得到Bias最终排布结果。10.根据权利要求9所述的用于存算一体芯片的神经网络映射方法,其特征在于,所述根据Bias排布结果和所述Bia...

【专利技术属性】
技术研发人员:康卓栋张爱飞陆振亮
申请(专利权)人:北京知存科技有限公司
类型:发明
国别省市:

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

1