本发明涉及人工智能芯片,尤其涉及一种卷积电路及其控制方法、神经网络加速器和电子设备。
背景技术:
1、随着人工智能技术的发展,神经网络发挥着越来越重要的作用,神经网络运算中最频繁的运算是卷积运算,不同的神经网络中进行的卷积运算不同,为了实现卷积运算,需要针对不同的神经网络设置相应的电路结构来实现卷积运算,对于某个电路结构来说应用受限。
技术实现思路
1、本发明提供一种卷积电路及其控制方法、神经网络加速器和电子设备,用以解决现有技术中实现卷积运算的电路结构应用受限的问题,实现通过同一卷积电路支持多种卷积核的卷积运算。
2、本发明提供一种卷积电路,包括卷积计算单元;所述卷积计算单元包括选择器组、特征寄存器组、权重寄存器组、乘法器组、加法器组和结果寄存器组;所述选择器组包括输入选择器和移位选择器;
3、所述选择器组用于通过所述输入选择器将输入的特征数据缓存至所述特征寄存器组,还用于通过所述移位选择器将缓存的所述特征数据移位;
4、所述特征寄存器组用于缓存输入的所述特征数据并将p个所述特征数据提供给所述乘法器组,p为正整数;
5、所述权重寄存器组用于缓存输入的p个权重数据并将p个所述权重数据提供给所述乘法器组,p个所述权重数据与p个所述特征数据一一对应;
6、所述乘法器组用于计算对应的所述权重数据与对应的所述特征数据的乘积;
7、所述加法器组用于对所述乘法器组的计算结果进行累加并存储至所述结果寄存器组中。
8、根据本发明提供的一种卷积电路,所述输入的特征数据为一维数据;所述输入的特征数据为一维卷积的输入数据,或者,所述输入的特征数据为多维卷积转换成一维卷积后得到的输入数据。
9、根据本发明提供的一种卷积电路,所述乘法器组包括p个乘法器,p个所述乘法器与p个所述权重数据一一对应,每个所述乘法器用于计算对应的所述权重数据与对应的所述特征数据的乘积;
10、所述加法器组用于分别将每个所述乘法器的乘积并行累加并将累加结果存储至所述结果寄存器组中。
11、根据本发明提供的一种卷积电路,所述特征寄存器组包括p+x-1个特征寄存器,其中,x为所述卷积计算单元所支持的最大卷积核尺寸参数,x为正整数;所述选择器组包括p+x-2个选择器和移位控制器;
12、p+x-1个所述特征寄存器中第1个至第p+x-2个所述特征寄存器与p+x-2个选择器一一对应;所述特征寄存器用于缓存直接输入的所述特征数据或者缓存对应的选择器提供的所述特征数据;
13、p+x-2个选择器分别作为所述输入选择器,每个所述输入选择器分别用于将输入的所述特征数据缓存至对应的所述特征寄存器中;
14、p+x-2个选择器还分别作为所述移位选择器,第i个所述移位选择器用于在所述移位控制器的控制下将第i+1个所述特征寄存器中缓存的所述特征数据移位至第i个所述特征寄存器中,i为正整数;
15、p+x-1个所述特征寄存器中第1个至第p个所述特征寄存器与p个乘法器一一对应,用于将缓存的所述特征数据提供给对应的所述乘法器。
16、根据本发明提供的一种卷积电路,所述加法器组包括p个加法器、清零控制器和p个清零选择器;所述结果寄存器组包括p个结果寄存器;
17、p个所述加法器与p个所述乘法器一一对应;
18、p个所述加法器与p个所述结果寄存器一一对应;
19、p个所述加法器还与p个所述清零选择器一一对应;
20、p个所述结果寄存器还与p个所述清零选择器一一对应;
21、所述清零控制器用于在需要重新开始累加时,控制每个所述清零选择器选择零进行输出;在不需要重新开始累加时,控制每个所述清零选择器选择对应的所述结果寄存器中存储的累加结果进行输出;
22、所述加法器用于将对应的所述清零选择器的输出与对应的所述乘法器的乘积进行累加并将累加结果存储至对应的所述结果寄存器中。
23、根据本发明提供的一种卷积电路,所述卷积计算单元的数量为m个,m为大于1的正整数;m个所述卷积计算单元级联;
24、所述卷积电路还包括m-1个第一级联选择器,m个所述卷积计算单元中第j个所述卷积计算单元与第j-1个所述卷积计算单元通过第j-1个所述第一级联选择器级联,j为大于1的正整数;
25、所述卷积计算单元还包括第二级联选择器,所述第二级联选择器与第p个所述移位选择器对应;
26、第j-1个所述第一级联选择器用于选择第j个所述卷积计算单元的第1个所述特征寄存器缓存的所述特征数据输出至第j-1个所述卷积计算单元的所述第二级联选择器;
27、第j-1个所述卷积计算单元的所述第二级联选择器,用于选择第j-1个所述卷积计算单元的第p+1个所述特征寄存器缓存的所述特征数据或者选择第j个所述卷积计算单元的第1个所述特征寄存器缓存的所述特征数据,输出至第j-1个所述卷积计算单元的第p个所述移位选择器;
28、第j-1个所述卷积计算单元中第p个所述移位选择器,还用于在所述移位控制器的控制下将第j个所述卷积计算单元的第1个所述特征寄存器缓存的所述特征数据,移位至第j-1个所述卷积计算单元的第p个所述特征寄存器中。
29、本发明还提供一种基于如上述任一种所述的卷积电路的控制方法,包括:
30、选择器组通过输入选择器将输入的特征数据缓存至特征寄存器组,或者,通过移位选择器将缓存的所述特征数据移位;
31、所述特征寄存器组将缓存的p个所述特征数据提供给乘法器组,p为正整数;
32、权重寄存器组将输入的p个权重数据缓存并将p个所述权重数据提供给所述乘法器组,p个所述权重数据与p个所述特征数据一一对应;
33、所述乘法器组分别计算p个所述权重数据与对应的所述特征数据的乘积;
34、加法器组对所述乘法器组的计算结果进行累加并存储至所述结果寄存器组中。
35、根据本发明提供的一种卷积电路的控制方法,包括:所述输入的特征数据为一维数据;所述输入的特征数据为一维卷积的输入数据,或者,所述输入的特征数据为多维卷积转换成一维卷积后得到的输入数据。
36、本发明还提供一种神经网络加速器,包括如上述任一种所述的卷积电路。
37、本发明还提供一种电子设备,包括如上述任一种所述的神经网络加速器。
38、本发明提供的卷积电路,可以通过移位的方式,实现不同特征数据与权重数据的乘积计算以及累加,如此,可以应对多种卷积核,从而通过同一卷积电路,可以实现多种卷积核的卷积运算,使得卷积电路的结构能够在不同卷积运算的神经网络中重复使用,避免了资源浪费。
1.一种卷积电路,其特征在于,包括:卷积计算单元;所述卷积计算单元包括选择器组、特征寄存器组、权重寄存器组、乘法器组、加法器组和结果寄存器组;所述选择器组包括输入选择器和移位选择器;
2.根据权利要求1所述的卷积电路,其特征在于,所述输入的特征数据为一维数据;所述输入的特征数据为一维卷积的输入数据,或者,所述输入的特征数据为多维卷积转换成一维卷积后得到的输入数据。
3.根据权利要求1所述的卷积电路,其特征在于,所述乘法器组包括p个乘法器,p个所述乘法器与p个所述权重数据一一对应,每个所述乘法器用于计算对应的所述权重数据与对应的所述特征数据的乘积;
4.根据权利要求3所述的卷积电路,其特征在于,所述特征寄存器组包括p+x-1个特征寄存器,其中,x为所述卷积计算单元所支持的最大卷积核尺寸参数,x为正整数;所述选择器组包括p+x-2个选择器和移位控制器;
5.根据权利要求4所述的卷积电路,其特征在于,所述权重寄存器组包括p个权重寄存器;
6.根据权利要求3所述的卷积电路,其特征在于,所述加法器组包括p个加法器、清零控制器和p个清零选择器;所述结果寄存器组包括p个结果寄存器;
7.根据权利要求4所述的卷积电路,其特征在于,所述卷积计算单元的数量为m个,m为大于1的正整数;m个所述卷积计算单元级联;
8.一种基于如权利要求1至7任一项所述的卷积电路的控制方法,其特征在于,包括:
9.一种神经网络加速器,其特征在于,包括如权利要求1至7任一项所述的卷积电路。
10.一种电子设备,其特征在于,包括如权利要求9所述的神经网络加速器。