矩阵乘法器、矩阵相乘的方法以及计算设备与流程

文档序号:34057104发布日期:2023-05-05 18:09阅读:48来源:国知局
矩阵乘法器、矩阵相乘的方法以及计算设备与流程

本技术涉及芯片设计领域,并且更具体地,涉及一种矩阵乘法器、矩阵相乘的方法以及计算设备。


背景技术:

1、矩阵乘法(matric multiplication,mm)是神经网络、机器学习等现代人工智能相关技术中很重要的数学运算之一。一个示例,可以通过矩阵乘法器进行矩阵乘法的操作。

2、相关的技术方案中,由于矩阵乘法中涉及许多的乘法运算和加法运算,因此,该相关技术方案中的矩阵乘法器包括常规的乘法电路,该常规的乘法电路中需要包括多个加法器、移位器以及多个乘法器。在进行矩阵乘法操作时,该常规的乘法电路由于包括多个加法器、移位器以及多个乘法器,其具有较高的功耗。

3、因此,如何减少矩阵乘法器的功耗成为亟需要解决的技术问题。


技术实现思路

1、本技术提供一种矩阵乘法器、矩阵相乘的方法以及计算设备,该矩阵乘法器能够节省功耗。

2、第一方面,提供了一种矩阵乘法器,该矩阵乘法器包括:比较电路,第一操作电路。

3、比较电路,用于确定第一目标数据和/或第二目标数据是否为第一集合中的数据,其中,该第一目标数据为第一矩阵中的数据,该第二目标数据为第二矩阵中的数据,该第一集合包括:0、2n,该n为整数;

4、第一操作电路,用于根据该第一目标数据和/或该第二目标数据为该第一集合中的数据,输出该第一目标数据和该第二目标数据相乘的第一结果,该第一结果包括:0或第三数据,其中,第三数据是根据n对第一目标数据或第二目标数据移位得到的,或是根据n对第一目标数据或第二目标数据移位并取反得到的。

5、上述矩阵乘法器可以在对两个矩阵中的数据进行乘法操作时,对于特殊的数据(例如,该数据为0或±2n),在对该数据进行乘法运算时,可以直接输出对应的特殊的结果。这样,可以减少由于进行常规的乘法运算所带来的较高的功耗。并且,由于矩阵乘法器是对两个矩阵中的数据进行乘法操作,会涉及大量的操作运算,功耗的节省所带来的收益更为可观。

6、结合第一方面,在第一方面的某些实现方式中,该第一操作电路,具体用于根据该第一目标数据为0,输出的该第一结果为0。

7、结合第一方面,在第一方面的某些实现方式中,该第一操作电路,具体用于根据该第一目标数据为2n,输出的该第一结果为该第三数据,该第三数据是对该第二目标数据左移或右移|n|位得到的。

8、结合第一方面,在第一方面的某些实现方式中,该第一操作电路具体用于:根据该第一目标数据为2n以及该n为正整数,输出的该第一结果为该第三数据,该第三数据是对该第二目标数据左移n位得到的;或根据该第一目标数据为2n以及该n为负整数,输出的该第一结果为该第三数据,该第三数据是对该第二目标数据右移|n|位得到的。

9、结合第一方面,在第一方面的某些实现方式中,所述第一操作电路,具体用于根据所述第一目标数据为-2n,输出的所述第一结果为所述第三数据,第三数据是对第二目标数据左移或右移|n|位并取反得到的。

10、结合第一方面,在第一方面的某些实现方式中,该比较电路,还用于根据该第一目标数据和/或该第二目标数据为该第一集合中的数据,确定第一操作码,其中,该第一操作码的取值指示该第一目标数据和/或该第二目标数据为0或±2n;该第一操作电路,具体用于根据该第一操作码的取值以及该第一目标数据和/或该第二目标数据,确定该第一结果为0或该第三数据。

11、结合第一方面,在第一方面的某些实现方式中,该矩阵乘法器还包括至少一个第一寄存器,该至少一个第一寄存器分别与该比较电路、该第一操作电路连接,该至少一个第一寄存器,用于从该比较电路获取该第一目标数据和该第二目标数据;该至少一个第一寄存器,还用于将该第一目标数据和该第二目标数据输出至该第一操作电路。

12、结合第一方面,在第一方面的某些实现方式中,该至少一个第一寄存器,还用于从该比较电路获取该第一操作码,并将该第一操作码输出至该第一操作电路。

