CN114003194A - 一种基于乘法器的运算方法、装置和计算机可读存储介质 - Google Patents
一种基于乘法器的运算方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114003194A CN114003194A CN202111081717.XA CN202111081717A CN114003194A CN 114003194 A CN114003194 A CN 114003194A CN 202111081717 A CN202111081717 A CN 202111081717A CN 114003194 A CN114003194 A CN 114003194A
- Authority
- CN
- China
- Prior art keywords
- multiplier
- bit
- multiplicand
- preset
- multiplication result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了一种基于乘法器的运算方法、装置和计算机可读存储介质,该方法包括:获取待处理数组与第一乘数,待处理数组包括至少两个第一待相乘数;对第一乘数进行位数扩展处理,得到第二乘数;对所有第一待相乘数进行拼接处理,得到第二待相乘数;将第二乘数与第二待相乘数输入乘法器,得到相乘结果;在判定出满足预设修正条件后,对相乘结果进行修正,以获取每个第一待相乘数与第一乘数的乘积,预设修正条件包括第一待相乘数的最高位的数值与第一乘数的最高位的数值的异或结果为第一数值、第一待相乘数与第一乘数均不为第二数值。通过上述方式,本申请能够提升算力,充分利用资源。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种基于乘法器的运算方法、装置和计算机可读存储介质。
背景技术
在图像处理或高性能计算等领域,需要用到大量的运算,乘法是其中较普遍同时也较重要的一种运算,乘法器是诸如现场可编程逻辑门阵列(Field Programmable GateArray,FPGA)、数字信号处理器(Digital Signal Processor,DSP)或图形处理器(graphicsprocessing unit,GPU)等器件内部较为稀缺的一种资源,如何充分利用乘法器的资源,决定了系统的性能,同时也关系到系统的成本高低;FPGA、DSP或GPU等器件内部的乘法器位宽较大,然而在很多应用场景下,做乘法运算需要的位宽都远小于器件内部的乘法器的位宽,导致较大位宽的乘法器的算力资源未能被充分有效利用。
发明内容
本申请提供一种基于乘法器的运算方法、装置和计算机可读存储介质,能够提升算力,充分利用资源。
为解决上述技术问题,本申请采用的技术方案是:提供一种基于乘法器的运算方法,该方法包括:获取待处理数组与第一乘数,待处理数组包括至少两个第一待相乘数;对第一乘数进行位数扩展处理,得到第二乘数;对所有第一待相乘数进行拼接处理,得到第二待相乘数;将第二乘数与第二待相乘数输入乘法器,得到相乘结果;在判定出满足预设修正条件后,对相乘结果进行修正,以获取每个第一待相乘数与第一乘数的乘积,预设修正条件包括第一待相乘数的最高位的数值与第一乘数的最高位的数值的异或结果为第一数值、第一待相乘数与第一乘数均不为第二数值。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种计算装置,该计算装置包括互相连接的存储器和处理器,其中,存储器用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的基于乘法器的运算方法。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的基于乘法器的运算方法。
通过上述方案,本申请的有益效果是:先获取第一乘数以及包括至少两个第一待相乘数的待处理数组;然后对第一乘数进行位数扩展处理得到第二乘数,还对至少一个第一待相乘数进行位数扩展处理得到相应的第二待相乘数;再将所有第二待相乘数与未进行扩展处理的第一待相乘数拼接得到第二待相乘数;将第二乘数与第二待相乘数输入乘法器,得到相乘结果;然后判定第一乘数与第一待相乘数是否满足预设修正条件,该预设修正条件包括第一待相乘数的最高位的数值与第一乘数的最高位的数值的异或结果为第一数值且第一待相乘数、第一乘数均不为第二数值,如果第一乘数与第一待相乘数满足该条件,则对相乘结果进行修正,以获取每个第一待相乘数与第一乘数的乘积,能够利用一个乘法器同时实现至少两个乘法运算,使得乘法器的算力成倍的提升,极大的提升了配备有乘法器的系统的性能,充分利用乘法器的算力资源,且能够减少乘法器的使用量,有助于降低硬件成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的基于乘法器的运算方法一实施例的流程示意图;
图2是本申请提供的对第一乘数与第一待相乘数进行位数扩展的示意图;
图3是将图2所示的数据输入乘法器的示意图;
图4是图3所示的乘法器的输入数据与输出数据的示意图;
图5是本申请提供的三个第一待相乘数的拼接示意图;
图6是图5中的第二待相乘数与第一乘数的相乘结果的示意图;
图7是本申请提供的基于乘法器的运算方法另一实施例的流程示意图;
图8是图7所示的实施例中步骤77的流程示意图;
图9是本申请提供的对第一乘数进行位数扩展的另一示意图;
图10是本申请提供的对第一被乘数进行位数扩展的另一示意图;
图11是图10中补充后的第一被乘数与第二被乘数的拼接示意图;
图12是将图10与图11中的数据输入乘法器的示意图;
图13是本申请提供的计算装置一实施例的结构示意图;
图14是本申请提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面结合附图和实施例,对本申请作进一步的详细描述。特别指出的是,以下实施例仅用于说明本申请,但不对本申请的范围进行限定。同样的,以下实施例仅为本申请的部分实施例而非全部实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
需要说明的是,本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在图像处理、人脸识别、人脸比对或卷积神经网络等领域,常使用8×8的乘法运算,而实际器件内部的硬件乘法器的输入位宽一般都远大于8×8,比如:一些FPGA内部的乘法器的输入位宽是18×24,常用的方法是直接用一个18×24的乘法器来做一个8×8的乘法运算;假如要用位宽为18×24的乘法器实现两个8×8的有符号数的乘法运算,比如:a×c和b×c,a、b以及c均为8bit的有符号数,a×c和b×c两个乘法运算需要各用一个乘法器资源,总共需要占用两个位宽为18×24的乘法器。因此,在用一个较大输入位宽的硬件乘法器实现两个较小位宽的乘数的相乘时,每个乘法器每次只做一个较小位宽的乘法运算,乘法器的很多位宽没有被充分利用,浪费了资源,影响了系统的整体性能。
基于上述问题,本申请提出了一种基于乘法器的改进方案,能够充分利用较大位宽的乘法器的算力资源,提升包含乘法器的系统的整体性能,下面对本申请所采用的技术方案进行详细描述。
请参阅图1,图1是本申请提供的基于乘法器的运算方法一实施例的流程示意图,该方法包括:
步骤11:获取待处理数组与第一乘数。
待处理数组包括至少两个第一待相乘数,每个第一待相乘数均需和第一乘数相乘,第一待相乘数与第一乘数均为二进制数,且均为有符号数或者均为无符号数。
步骤12:对第一乘数进行位数扩展处理,得到第二乘数。
在获取到待处理数组与第一乘数之后,如果第一乘数的位宽小于乘法器的一个输入端的位宽,则对第一乘数的位宽进行扩展,以使得扩展后的乘数(即第二乘数)的位宽与该输入端的位宽相等;同时,如果待处理数组中所有第一待相乘数的位宽之和小于乘法器的另一个输入端的位宽,则对待处理数组中的至少一个第一待相乘数的位宽进行扩展,以便进行后续处理。例如,如图2所示,假设第一乘数与第一待相乘数分别记作a1与c1,它们均为8bit的有符号数;将第一乘数a1扩展为18bit,比如:在第一乘数a1的最高位之前补充数值a[7],得到第二乘数a2;将第一待相乘数c1扩展为24bit,比如:在第一待相乘数c1的最高位之前补充数值c[7],得到第三待相乘数c2。
可以理解地,进行位数扩展的方式并不仅限于上述的例子,还可以直接在第一乘数与第一待相乘数的最高位之前补充数值“0”或“1”,或者在第一乘数与第一待相乘数的最低位之后补充数值“0”或“1”。
步骤13:对所有第一待相乘数进行拼接处理,得到第二待相乘数。
可以对待处理数组中至少部分第一待相乘数的位宽进行扩展,如果对待处理数组中的所有第一待相乘数均进行了位数扩展处理,则对所有第二待相乘数进行拼接处理,得到第二待相乘数;如果对待处理数组中的部分第一待相乘数进行了位数扩展处理,则将与这些第一待相乘数对应的第二待相乘数与未进行位数扩展处理的第一待相乘数拼接,得到第二待相乘数。
例如,假设待处理数组中第一待相乘数的数量为两个,记作D1与D2,它们的位宽均为8位,乘法器的位宽为18×24,则可以将第一待相乘数D1的位宽扩展至16位,得到第三待相乘数D3,将第三待相乘数D3与第一待相乘数D2拼接,得到位宽为24的第二待相乘数;或者将第一待相乘数D1的位宽扩展至12位,得到第三待相乘数D4,并将第一待相乘数D2的位宽扩展至12位,得到第三待相乘数D5,将第三待相乘数D4与第三待相乘数D5拼接,得到位宽为24的第二待相乘数。
步骤14:将第二乘数与第二待相乘数输入乘法器,得到相乘结果。
在获取到第二乘数与第二待相乘数之后,将它们分别输入乘法器,该乘法器的两个输入端的最高位为符号位。例如,如图3与图4所示,将18bit的第二待相乘数a3与24bit的第二乘数c3输入到位宽为18×24的乘法器的输入端,使得乘法器进行乘法运算,得到一个42bit的相乘结果ac。
步骤15:在判定出满足预设修正条件后,对相乘结果进行修正,以获取每个第一待相乘数与第一乘数的乘积。
预设修正条件包括第一待相乘数的最高位的数值与第一乘数的最高位的数值的异或结果为第一数值、第一待相乘数与第一乘数均不为第二数值;在判定出第一待相乘数与第一乘数满足预设修正条件后,可对乘法器输出的相乘结果进行修正,得到修正结果,然后从该修正结果中获取每个第一待相乘数与第一乘数的乘积。
在当前不满足预设修正条件时,无需对相乘结果进行修正,直接将相乘结果中相应位置处的数值截取出来即可;例如,如图5与图6所示,以待处理数组中包括三个第一待相乘数s1-s3为例,s1的位宽为6位,s2的位宽为4位,s3的位宽为2位,第一乘数的位宽为8位,乘法器的位宽为10×36,可将s1扩展成30位,并将扩展后的s1与s2以及s3拼接,得到36bit的第二待乘数s,将第一乘数扩展成10位;将扩展后的第一乘数与第二待相乘数s相乘,得到相乘结果r,相乘结果r中第一预设范围的数值为s1与第一乘数的相乘结果(即r1),第一预设范围的长度为14bit;相乘结果r中第二预设范围的数值为s2与第一乘数的相乘结果(即r2),第二预设范围的长度为12bit;相乘结果r中第三预设范围的数值为s3与第一乘数的相乘结果(即r3),第三预设范围的长度为14bit。可以理解地,还可以分别对预设范围(包括第一预设范围、第二预设范围以及第三预设范围)的数值进行截取处理(比如:截掉从最高位开始的几个数值),以获得相应的乘积。
本实施例提供了一种提升乘法器性能的方法,根据乘法器位宽和需要运算的乘法位宽之间的关系,实现利用一个乘法器实现多个乘法运算,成倍地提升了系统算力,极大地提升了系统的性能,且能够减少乘法器的使用数量,有助于降低成本。
请参阅图7,图7是本申请提供的基于乘法器的运算方法另一实施例的流程示意图,该方法包括:
步骤71:获取待处理数组与第一乘数。
待处理数组包括至少两个第一待相乘数,至少两个第一待相乘数包括第一被乘数与第二被乘数;具体地,第一乘数、第一被乘数以及第二被乘数的位宽可以均为第四预设位,且乘法器的其中一个输入端的位宽大于/等于第四预设位的三倍。
步骤72:当第一乘数的位宽小于第一预设位时,在第一乘数的最高位前补充第三数值,以使得第二乘数的位宽为第一预设位。
乘法器的一个输入端的位宽为第一预设位,判断第一乘数的位宽是否小于第一预设位,如果第一乘数的位宽小于第一预设位,便对第一乘数进行位数扩展处理,即在第一乘数的最高位之前补充至少一个第三数值,该第三数值为第一乘数的最高位的数值,得到第二乘数,该第二乘数的位宽为第一预设位,即第二乘数的位宽与乘法器的一个输入端的位宽相同。
步骤73:当第一被乘数的位宽小于第三预设位时,在第一被乘数的最高位前补充第四数值,以使得补充后的第一被乘数的位宽为第三预设位。
乘法器的另一个输入端的位宽为第二预设位,判断第一被乘数的位宽是否小于第三预设位,该第三预设位与第二被乘数的位宽之和等于第二预设位;如果第一被乘数的位宽小于第三预设位,便对第一被乘数进行位数扩展处理,即在第一被乘数的最高位之前补充至少一个第四数值,该第四数值为第一被乘数的最高位的数值。
步骤74:将补充后的第一被乘数放在第二被乘数之后,得到第二待相乘数。
在对第一被乘数的位宽进行扩展了之后,可将第二被乘数与补充后的第一被乘数拼接,比如:将补充后的第一被乘数放在第二被乘数之后,得到第二待相乘数,该第二待相乘数的位宽为第二预设位,即第二待相乘数的位宽与乘法器的另一个输入端的位宽相同。
步骤75:将第二乘数与第二待相乘数输入乘法器,得到相乘结果。
步骤75与上述实施例中步骤14相同,在此不再赘述。
步骤76:将相乘结果中第一预设范围的数值作为第一相乘结果。
第一相乘结果为第一乘数与第一被乘数的相乘结果,第一预设范围的起始位置为相乘结果的最低位,第一预设范围的长度为第一乘数的位宽与第一被乘数的位宽之和。
步骤77:基于相乘结果中第二预设范围的数值,获取第二相乘结果。
第二相乘结果为第一乘数与第二被乘数的相乘结果,第二预设范围与第一预设范围不交叉,第二预设范围的起始位置为与第一预设范围的最高位相邻的位置,第二预设范围的长度为第一乘数的位宽与第二被乘数的位宽之和。
进一步地,可采用图8所示的方案来获取第二相乘结果,具体包括以下步骤:
步骤771:基于第一乘数与第一被乘数,判断是否满足预设修正条件。
获取第一乘数的最高位的数值与第一被乘数的最高位的数值的异或结果;在异或结果为第一数值、第一乘数与第一被乘数均不为第二数值时,确定满足预设修正条件,第一数值可以为1,第二数值可以为0。
步骤772:若满足预设修正条件,则对相乘结果中第二预设范围的数值进行修正,得到第二相乘结果。
将相乘结果中第二预设范围的数值与第一数值相加,得到第二相乘结果;例如,假设第二预设范围的数值为“10001010”,则第二相乘结果为“10001011”。
步骤773:若不满足预设修正条件,则第二相乘结果为相乘结果中第二预设范围的数值。
如果不满足上述预设修正条件,则表明无需对相乘结果进行修正,此时直接将相乘结果中第二预设范围内的数值作为第二相乘结果即可。
在一具体的实施例中,以采用一个位宽为18×24的硬件乘法器每次做两个8×8的有符号数的乘法运算(记作a×c和b×c,a-c均为8bit的有符号数)为例来描述本实施例的技术方案,其他位宽的运算原理类似。
步骤1:将8位有符号乘数c扩展到18位,记作x,如图9所示。
步骤2:将8位有符号乘数a扩展到16位,如图10所示。
步骤3:将扩展后的a和有符号乘数b拼在一起,组成一个24位的数y,扩展后的a放在24位数的低16位,有符号乘数b放在24位数的高8位,如图11所示。
步骤4:将18bit的x和24bit的y输入位宽为18×24的硬件乘法器,得到一个42位的乘积p,如图12所示。
步骤5:截取乘积p的低16bit作为a×c的最终结果。
步骤6:截取乘积p的16到31位的值p[31:16],记作修正结果bc'。
步骤7:对修正结果bc'进行修正,若同时满足以下三个条件:(1)条件1:a的符号位与c的符号位的异或值为1,(2)条件2:a的值非零,(3)条件3:c的值非零,则将修正结果bc'加1得到第二相乘结果(即bc);否则,bc'即为bc。
本实施例所提供的方案满足的条件如下:
条件1:在同一个乘法器中要实现的两个乘法运算中必须有一个共同的乘数,比如,两个乘法运算为:a×c和b×c,c为共同的乘数。
条件2:若a、b以及c的位宽均为m位,则硬件乘法器的其中一个输入端的位宽必须至少为3m位。
在满足以上两个条件的情况下,可以用一个乘法器实现两个或多个乘法的运算。
可以理解地,虽然本实施例用位宽为18×24的硬件乘法器来实现8×8的有符号数乘法为例来阐述,但本实施例所提供的方法适用于任何满足一定条件的任意位宽的运算,同时也适用于无符号数的乘法运算。
本实施例提供了一种算力提升的方法,通过一定的变换,使用一个硬件乘法器同时实现了多个乘法运算,充分利用了稀缺的乘法器资源,使得算力成倍的提升,大大提升了系统的性能,基本无其他额外的资源消耗;而且,在用一个硬件乘法器同时实现多个乘法运算的过程中,通过各个乘数的符号位的关系,来判断是否对最终结果做加1的补偿,实现了有符号数乘法的精确运算。
请参阅图13,图13是本申请提供的计算装置一实施例的结构示意图,计算装置130包括互相连接的存储器131和处理器132,存储器131用于存储计算机程序,计算机程序在被处理器132执行时,用于实现上述实施例中的基于乘法器的运算方法。
请参阅图14,图14是本申请提供的计算机可读存储介质一实施例的结构示意图,计算机可读存储介质140用于存储计算机程序141,计算机程序141在被处理器执行时,用于实现上述实施例中的基于乘法器的运算方法。
计算机可读存储介质140可以是服务端、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于乘法器的运算方法,其特征在于,包括:
获取待处理数组与第一乘数,所述待处理数组包括至少两个第一待相乘数;
对所述第一乘数进行位数扩展处理,得到第二乘数;
对所有所述第一待相乘数进行拼接处理,得到第二待相乘数;
将所述第二乘数与所述第二待相乘数输入乘法器,得到相乘结果;
在判定出满足预设修正条件后,对所述相乘结果进行修正,以获取每个所述第一待相乘数与所述第一乘数的乘积,所述预设修正条件包括所述第一待相乘数的最高位的数值与所述第一乘数的最高位的数值的异或结果为第一数值、所述第一待相乘数与所述第一乘数均不为第二数值。
2.根据权利要求1所述的基于乘法器的运算方法,其特征在于,所述乘法器的一个输入端的位宽与所述第二乘数的位宽均为第一预设位,所述乘法器的另一个输入端的位宽与所述第二待相乘数的位宽均为第二预设位;所述至少两个第一待相乘数包括第一被乘数与第二被乘数,所述方法还包括:
当所述第一乘数的位宽小于所述第一预设位时,在所述第一乘数的最高位前补充第三数值,以使得所述第二乘数的位宽为所述第一预设位,所述第三数值为所述第一乘数的最高位的数值;
当所述第一被乘数的位宽小于第三预设位时,在所述第一被乘数的最高位前补充第四数值,以使得补充后的第一被乘数的位宽为所述第三预设位,所述第四数值为所述第一被乘数的最高位的数值,所述第三预设位与所述第二被乘数的位宽之和等于所述第二预设位。
3.根据权利要求2所述的基于乘法器的运算方法,其特征在于,所述获取每个所述第一待相乘数与所述第一乘数的乘积的步骤,包括:
将所述相乘结果中第一预设范围的数值作为第一相乘结果,所述第一相乘结果为所述第一乘数与所述第一被乘数的相乘结果;
基于所述相乘结果中第二预设范围的数值,获取第二相乘结果,所述第二相乘结果为所述第一乘数与所述第二被乘数的相乘结果;
其中,所述第一预设范围与所述第二预设范围不交叉。
4.根据权利要求3所述的基于乘法器的运算方法,其特征在于,所述基于所述相乘结果中第二预设范围的数值,获取第二相乘结果的步骤,包括:
基于所述第一乘数与所述第一被乘数,判断是否满足所述预设修正条件;
若是,则对所述相乘结果中第二预设范围的数值进行修正,得到所述第二相乘结果;
若否,则所述第二相乘结果为所述相乘结果中第二预设范围的数值。
5.根据权利要求4所述的基于乘法器的运算方法,其特征在于,所述对所述相乘结果中第二预设范围的数值进行修正,得到所述第二相乘结果的步骤,包括:
获取所述第一乘数的最高位的数值与所述第一被乘数的最高位的数值的异或结果;
在所述异或结果为所述第一数值、所述第一乘数与所述第一被乘数均不为所述第二数值时,确定满足所述预设修正条件,将所述相乘结果中第二预设范围的数值与所述第一数值相加,得到所述第二相乘结果。
6.根据权利要求4所述的基于乘法器的运算方法,其特征在于,
所述第一预设范围的起始位置为所述相乘结果的最低位,所述第一预设范围的长度为所述第一乘数的位宽与所述第一被乘数的位宽之和;所述第二预设范围的起始位置为与所述第一预设范围的最高位相邻的位置,所述第二预设范围的长度为所述第一乘数的位宽与所述第二被乘数的位宽之和。
7.根据权利要求2所述的基于乘法器的运算方法,其特征在于,所述对所有所述第一待相乘数进行拼接处理,得到第二待相乘数的步骤,包括:
将所述补充后的第一被乘数放在所述第二被乘数之后,得到所述第二待相乘数。
8.根据权利要求2所述的基于乘法器的运算方法,其特征在于,
所述第一乘数、所述第一被乘数以及所述第二被乘数的位宽均为第四预设位,所述乘法器的其中一个输入端的位宽大于/等于所述第四预设位的三倍。
9.一种计算装置,其特征在于,包括互相连接的存储器和处理器,其中,所述存储器用于存储计算机程序,所述计算机程序在被所述处理器执行时,用于实现权利要求1-8中任一项所述的基于乘法器的运算方法。
10.一种计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序在被处理器执行时,用于实现权利要求1-8中任一项所述的基于乘法器的运算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111081717.XA CN114003194A (zh) | 2021-09-15 | 2021-09-15 | 一种基于乘法器的运算方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111081717.XA CN114003194A (zh) | 2021-09-15 | 2021-09-15 | 一种基于乘法器的运算方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003194A true CN114003194A (zh) | 2022-02-01 |
Family
ID=79921380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111081717.XA Pending CN114003194A (zh) | 2021-09-15 | 2021-09-15 | 一种基于乘法器的运算方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003194A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115857873A (zh) * | 2023-02-07 | 2023-03-28 | 湖南三安半导体有限责任公司 | 乘法器、乘法计算方法、处理系统及存储介质 |
CN115934029A (zh) * | 2023-02-20 | 2023-04-07 | 辰星(天津)自动化设备有限公司 | 乘法运算资源转换逻辑资源方法、装置、乘法器及介质 |
-
2021
- 2021-09-15 CN CN202111081717.XA patent/CN114003194A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115857873A (zh) * | 2023-02-07 | 2023-03-28 | 湖南三安半导体有限责任公司 | 乘法器、乘法计算方法、处理系统及存储介质 |
CN115857873B (zh) * | 2023-02-07 | 2023-05-09 | 兰州大学 | 乘法器、乘法计算方法、处理系统及存储介质 |
CN115934029A (zh) * | 2023-02-20 | 2023-04-07 | 辰星(天津)自动化设备有限公司 | 乘法运算资源转换逻辑资源方法、装置、乘法器及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9489342B2 (en) | Systems, methods, and computer program products for performing mathematical operations | |
CN114003194A (zh) | 一种基于乘法器的运算方法、装置和计算机可读存储介质 | |
TWI763079B (zh) | 用於浮點運算的乘法器、方法、積體電路晶片和計算裝置 | |
US7580966B2 (en) | Method and device for reducing the time required to perform a product, multiplication and modular exponentiation calculation using the Montgomery method | |
US5796645A (en) | Multiply accumulate computation unit | |
CN112711738A (zh) | 用于向量内积的计算装置、方法和集成电路芯片 | |
CN110109646A (zh) | 数据处理方法、装置和乘加器及存储介质 | |
US20220283777A1 (en) | Signed multiword multiplier | |
US20190213478A1 (en) | Micro-processor circuit and method of performing neural network operation | |
US20240176585A1 (en) | Data processing method, computer device and storage medium | |
CN113918120A (zh) | 计算装置、神经网络处理设备、芯片及处理数据的方法 | |
WO2018217369A1 (en) | Data packing techniques for hard-wired multiplier circuits | |
CN112765540A (zh) | 数据处理方法、装置及相关产品 | |
CN112712172A (zh) | 用于神经网络运算的计算装置、方法、集成电路和设备 | |
CN113407904B (zh) | 兼容多维度卷积神经网络的Winograd处理方法、系统及介质 | |
CN109241784A (zh) | 一种ssd的国密sm2签名验证方法及系统 | |
CN110399117B (zh) | 一种混合乘法加法处理方法及装置 | |
CN109992242B (zh) | 基于乘法器的运算方法及装置 | |
CN108229668B (zh) | 基于深度学习的运算实现方法、装置和电子设备 | |
US20230259581A1 (en) | Method and apparatus for floating-point data type matrix multiplication based on outer product | |
CN111930674A (zh) | 乘累加运算装置及方法、异构智能处理器及电子设备 | |
US5715187A (en) | Method and apparatus for integer multiplication | |
WO2023078364A1 (zh) | 矩阵乘法的运算方法及装置 | |
WO2021073511A1 (zh) | 用于浮点运算的乘法器、方法、集成电路芯片和计算装置 | |
KR20230122975A (ko) | 부동소수점 데이터 타입에 대한 외적 기반 행렬곱 연산 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |