CN113504892A - 一种设计乘法器查找表的方法、系统、设备及介质 - Google Patents
一种设计乘法器查找表的方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113504892A CN113504892A CN202110657629.3A CN202110657629A CN113504892A CN 113504892 A CN113504892 A CN 113504892A CN 202110657629 A CN202110657629 A CN 202110657629A CN 113504892 A CN113504892 A CN 113504892A
- Authority
- CN
- China
- Prior art keywords
- bit width
- translation
- multiplier
- determining
- output 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013519 translation Methods 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 abstract description 45
- 238000013528 artificial neural network Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种设计乘法器查找表的方法、系统、设备和存储介质,方法包括:响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。本发明可以针对深度神经网络计算或其它应用中对计算误差的可容忍程度进行灵活配置,从而在满足应用需求的前提下,减少计算在存储上的开销,提高整体的计算效能。
Description
技术领域
本发明涉及芯片设计领域,更具体地,特别是指一种设计乘法器查找表的方法、系统、计算机设备及可读介质。
背景技术
近似计算在计算科学中是一个传统的概念,从最早数学家用无限逼近的方式去计算圆形乃至不规则图形的面积,到现在常用的四舍五入的算数方法,都属于近似计算的范畴,其意义在于,在可容忍的误差范围下简化计算。
在以二进制的布尔代数为基础的计算机计算科学上,计算被映射到了“0”和“1”,进行的是在限定位宽下的精确计算,即只要不超过计算位宽,得到的就是准确的计算结果。但是这样的代价往往是高昂的,尤其是在现在数据和计算量都爆炸的各种AI(artificialintelligence,人工智能)计算中,精确计算意味着庞大的开销,包括更多的硬件资源、更复杂的算法程序以及更长的计算时间。而实际上,对于大部分的AI应用而言,尤其是基于深度学习网络的卷积计算中,并不需要那么精确的计算结果。在这种情况下,在部分步骤上使用近似计算替代,是提高整体计算效能的有效途径。
在FPGA上,乘法器的实现,一般是采用查找表的方式,但查找表的方式需要存储资源和访存寻址的开销,这些代价随着乘法的规模扩大,会变得难以承受。举例来说,一个8bit乘8bit的乘法器,其输出结果应该是一个16bit的数据,加上其输入组合有2^8*2^8,即2^16种,所以一共需要16*2^16bit,即1Mb的存储空间,这只是一个乘法器的开销,在深度神经网络中,要想发挥并行计算的性能,需要几十个甚至上百个的乘法器。而芯片的片上存储是非常昂贵的资源,众所周知的CPU、GPU(graphics processing unit,图形处理器)等芯片,用于提升性能的片上存储资源一般也只有几个MB(1MB=8Mb),以查找表为实现大部分逻辑运算的方式的FPGA,主流产品上也就只有几十个Mb的总容量。因此,即使在FPGA上的AI计算,基本上也都是使用DSP这种定制化的计算器件来进行。
用DSP,和在ASIC芯片中定制乘法器电路,都是基于精确计算,对输入的操作数,按照定义的乘法规则按位进行逻辑运算,直到得到最终的输出结果。区别在于DSP适用于更通用的计算,既可以做乘法,也可以做其它计算,因此,定制的乘法器会做更多的优化,面积和功耗都会更小,也会更快。但定制乘法器只能做特定位数的特定运算,比如一个8bit乘8bit的定制乘法器,是没法通过级联或者其它直接使用的方式完成16bit乘16bit的乘法的,反过来,它可以通过扩展操作数宽度实现4bit乘4bit的乘法,但是需要的资源和时间,跟8bit乘8bit是一样的。
在现在主流的精确计算这个前提下,用查找表的方式对存储资源要求太大,实现不了产品级的应用,而定制乘法器开销同样巨大,而且实现不了灵活配置,芯片中需要集成各类规模的多个乘法器件,既不利于计算效能的提升,一旦应用升级或者应用场景改变,也不利于设计的复用。
发明内容
有鉴于此,本发明实施例的目的在于提出一种设计乘法器查找表的方法、系统、计算机设备及计算机可读存储介质,本发明通过建立可容忍计算误差与占用存储容量的对应关系,可以针对深度神经网络计算或其它应用中对计算误差的可容忍程度进行灵活配置,从而在满足应用需求的前提下,减少计算在存储上的开销,提高整体的计算效能。
基于上述目的,本发明实施例的一方面提供了一种设计乘法器查找表的方法,包括如下步骤:响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:计算出结果位宽和存储容量的对应关系,根据当前的最大存储容量确定输出结果的最大位宽。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:计算所述最大位宽与所述结果的位宽的差值,判断所述差值是否在所述误差范围内;以及响应于所述差值在所述误差范围内,将所述最大位宽确定为输出结果位宽。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:响应于所述差值不在所述误差范围内,根据所述误差范围确定所述输出结果位宽。
在一些实施方式中,所述根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽包括:计算所述第一位宽和所述第二位宽的总和,并将所述总和和所述输出结果位宽的差值作为平移位宽。
在一些实施方式中,所述根据所述平移位宽对所述乘数和所述被乘数的结果进行平移包括:将所述结果向右平移所述平移位宽对应的位数。
在一些实施方式中,所述对平移后的所述结果加上第二数值包括:根据所述平移位宽对应的位数确定所述第二数值的大小。
本发明实施例的另一方面,提供了一种设计乘法器查找表的系统,包括:采集模块,配置用于响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;位宽模块,配置用于根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;平移模块,配置用于根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及调整模块,配置用于响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。
本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
本发明具有以下有益技术效果:通过建立可容忍计算误差与占用存储容量的对应关系,可以针对深度神经网络计算或其它应用中对计算误差的可容忍程度进行灵活配置,从而在满足应用需求的前提下,减少计算在存储上的开销,提高整体的计算效能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的设计乘法器查找表的方法的实施例的示意图;
图2为本发明提供的设计乘法器查找表的计算机设备的实施例的硬件结构示意图;
图3为本发明提供的设计乘法器查找表的计算机存储介质的实施例的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明实施例的第一个方面,提出了一种设计乘法器查找表的方法的实施例。图1示出的是本发明提供的设计乘法器查找表的方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
S1、响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;
S2、根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;
S3、根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及
S4、响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。
查找表(LUT)常用在FPGA中,是FPGA用灵活、可配置的方式实现各种计算和控制逻辑的核心。但它本身是一个通用的技术,其本质上是一片存储区域,能存放一系列的数据,按照定义的输入组合顺序排列,当收到特定的输入组合,就将其转化为存储的地址进去读取,将对应的数据输出。因此,理论上,只要存储区域足够大,可以容忍的寻址时间足够长,基于查找表可以实现任何确定输入后输出预设确定结果的计算操作。
本发明针对深度神经网络计算或其它应用中可容忍误差的乘法运算,实现一种灵活的查找表设计,通过近似计算的思路减少并限制查找表带来的存储开销,提高整体的计算效能。本发明中的查找表,相比于当前在FPGA上的查找表,在对输出接口和查找表数据区域的配置上需要更高的灵活性。
响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽。例如,输入数据中的乘数为Mbit,被乘数为Nbit,输出结果的位宽,可以配置为不大于(M+N)bit的各种宽度,存储区域大小也可以配置为不大于(M+N)*2^(M+N)bit的多种容量。
根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:计算出结果位宽和存储容量的对应关系,根据当前的最大存储容量确定输出结果的最大位宽。结果位宽为M+N,存储容量为(M+N)*2^(M+N),可以根据上述关系得到下面的结果位宽与存储容量的对应关系:
如果当前最大存储容量为108bit,则输出结果的最大位宽为3bit。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:计算所述最大位宽与所述结果的位宽的差值,判断所述差值是否在所述误差范围内;以及响应于所述差值在所述误差范围内,将所述最大位宽确定为输出结果位宽。假设根据应用,该乘法器可以容忍低两位的误差,也即是误差范围为2,判断最大位宽和结果的位宽的差值是否小于或等于2,如果最大位宽和结果的位宽的差值是否小于或等于2,将所述最大位宽确定为输出结果位宽。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:响应于所述差值不在所述误差范围内,根据所述误差范围确定所述输出结果位宽。假设最大位宽和结果的位宽的差值为3,则差值不在误差范围内,根据误差范围确定输出结果位宽。
在一些实施方式中,所述根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽包括:计算所述第一位宽和所述第二位宽的总和,并将所述总和和所述输出结果位宽的差值作为平移位宽。
根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值。第一数值可以例如为零。
在一些实施方式中,所述根据所述平移位宽对所述乘数和所述被乘数的结果进行平移包括:将所述结果向右平移所述平移位宽对应的位数。例如,平移位宽对应的位数为2,乘数和被乘数的结果为11000,将结果右移两位,则结果变成110,移除的数据全为零。
响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。如果移除的数据不全为第一数值,为了减少误差,可以给平移后的结果加上第二数值,第二数值可以根据具体的情形进行相应的设置。
在一些实施方式中,所述对平移后的所述结果加上第二数值包括:根据所述平移位宽对应的位数确定所述第二数值的大小。例如,如果平移位宽的位数是2,那么第二数值可以是1,如果平移位宽的位数是4,那么第二数值可以是10。
下面结合一个3位二进制数据与2位二进制数据相乘的乘法器设计的简单例子具体说明。为了便于理解,假设乘法器是用于自然数的乘法(实际中因为是填入运算结果,所以有各种类型数据,包括符号数、浮点数,实现过程上没有区别),正常的乘法运算结果如下表1(第一行与第一列分别为乘数和被乘数,其它部分为对应的运算结果,即查找表需要存储的数据,括号内为十进制数值):
表1
假设该乘法器可以容忍低两位的误差,平移位宽为2,给该乘法器配置为3bit的结果位宽和96bit的存储容量。进行移位后可以得到下面的查找表2(括号内为实际代表的十进制数值):
表2
可以看出从表1的五位数据平移到表2中的三位数据,相当于将五位数据最右边的两位进行移除,以表1中的10101进行说明,在进行了平移后其转换成了101,移除的是最低的两位,也即是01,由于其并不全是零,所以需要对其增加第二数值,也即是在结果上加1。这样就得到最终的乘法器查找表3如下(作为对比,第二个括号内为原来查找表中的精确结果):
表3
本发明实施例通过建立可容忍计算误差与占用存储容量的对应关系,可以针对深度神经网络计算或其它应用中对计算误差的可容忍程度进行灵活配置,从而在满足应用需求的前提下,减少计算在存储上的开销,提高整体的计算效能。
需要特别指出的是,上述设计乘法器查找表的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于设计乘法器查找表的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种设计乘法器查找表的系统,包括:采集模块,配置用于响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;位宽模块,配置用于根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;平移模块,配置用于根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及调整模块,配置用于响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。
在一些实施方式中,所述位宽模块配置用于:计算出结果位宽和存储容量的对应关系,根据当前的最大存储容量确定输出结果的最大位宽。
在一些实施方式中,所述位宽模块配置用于:计算所述最大位宽与所述结果的位宽的差值,判断所述差值是否在所述误差范围内;以及响应于所述差值在所述误差范围内,将所述最大位宽确定为输出结果位宽。
在一些实施方式中,所述位宽模块配置用于:响应于所述差值不在所述误差范围内,根据所述误差范围确定所述输出结果位宽。
在一些实施方式中,所述位宽模块配置用于:计算所述第一位宽和所述第二位宽的总和,并将所述总和和所述输出结果位宽的差值作为平移位宽。
在一些实施方式中,所述平移模块配置用于:将所述结果向右平移所述平移位宽对应的位数。
在一些实施方式中,所述调整模块配置用于:根据所述平移位宽对应的位数确定所述第二数值的大小。
通过建立可容忍计算误差与占用存储容量的对应关系,可以针对深度神经网络计算或其它应用中对计算误差的可容忍程度进行灵活配置,从而在满足应用需求的前提下,减少计算在存储上的开销,提高整体的计算效能。
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:S1、响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;S2、根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;S3、根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及S4、响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:计算出结果位宽和存储容量的对应关系,根据当前的最大存储容量确定输出结果的最大位宽。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:计算所述最大位宽与所述结果的位宽的差值,判断所述差值是否在所述误差范围内;以及响应于所述差值在所述误差范围内,将所述最大位宽确定为输出结果位宽。
在一些实施方式中,所述根据误差范围和容量限制确定输出结果位宽包括:响应于所述差值不在所述误差范围内,根据所述误差范围确定所述输出结果位宽。
在一些实施方式中,所述根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽包括:计算所述第一位宽和所述第二位宽的总和,并将所述总和和所述输出结果位宽的差值作为平移位宽。
在一些实施方式中,所述根据所述平移位宽对所述乘数和所述被乘数的结果进行平移包括:将所述结果向右平移所述平移位宽对应的位数。
在一些实施方式中,所述对平移后的所述结果加上第二数值包括:根据所述平移位宽对应的位数确定所述第二数值的大小。
通过建立可容忍计算误差与占用存储容量的对应关系,可以针对深度神经网络计算或其它应用中对计算误差的可容忍程度进行灵活配置,从而在满足应用需求的前提下,减少计算在存储上的开销,提高整体的计算效能。
如图2所示,为本发明提供的上述设计乘法器查找表的计算机设备的一个实施例的硬件结构示意图。
以如图2所示的装置为例,在该装置中包括一个处理器201以及一个存储器202,并还可以包括:输入装置203和输出装置204。
处理器201、存储器202、输入装置203和输出装置204可以通过总线或者其他方式连接,图2中以通过总线连接为例。
存储器202作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的设计乘法器查找表的方法对应的程序指令/模块。处理器201通过运行存储在存储器202中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的设计乘法器查找表的方法。
存储器202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据设计乘法器查找表的方法的使用所创建的数据等。此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器202可选包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置203可接收输入的用户名和密码等信息。输出装置204可包括显示屏等显示设备。
一个或者多个设计乘法器查找表的方法对应的程序指令/模块存储在存储器202中,当被处理器201执行时,执行上述任意方法实施例中的设计乘法器查找表的方法。
执行上述设计乘法器查找表的方法的计算机设备的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行如上方法的计算机程序。
如图3所示,为本发明提供的上述设计乘法器查找表的计算机存储介质的一个实施例的示意图。以如图3所示的计算机存储介质为例,计算机可读存储介质3存储有被处理器执行时执行如上方法的计算机程序31。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,设计乘法器查找表的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种设计乘法器查找表的方法,其特征在于,包括以下步骤:
响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;
根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;
根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及
响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。
2.根据权利要求1所述的方法,其特征在于,所述根据误差范围和容量限制确定输出结果位宽包括:
计算出结果位宽和存储容量的对应关系,根据当前的最大存储容量确定输出结果的最大位宽。
3.根据权利要求2所述的方法,其特征在于,所述根据误差范围和容量限制确定输出结果位宽包括:
计算所述最大位宽与所述结果的位宽的差值,判断所述差值是否在所述误差范围内;以及
响应于所述差值在所述误差范围内,将所述最大位宽确定为输出结果位宽。
4.根据权利要求3所述的方法,其特征在于,所述根据误差范围和容量限制确定输出结果位宽包括:
响应于所述差值不在所述误差范围内,根据所述误差范围确定所述输出结果位宽。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽包括:
计算所述第一位宽和所述第二位宽的总和,并将所述总和和所述输出结果位宽的差值作为平移位宽。
6.根据权利要求1所述的方法,其特征在于,所述根据所述平移位宽对所述乘数和所述被乘数的结果进行平移包括:
将所述结果向右平移所述平移位宽对应的位数。
7.根据权利要求1所述的方法,其特征在于,所述对平移后的所述结果加上第二数值包括:
根据所述平移位宽对应的位数确定所述第二数值的大小。
8.一种设计乘法器查找表的系统,其特征在于,包括:
采集模块,配置用于响应于接收到输入数据,获取所述输入数据中的乘数的第一位宽和所述输入数据中的被乘数的第二位宽;
位宽模块,配置用于根据误差范围和容量限制确定输出结果位宽,根据所述第一位宽、所述第二位宽和所述输出结果位宽确定平移位宽;
平移模块,配置用于根据所述平移位宽对所述乘数和所述被乘数的结果进行平移,并判断平移过程中移除的数据是否全为第一数值;以及
调整模块,配置用于响应于平移过程中移除的数据不是全为第一数值,对平移后的所述结果加上第二数值。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110657629.3A CN113504892A (zh) | 2021-06-13 | 2021-06-13 | 一种设计乘法器查找表的方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110657629.3A CN113504892A (zh) | 2021-06-13 | 2021-06-13 | 一种设计乘法器查找表的方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113504892A true CN113504892A (zh) | 2021-10-15 |
Family
ID=78010264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110657629.3A Pending CN113504892A (zh) | 2021-06-13 | 2021-06-13 | 一种设计乘法器查找表的方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113504892A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934029A (zh) * | 2023-02-20 | 2023-04-07 | 辰星(天津)自动化设备有限公司 | 乘法运算资源转换逻辑资源方法、装置、乘法器及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519460B1 (en) * | 2014-09-25 | 2016-12-13 | Cadence Design Systems, Inc. | Universal single instruction multiple data multiplier and wide accumulator unit |
CN112612446A (zh) * | 2020-12-15 | 2021-04-06 | 东南大学 | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 |
US20210117768A1 (en) * | 2019-08-27 | 2021-04-22 | Anhui Cambricon Information Technology Co., Ltd. | Data processing method, device, computer equipment and storage medium |
-
2021
- 2021-06-13 CN CN202110657629.3A patent/CN113504892A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519460B1 (en) * | 2014-09-25 | 2016-12-13 | Cadence Design Systems, Inc. | Universal single instruction multiple data multiplier and wide accumulator unit |
US20210117768A1 (en) * | 2019-08-27 | 2021-04-22 | Anhui Cambricon Information Technology Co., Ltd. | Data processing method, device, computer equipment and storage medium |
CN112612446A (zh) * | 2020-12-15 | 2021-04-06 | 东南大学 | 一种基于布斯编码的16*8近似乘法器片上动态计算系统 |
Non-Patent Citations (1)
Title |
---|
吕律等: ""基于FPGA单精度浮点乘法器的设计实现与测试"", 《暨南大学学报》, 30 June 2005 (2005-06-30), pages 303 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934029A (zh) * | 2023-02-20 | 2023-04-07 | 辰星(天津)自动化设备有限公司 | 乘法运算资源转换逻辑资源方法、装置、乘法器及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907719B2 (en) | FPGA specialist processing block for machine learning | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
CN111008003B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN114402289A (zh) | 多模式运算电路 | |
CN110362293B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN110554854B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN110673823B (zh) | 乘法器、数据处理方法及芯片 | |
CN110515587B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN113504892A (zh) | 一种设计乘法器查找表的方法、系统、设备及介质 | |
CN111258544B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258633B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111931441A (zh) | Fpga快速进位链时序模型的建立方法、装置以及介质 | |
CN115827555A (zh) | 数据处理方法、计算机设备、存储介质和乘法器结构 | |
CN210109789U (zh) | 数据处理器 | |
CN209879493U (zh) | 乘法器 | |
CN210006031U (zh) | 乘法器 | |
CN210006029U (zh) | 数据处理器 | |
CN110688087B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN209895329U (zh) | 乘法器 | |
CN111258545B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN210109863U (zh) | 乘法器、装置、神经网络芯片及电子设备 | |
CN114579079A (zh) | 用于常数乘法的集成电路、操作其的方法和包括其的装置 | |
CN111258542B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111930674A (zh) | 乘累加运算装置及方法、异构智能处理器及电子设备 |
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 |