本技术涉及计算机,特别是涉及一种乘加器的控制方法、装置、计算机设备和存储介质。
背景技术:
1、随着神经网络规模不断扩大,计算规模不断增大,计算输入向量与突触权重的容量不断增大,芯片中的乘加器被调用次数不断增多。而且需要在芯片中集成的乘累加器的数量也不断增加。乘加器在芯片中的面积和功耗也不断增加。因此,提升芯片的计算效率一直是研究重点。
2、目前的神经形态芯片基于crossbar(交叉开关矩阵)阵列多维数据与权重的计算阵列,设计多计算模式的2d乘加器阵列。根据输入神经网络的图像的位宽、计算模式设置使能信号,使能信号控制乘加器阵列的使能组数,根据控制信号可以灵活随意的开1组,2组,3组,m组等。而且可以根据控制信号控制一组内部乘加器开启的个数n个,根据需要将乘加器全部打开或打开其中的一部分,从而提升芯片的计算效率。然而,当神经网络输入的数据信息的位宽不是4的整倍数或者输出位宽不是32的整倍数时,通过2d乘加器阵列计算的时间冗长,从而导致芯片对不同位宽的数据信息的计算效率较低。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种乘加器的控制方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种乘加器的控制方法。所述方法包括:
3、获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
4、基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
5、将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
6、可选的,所述基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,包括:
7、根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
8、根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
9、基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
10、可选的,所述基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器,包括:
11、根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
12、根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
13、将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
14、可选的,所述将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果,包括:
15、将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
16、对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
17、可选的,所述方法还包括:
18、获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
19、建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
20、可选的,所述基于所述二维乘加器阵列,建立深度方向的乘加器阵列,包括:
21、获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
22、在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
23、第二方面,本技术还提供了一种乘加器的控制装置。所述装置包括:
24、获取模块,用于获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
25、确定模块,用于基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
26、计算模块,用于将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
27、可选的,所述确定模块,具体用于:
28、根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
29、根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
30、基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
31、可选的,所述确定模块,具体用于:
32、根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
33、根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
34、将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
35、可选的,所述计算模块,具体用于:
36、将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
37、对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
38、可选的,所述装置还包括:
39、第一建立模块,用于获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
40、第二建立模块,用于建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
41、可选的,所述第一建立模块,具体用于:
42、获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
43、在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
44、第三方面,本技术提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述的方法的步骤。
45、第四方面,本技术提供了一种计算机可读存储介质。其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法的步骤。
46、第五方面,本技术提供了一种计算机程序产品。所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项所述的方法的步骤。
47、上述乘加器的控制方法、装置、计算机设备和存储介质,通过获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组;将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组进行累加计算,得到所述数据信息的计算结果。通过基于数据信息的位宽和计算模式设置使能信号,并基于该使能信号调整三维乘加器阵列用于计算的使能组,控制所述三维乘加器阵列中用于计算的使能组对数据信息的数据内容进行累加计算,从而提升了芯片对不同位宽的数据信息的计算效率。