13、结合第一方面,在第一方面的某些实现方式中,该矩阵乘法器还包括至少一个第二寄存器和第二操作电路,该至少一个第二寄存器和该第二操作电路连接,该至少一个第二寄存器,用于在该比较电路确定该第一目标数据和该第二目标数据均不是该第一集合中的数据的情况下,将获取的该第一目标数据和该第二目标数据输出至该第二操作电路;该第二操作电路,用于对接收到的该第一目标数据和该第二目标数据进行常规的乘法运算,输出该第一目标数据和该第二目标数据相乘的第二结果。

14、结合第一方面,在第一方面的某些实现方式中,该矩阵乘法器还包括数据选择器mux,该mux分别与该第二操作电路、该第一操作电路连接,该mux,用于将该第一结果或该第二结果作为该矩阵乘法器的输出。

15、结合第一方面,在第一方面的某些实现方式中,该比较电路,还用于在该比较电路确定该第一目标数据和/或该第二目标数据为该第一集合中的数据的情况下,向该至少一个第一寄存器输出取值为1的使能信号;该至少一个第一寄存器,具体用于根据该取值为1的使能信号,将该第一目标数据和该第二目标数据输出至该第一操作电路。

16、结合第一方面,在第一方面的某些实现方式中,该矩阵乘法器还包括取反电路,该取反电路分别与该比较电路和该至少一个第二寄存器连接,该比较电路,还用于在该比较电路确定该第一目标数据和该第二目标数据均不是该第一集合中的数据的情况下,向该至少一个第一寄存器输出取值为0的使能信号;该取反电路,用于对该比较电路输出的该取值为0的使能信号进行取反操作,得到取值为1的使能信号,并将该取值为1的使能信号输出至该至少一个第二寄存器;该至少一个第二寄存器,具体用于基于该取值为1的使能信号,将获取的该第一目标数据和该第二目标数据输出至该第二操作电路。

17、结合第一方面,在第一方面的某些实现方式中,该取反电路为非门。

18、结合第一方面,在第一方面的某些实现方式中,该mux具体用于:在接收到取值为1的使能信号后,将该第一结果作为该矩阵乘法器的输出;或在接收到取值为0的使能信号后,将该第二结果作为该矩阵乘法器的输出。

19、第二方面,提供了一种矩阵相乘的方法,该方法应用于矩阵乘法器,该矩阵乘法器用于对第一矩阵和第二矩阵进行矩阵乘的操作,该方法包括:比较电路确定第一目标数据和/或第二目标数据是否为第一集合中的数据,其中,该第一目标数据为该第一矩阵中的数据,该第二目标数据为该第二矩阵中的数据,该第一集合包括:0、±2n,该n为整数;第一操作电路根据该第一目标数据和/或第二目标数据为该第一集合中的数据,输出该第一目标数据和该第二目标数据相乘的第一结果,该第一结果包括:0或第三数据,其中,第三数据是根据n对第一目标数据或第二目标数据移位得到的,或是根据n对第一目标数据或第二目标数据移位并取反得到的。

20、结合第二方面,在第二方面的某些实现方式中,该第一操作电路根据该第一目标数据为0,输出的该第一结果为0。

21、结合第二方面,在第二方面的某些实现方式中,该第一操作电路根据该第一目标数据为2n,输出的该第一结果为该第三数据,该第三数据是对该第二目标数据左移或右移|n|位得到的。

22、结合第二方面,在第二方面的某些实现方式中,该第一操作电路根据该第一目标数据为2n以及该n为正整数,输出的该第一结果为该第三数据,该第三数据是对该第二目标数据左移n位得到的;或该第一操作电路根据该第一目标数据为2n以及该n为负整数,输出的该第一结果为该第三数据,该第三数据为对该第二目标数据右移|n|位得到的。

23、结合第二方面,在第二方面的某些实现方式中,该第一操作电路根据第一目标数据为-2n,输出的第一结果为所述第三数据,第三数据是对第二目标数据左移或右移|n|位并取反得到的。

24、结合第二方面,在第二方面的某些实现方式中,该方法还包括:该比较电路根据该第一目标数据和/或该第二目标数据为该第一集合中的数据,确定第一操作码,其中,该第一操作码的取值指示该第一目标数据和/或该第二目标数据为0或±2n;该第一操作电路根据该第一操作码的取值以及该第一目标数据和/或该第二目标数据,确定该第一结果为0或该第三数据。

