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

一种面向稀疏神经网络加速的bit级计算的模型架构系统

2023-01-15 08:54:22 来源:中国专利 TAG:


1.本发明涉及稀疏神经网络计算技术领域,尤其涉及一种面向稀疏神经网络加速的bit级计算的模型架构系统。


背景技术:

2.随着基于深度学习的人工智能技术的飞速发展,高能效深度学习的系统设计显得尤为重要,对计算效率的要求也是越来越高。为提升神经网络的性能,研究者通过模型量化的方式来降低神经网络的计算需求。
3.神经网络的权重可由高精度的浮点数量化至精度较低的定点数,且对于不同的网络,权重量化的位宽不一。为利用权重量化提升性能,大量研究者致力于在bit级计算实现硬件加速。目前用于bit级计算加速的主要方法为,通过直接将权重剪枝到低bit,从而达到加速的效果,然而,该方法会造成较大的信息损失,从而造成剪枝位宽较少或精度损失较大。


技术实现要素:

4.本发明的目的是提供一种面向稀疏神经网络加速的bit级计算的模型架构系统,可以降低bit计算数量,同时维持一定的信息量,使性能大大提升。
5.本发明的目的是通过以下技术方案实现的:
6.一种面向稀疏神经网络加速的bit级计算的模型架构系统,包括:控制器、计算阵列、输入数据缓存、后处理单元、输出数据缓存、压缩模块和输出特征图聚类模块;其中:
7.所述控制器,用于控制模型架构的其他部分;
8.所述输入数据缓存,用于从片外缓存中读取输入图片或者结合片外缓存中的聚类结果从片外缓存读取输入特征图,以及计算阵列对应的权重数据,并缓存供计算阵列使用;其中,所述权重数据预先进行了剪枝,将每个权重中bit为1的个数剪枝到不超过设定的数目w;
9.所述计算阵列,用于从所述输入数据缓存中读取输入图片或者输入特征图,以及权重数据,并执行神经网络的卷积运算;
10.所述后处理单元,用于对所述计算阵列输出的卷积运算结果进行后处理,获得输出特征图;
11.所述输出数据缓存,用于缓存输出特征图;
12.所述压缩模块,用于将输出特征图转换成压缩格式并存入所述片外缓存;
13.所述输出特征图聚类模块,用于对所有输出特征图进行聚类,并将聚类结果存入片外缓存中。
14.由上述本发明提供的技术方案可以看出,通过训练将权重bit中的1个数剪枝到不超过特定值,有效的降低了权重bit计算数目,同时相比直接将权重位宽剪枝至低bit,又保留了更多信息量。配合模型架构的跳
‘0’
bit操作,实现了神经网络的硬件加速。因此,至少
部分地克服了现有技术中直接降低了权重bit计算数目,从而造成剪枝位宽较少或精度损失较大的问题。
附图说明
15.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
16.图1为本发明实施例提供的一种面向稀疏神经网络加速的bit级计算的模型架构系统的示意图;
17.图2为本发明实施例提供的一种模型剪枝方法的流程图;
18.图3为本发明实施例提供的对权重进行剪枝、压缩与后续计算的流程图;
19.图4为本发明实施例提供的一种计算单元的示意图;
20.图5为本发明实施例提供的聚类流程图。
具体实施方式
21.下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
22.首先对本文中可能使用的术语进行如下说明:
23.术语“和/或”是表示两者任一或两者同时均可实现,例如,x和/或y表示既包括“x”或“y”的情况也包括“x和y”的三种情况。
24.术语“包括”、“包含”、“含有”、“具有”或其它类似语义的描述,应被解释为非排它性的包括。例如:包括某技术特征要素(如原料、组分、成分、载体、剂型、材料、尺寸、零件、部件、机构、装置、步骤、工序、方法、反应条件、加工条件、参数、算法、信号、数据、产品或制品等),应被解释为不仅包括明确列出的某技术特征要素,还可以包括未明确列出的本领域公知的其它技术特征要素。
25.术语“由
……
组成”表示排除任何未明确列出的技术特征要素。若将该术语用于权利要求中,则该术语将使权利要求成为封闭式,使其不包含除明确列出的技术特征要素以外的技术特征要素,但与其相关的常规杂质除外。如果该术语只是出现在权利要求的某子句中,那么其仅限定在该子句中明确列出的要素,其他子句中所记载的要素并不被排除在整体权利要求之外。
26.除另有明确的规定或限定外,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如:可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本文中的具体含义。
27.下面对本发明所提供的一种面向稀疏神经网络加速的bit级计算的模型架构系统
进行详细描述。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本发明实施例中未注明具体条件者,按照本领域常规条件或制造商建议的条件进行。
28.本发明实施例提供一种面向稀疏神经网络加速的bit级计算的模型架构系统,如图1所示,包括:控制器(top controller)、计算阵列、输入数据缓存(input buffer)、后处理单元(post-pro module)、输出数据缓存(ouput buffer)、压缩模块(compremodule)和输出特征图聚类模块(channel clustering module)。
29.所述控制器,用于控制模型架构的其他部分,从而完成整个稀疏矩阵的计算流程。
30.所述输入数据缓存,用于从片外缓存中读取输入图片或者结合片外缓存中的聚类结果从片外缓存中读取输入特征图,以及计算阵列对应的权重数据,并缓存供计算阵列使用;其中,所述权重数据预先进行了剪枝,将每个权重中bit为1的个数剪枝到不超过设定的数目w。
31.所述计算阵列,用于从所述输入数据缓存中读取输入图片或者输入特征图,以及权重数据,并执行神经网络的卷积运算。
32.所述后处理单元,用于对所述计算阵列输出的卷积运算结果进行后处理(激活函数、池化等),获得输出特征图。
33.所述输出数据缓存,用于缓存输出特征图。
34.所述压缩模块,用于将输出特征图转换成压缩格式并存入所述片外缓存。
35.所述输出特征图聚类模块,用于对所有输出特征图进行聚类,并将聚类结果存入片外缓存中。
36.为了便于理解,下面针对系统的各个部分以及所涉及的剪枝方法进行介绍。
37.一、模型剪枝方法。
38.本发明实施例中,提供一种模型剪枝方法,将每个权重中bit为1的个数剪枝到不超过设定的数目w。主要流程如图2所示,包括:
39.步骤1、设定剪枝目标,即数目w。
40.步骤2、统计每个权重中bit为1的数目,如果超过数目w,则按bit从低到高的顺序将超出数目的部分剪枝,然后重新训练,并检查精度。示例性的:假设剪枝目标为4(即w=4),现有权重

10101111’,其bit中为
’1‘
的个数为6,因此我们需要将超过4的部分剪枝,即按bit从低到高的顺序依次将第0位和第1位剪枝掉。
41.步骤3、若超出精度损失范围,则停止剪枝,并保存当前的权重以及权重1bit个数n。
42.步骤4、若未超出精度损失范围,则返回步骤2。
43.设初始权重的位宽(权重的bit位数)为m,则其初始信息量为2m,即2m个数。剪枝后的权重
‘1’
bit个数为w,即不超过w个1在m个位置,因此其信息量为相比直接将权重位宽剪枝到w,其信息量增大了倍,其中,表示在m中取i个数的组合数。因此,本发明能部分地克服了现有技术中直接降低了权重bit计算数目,从而造成剪枝位宽较少或精度损失较大的问题。
44.如图3所示,展示了对权重进行剪枝、压缩与计算的流程图,示例性的:初始权重二进制表示为w0(10101011)和w1(00101001),剪枝后变为w0(10100000)和w1(00101000),随
后将权重压缩成bit值为
‘1’
的bit所处的位置信息,分别为序列{7,5}和{5,3}然后送入到pe中计算,从而跳过权重中bit为
’0’
的计算,缩短计算时间。
45.二、系统各个部分说明。
46.1、计算阵列。
47.如图1所示,计算阵列的最小单元为计算单元(process element,pe),假设所述计算阵列包含m行n列的计算单元,其中,m与n均为大于1的整数。
48.本发明实施例中,每行计算单元之间能共享同一个输入图片或者输入特征图;每列计算单元之间计算同一个通道的输出特征图。具体的:第一列计算单元的输入为输入图片或者输入特征图,以及权重数据,当前列计算单元的卷积运算结果作为同一列中上一行计算单元的输入;第一行的n个计算单元的卷积运算结果即为计算阵列输出的卷积运算结果。
49.图1中,使用斜线填充的箭头ifm&weight涵盖了输入图片、输入特征图与权重数据。
50.本发明实施例中,所述计算单元包括:移位相加单元,通过移位和/或相加操作(bit级乘法操作)来计算卷积结果;地址计算子单元,用于结合卷积结果计算输出特征图部分和(卷积计算时的中间结果)的地址;部分和缓存子单元,用于缓存输出特征图部分和的地址并结合相邻计算单元的部分和进行部分和的累加,输出完整的部分和作为所属计算单元的运算结果,如图1所示,使用圆点填充的箭头psum(partial sum)表示部分和,每列计算单元的部分和累加结果,由最底端的计算单元向上传播至最顶部单元,传播过程中不断累加,最终得到每列的最终结果。
51.如图4所示,展示了计算单元的主要结构示意图。计算单元包括四个输入端口,分别输入:非零的输入特征图i
nz
、权重w
nz_bit
、输入特征图及权重的行列地址(i
row
、i
col
、w
row
、w
col
)、相邻计算单元的部分和psum
in
,(w
row
,w
col
)为输入特征图的行列地址,(i
row
,i
col
)为权重的行列地址,其中,非零的输入特征图i
nz
以及权重w
nz_bit
输入至移位相加单元(图3中使用符号“<<”表示),输入特征图权重的行列地输入至地址计算子单元(addrcmp),相邻计算单元的部分和输入至部分和缓存子单元(psum buffer)。
52.本发明实施例中,考虑到初始特征图中存在零或非零的元素,为了缩短计算时间,只将特征图中的非零元素输入到计算单元参与计算。
53.计算单元的内部计算主要分为两个阶段,本地计算阶段和相邻pe累加阶段。在本地计算阶段时,计算单元接收非零的输入特征图i
nz
与权重w
nz_bit
,在移位相加单元中完成bit级乘法,同时根据i
row
、i
col
、w
row
和w
col
,计算输出特征图的部分和地址,并存入到部分和缓存中。在相邻计算单元累加阶段,当前计算单元与相邻的计算单元进行部分和累加,最终得到完整的部分和通过输出端口psum
out
输出。
54.2、输入数据缓存。
55.如图1所示,所述输入数据缓存的数目与所述计算阵列中计算单元的行数m相同,每一个输入数据缓存均单独与计算阵列中每一行第一个计算单元连接。
56.3、后处理单元。
57.如图1所示,所述后处理单元的数目与计算阵列中计算单元的列数n相同,第一行的n个计算单元均单独连接一个后处理单元,由后处理单元对相应计算单元的卷积运算结
果计算激活函数计算与池化运算,获得单个通道的输出特征图。
58.4、输出数据缓存。
59.如图1所示,所述输出数据缓存的数目与后处理单元的数目相同,将后处理单元数目的单个通道的输出特征图缓存。
60.5、压缩模块。
61.如图1所示,所述压缩模块的数目与输出数据缓存的数目相同,用于对输出数据缓存中的输出特征图进行压缩。
62.6、输出特征图聚类模块。
63.所述输出特征图聚类模块,主要负责将稀疏度相近的特征图聚集在一起,例如,单个输出特征图共有64个元素,其中有40个零元素,24个非零元素,统计每个输出特征图的非零元素个数,最后将稀疏度相近的特征图(非零元素个数)接近的聚集起来。所述输出特征图聚类模块包括:数据长度缓存子单元,用于记录所有输出数据缓存中的输出特征图中的非零元素个数;排序子单元,用于根据输出特征图中的非零元素个数对通道序号排序;通道序号缓存子单元,用于缓存聚类后的输出特征图通道序号(即聚类结果);选择器子单元,用于连接输出数据缓存与片外缓存的数据通道,如图1所示,聚类结果将通过ddr axi(基于总线协议的ddr接口)存入片外缓存(dram)。聚类流程如图5所示,假设有4个输入特征图i0~i3,则需分两次导入至1x2的计算单元阵列中计算。首先记录每个特征图的非零元素个数,分别为8,4,7,3,然后将其按大小排序,最后按大小将特征图聚类,之后分别以i0和i2,i1和i3的次序导入计算阵列中计算。
64.三、系统工作流程。
65.本发明实施例中,系统工作流程由控制器控制,主要流程包括:从外部将权重,初始输入图片导入片外缓存(dram)中,本发明处理的网络包含多层,第一层处理的是输入图片,输出结果存储于片外缓存,前一层的输出作为后一层的输入,后一层处理的输入特征图,读取自上所述片外缓存;然后由输入缓存单元读取部分权重数据(当前层的部分权重数据)。随后将权重数据解压后与输入特征图传输至计算阵列;计算阵列主要完成卷积计算中的乘累加操作;后处理单元负责将乘累加结果做激活、池化等操作,然后得到输出特征图;输出缓存负责存储输出特征图;随后将输出特征图送往压缩模块转换成压缩格式(可减少片外缓存的存储量,以及减少计算时间),以及由输出特征图聚类模块根据每个输出特征图的非零元素个数大小排序,将稀疏度相近的特征图聚类在一起以便后一层的数据负载均衡。最终将压缩模块的输出结果存储入片外缓存,作为后一层的输入装载至输入缓存单元,如此周而复始,直至最后一层;聚类结果缓存在通道序号缓存子单元中再通过ddr axi存入片外缓存,后一层根据聚类结果中的通道序号读取片外缓存中的特征图。
66.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献