25、结合第二方面,在第二方面的某些实现方式中,该方法还包括:至少一个第一寄存器从该比较电路获取该第一目标数据和该第二目标数据,该至少一个第一寄存器分别与该比较电路、该第一操作电路连接;该至少一个第一寄存器将该第一目标数据和该第二目标数据输出至该第一操作电路。

26、结合第二方面,在第二方面的某些实现方式中,该方法还包括:该至少一个第一寄存器从该比较电路获取该第一操作码,并将该第一操作码输出至该第一操作电路。

27、结合第二方面,在第二方面的某些实现方式中,该方法还包括:至少一个第二寄存器在该比较电路确定该第一目标数据和该第二目标数据均不是该第一集合中的数据的情况下,将获取的该第一目标数据和该第二目标数据输出至第二操作电路,该至少一个第二寄存器和该第二操作电路连接;该第二操作电路对接收到的该第一目标数据和该第二目标数据进行常规的乘法运算,输出该第一目标数据和该第二目标数据相乘的第二结果。

28、结合第二方面,在第二方面的某些实现方式中,该方法还包括:数据选择器mux将该第一结果或该第二结果作为该矩阵乘法器的输出,该ux分别与该第二操作电路、该第一操作电路连接。

29、结合第二方面,在第二方面的某些实现方式中,该方法还包括:该比较电路在该比较电路确定该第一目标数据和/或该第二目标数据为该第一集合中的数据的情况下,向该至少一个第一寄存器输出取值为1的使能信号;该至少一个第一寄存器根据该取值为1的使能信号,将该第一目标数据和该第二目标数据输出至该第一操作电路。

30、结合第二方面,在第二方面的某些实现方式中,该方法还包括:该比较电路在该比较电路确定该第一目标数据和该第二目标数据均不是该第一集合中的数据的情况下,向该至少一个第一寄存器输出取值为0的使能信号;取反电路对该比较电路输出的该取值为0的使能信号进行取反操作,得到取值为1的使能信号,并将该取值为1的使能信号输出至该至少一个第二寄存器,该取反电路分别与该比较电路和该至少一个第二寄存器连接;该至少一个第二寄存器基于该取值为1的使能信号,将获取的该第一目标数据和该第二目标数据输出至该第二操作电路。

31、结合第二方面,在第二方面的某些实现方式中,该取反电路为非门。

32、结合第二方面,在第二方面的某些实现方式中,该mux在接收到该取值为1的使能信号后,将该第一结果作为该矩阵乘法器的输出;或该mux在接收到该取值为0的使能信号后,将该第二结果作为该矩阵乘法器的输出。

33、第三方面,提供了一种计算设备,包括至少一个处理器和至少一个存储器,可选地,还包括输入输出接口。其中该至少一个处理器用于控制该输入输出接口收发信息,该至少一个存储器用于存储计算机程序,该至少一个处理器用于从至少一个存储器中调用并运行该计算机程序,使得该计算设备执行第二方面或第二方面任意一种可能的实现方式中的方法。

34、可选地,该至少一个处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该至少一个处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该至少一个处理器可以是一个通用处理器,通过读取至少一个存储器中存储的软件代码来实现,该至少一个存储器可以集成在至少一个处理器中,可以位于该至少一个处理器之外,独立存在。

35、第四方面,提供了一种芯片,该芯片包括如第一方面或第一方面任意一种可能的实现方式中的矩阵乘法器。

36、第五方面,提供了一种芯片,该芯片获取指令并执行该指令来实现上述第二方面以及第二方面的任意一种实现方式中的方法。

37、可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第二方面以及第二方面的任意一种实现方式中的方法。

38、可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行第一方面以及第二方面中的任意二种实现方式中的方法。

39、第六方面,提供了一种包含指令的计算机程序产品,当该指令被计算机运行时,使得该计算机执行如上述第二方面以及第二方面的任意一种实现方式中的方法。

40、第七方面,提供了一种计算机可读存储介质,包括计算机程序指令,当该计算机程序指令由计算机执行时,该计算机执行如上述第二方面以及第二方面的任意一种实现方式中的方法。

41、作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,rom)、可编程rom(programmable rom,prom)、可擦除的prom(erasableprom,eprom)、flash存储器、电eprom(electrically eprom,eeprom)以及硬盘驱动器(harddrive)。

42、可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1