CN113076083A - 数据乘加运算电路 - Google Patents

数据乘加运算电路 Download PDF

Info

Publication number
CN113076083A
CN113076083A CN202110621616.0A CN202110621616A CN113076083A CN 113076083 A CN113076083 A CN 113076083A CN 202110621616 A CN202110621616 A CN 202110621616A CN 113076083 A CN113076083 A CN 113076083A
Authority
CN
China
Prior art keywords
data
array
multiply
calculated
add
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.)
Granted
Application number
CN202110621616.0A
Other languages
English (en)
Other versions
CN113076083B (zh
Inventor
常亮
竹子轩
司鑫
沈朝晖
陈亮
吴强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Houmo Integrated Circuit Co.,Ltd.
Original Assignee
Nanjing Houmo Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Houmo Intelligent Technology Co ltd filed Critical Nanjing Houmo Intelligent Technology Co ltd
Priority to CN202110621616.0A priority Critical patent/CN113076083B/zh
Publication of CN113076083A publication Critical patent/CN113076083A/zh
Application granted granted Critical
Publication of CN113076083B publication Critical patent/CN113076083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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
    • G06F7/5443Sum of products

Abstract

本公开实施例公开了一种数据乘加运算电路,其中,该电路包括:数据格式转换模块,用于将输入的第一原始数组和第二原始数组分别包括的数据转换为第一预设表示方式的数据,得到第一待计算数组和第二待计算数组;数据乘加运算模块,用于基于第一待计算数组和第二待计算数组包括的数据,进行针对第一原始数组和第二原始数组的乘加运算,得到乘加结果数据;数据格式化模块,用于将乘加结果数据转换为第二预设表示方式的数据。本公开实施例实现了对任意数据存储格式的数据进行大规模乘加运算,采用批处理的数据解释重构,减少了冗余的数据存储格式处理,提高了数据乘加操作的效率,还可以兼容多种乘加算法,具备扩展性。

Description

数据乘加运算电路
技术领域
本公开涉及计算机技术领域,尤其是一种数据乘加运算电路。
背景技术
在计算机技术中,乘加运算是一种基础数学运算,在人工智能算法中,乘加运算被广泛应用在卷积层、反卷积层、全连接层等矩阵运算处理过程。该运算的数学实质是对两个N元数组
Figure 64602DEST_PATH_IMAGE001
和数组
Figure 44059DEST_PATH_IMAGE002
计算
Figure 676595DEST_PATH_IMAGE003
乘加运算单元的设计,目前主要有两种技术方案。一是使用多个简单整数乘加器构建大规模阵列。二是使用通用浮点计算单元循环进行乘加运算。
发明内容
本公开的实施例提供了一种数据乘加运算电路,该电路包括:数据格式转换模块,用于将输入的第一原始数组和第二原始数组分别包括的数据转换为第一预设表示方式的数据,得到第一待计算数组和第二待计算数组,其中,第一预设表示方式是与数据存储格式无关的表示方式;数据乘加运算模块,用于基于第一待计算数组和第二待计算数组包括的数据,进行针对第一原始数组和第二原始数组的乘加运算,得到乘加结果数据;数据格式化模块,用于将乘加结果数据转换为第二预设表示方式的数据。
在一些实施例中,数据格式转换模块包括:运算数值提取单元,用于从第一原始数组和第二原始数组分别包括的数据中提取运算数值,得到第一待计算数组和第二待计算数组;属性数值提取单元,用于从第一原始数组和第二原始数组分别包括的相对应的数据中提取属性数值,得到第一属性数组和第二属性数组,并对第一属性数组和第二属性数组进行格式相关运算,得到乘加结果属性数值。
在一些实施例中,数据乘加运算模块进一步用于:基于第一属性数组和第二属性数组,对第一待计算数组和第二待计算数组分别包括的数据进行乘加运算,得到与乘加结果属性数值表示的数据类型相应的乘加结果数据。
在一些实施例中,第一原始数组和第二原始数组分别包括的数据为浮点型数据;属性数值提取单元包括:第一符号提取子单元,用于从浮点型数据中提取符号位,并将第一原始数组和第二原始数组中相对应的数据的符号进行异或运算,得到乘积的符号;指数提取子单元,用于从浮点型数据中提取指数,并将第一原始数组和第二原始数组中相对应的数据的指数相加,得到乘积的指数;数据乘加运算模块进一步用于:基于所得到的各个乘积符号和的指数,对第一待计算数组和第二待计算数组分别包括的数据进行乘加运算,得到浮点型数据的乘加结果数据。
在一些实施例中,第一原始数组和第二原始数组分别包括的数据为定点型数据;属性数值提取单元包括:第二符号提取子单元,用于从定点型数据中提取符号位,并将第一原始数组和第二原始数组中相对应的数据的符号位进行异或运算,得到乘积的符号;数据乘加运算模块进一步用于:基于所得到的各个乘积的符号,对第一待计算数组和第二待计算数组分别包括的相对应的数据进行乘加运算,得到定点型数据的乘加结果数据。
在一些实施例中,数据乘加运算模块包括:运算控制单元,用于根据预设算法,生成运算控制信号;乘加运算单元,用于基于运算控制信号,利用第一待计算数组和第二待计算数组进行乘加运算,得到乘加结果数据。
在一些实施例中,乘加运算单元包括:数据前处理子单元,用于基于运算控制信号对第一待计算数组和第二待计算数组进行前处理,得到处理后数据;并行累加子单元,用于对处理后数据进行累加计算,得到乘加结果数据。
在一些实施例中,预设算法包括以下任一种:Booth算法、比特蒸馏算法;并行累加子单元包括累加器和以下任一项:与Booth算法对应的Wallace压缩树、与比特蒸馏算法相对应的加法树。
在一些实施例中,数据乘加运算电路还包括缓存模块,用于缓存数据格式转换模块输出的数据。
在一些实施例中,数据乘加运算电路还包括缓存模块,缓存模块包括:运算数值缓存单元,用于缓存运算数值提取单元提取的运算数值;属性数值缓存单元,用于缓存属性数值提取单元提取的属性数值。
根据本公开实施例的另一个方面,提供了一种芯片,该芯片包括上述数据乘加运算电路。
根据本公开实施例的另一个方面,提供了一种计算装置,该计算装置包括上述芯片。
本公开上述实施例提供的数据乘加运算电路,通过数据格式转换模块对输入的数据进行解释重构,将原始数据转换为与数据存储格式无关的数据,然后利用数据乘加运算模块对解释重构后的数据进行并行移位累加,得到乘加结果,实现了快速高效的数值乘加操作,最后按照指定的第二预设表示方式对乘加结果进行格式化,从而生成可以与电路外界进行数据交换的数据,实现了对任意数据存储格式的数据进行大规模乘加运算,采用批处理的数据解释重构,减少了冗余的数据存储格式处理,提高了数据乘加操作的效率。本申请实施例采用的数据乘加运算模块由于进行的是与格式无关的乘加运算,因此,可以兼容多种乘加算法,具有较强的可扩展性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的数据乘加运算电路的结构示意图。
图2是本公开一示例性实施例提供的数据乘加运算电路的另一结构示意图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
申请概述
对于乘加运算单元的设计,目前主要有两种技术方案。一是使用多个简单整数乘加器构建大规模阵列,这种方案对数据位宽灵活性和数据量灵活性的支持较差,也不支持浮点数运算,在使用前需要在计算机上对数据提前进行量化等处理。二是使用通用浮点计算单元循环进行乘加运算,这种方案冗余处理较多,在数据量较大时效率低下。
示例性结构
图1是本公开一示例性实施例提供的数据乘加运算电路的结构示意图。该电路包含的各个组成部分可以集成到一个芯片中,也可以设置到不同的芯片或电路板中,这些芯片或电路板之间建立数据通信的链路。
如图1所示,该电路包括:数据格式转换模块101、数据乘加运算模块102、数据格式化模块103。数据格式转换模块101用于将输入的第一原始数组和第二原始数组分别包括的数据转换为第一预设表示方式的数据,得到第一待计算数组和第二待计算数组。其中,第一预设表示方式是与数据存储格式无关的表示方式。通常,数据类型多种多样,每种类型的数据具有相应的存储格式,例如,对于浮点型数据,其可以包括符号、指数、尾数部分等,第一待计算数组和第二待计算数组可以分别包括浮点型数据的尾数部分,从而使第一待计算数组和第二待计算数组的存储格式与浮点型数据无关。此时,第一预设表示方式可以是将符号、指数和尾数部分单独存储的表示方式,从而在乘加运算时不必对完整的浮点型数据进行浮点型运算。
在本实施例中,数据乘加运算模块102用于基于第一待计算数组和第二待计算数组包括的数据,进行针对第一原始数组和第二原始数组的乘加运算,得到乘加结果数据。数据乘加运算模块102可以包括现有的用于进行乘加运算的电路结构。
例如,第一原始数组和第二原始数组为浮点型数组时,数据乘加运算模块102可以对与存储格式无关的第一待计算数组和第二待计算数组进行乘加运算,并结合符号和指数,利用对浮点型数据进行乘加的规则,得到乘加结果数据。
在本实施例中,数据格式化模块103用于将乘加结果数据转换为第二预设表示方式的数据。其中,第二预设表示方式可以是与数据的格式相关的表示方式。当第一原始数组和第二原始数组为浮点型数组时,第二预设表示方式可以为浮点型数据的存储格式,即将与存储格式无关的乘加结果的存储格式还原为浮点型数据的存储格式。
本公开的上述实施例提供的电路,通过数据格式转换模块对输入的数据进行解释重构,将原始数据转换为与数据存储格式无关的数据,然后利用数据乘加运算模块对解释重构后的数据进行并行移位累加,得到乘加结果,实现了快速高效的数值乘加操作,最后按照指定的第二预设表示方式对乘加结果进行格式化,从而生成可以与电路外界进行数据交换的数据,实现了对任意数据存储格式的数据进行大规模乘加运算,采用批处理的数据解释重构,减少了冗余的数据存储格式处理,提高了数据乘加操作的效率。本申请实施例采用的数据乘加运算模块由于进行的是与格式无关的乘加运算,因此,可以兼容多种乘加算法,具有较强的可扩展性。
在一些可选的实现方式中,如图2所示,数据格式转换模块101包括运算数值提取单元1011和属性数值提取单元1012。
运算数值提取单元1011用于从第一原始数组和第二原始数组分别包括的数据中提取运算数值,得到第一待计算数组和第二待计算数组。其中,运算数值是从原始数据中提取的用于直接进行乘加运算的数值。例如,当第一原始数组和第二原始数组为浮点型数组时,运算数值可以是从数组中的原始数据中提取的补全的尾数。当数组中的原始数据是原码格式时,运算数值可以是数据的绝对值。当数组中的原始数据是补码格式时,运算数值可以是整个补码。提取出的运算数值组成的数组即为第一待计算数组和第二待计算数组。
属性数值提取单元1012用于从第一原始数组和第二原始数组分别包括的相对应的数据中提取属性数值,得到第一属性数组和第二属性数组,并对第一属性数组和第二属性数组进行格式相关运算,得到乘加结果属性数值。其中,属性数值可以是表示原始数据的属性的数值。例如,当原始数据为浮点型数据时,属性数值可以为符号和指数(或称阶码),当原始数据为原码格式时,属性数值为符号。乘加结果属性数值可以是进行乘加运算时表示中间运算结果及最终运算结果的属性的数值。例如相对应的两个数据的乘积的符号和/或指数。
需要说明的是,运算数值提取单元1011和属性数值提取单元1012的数量可以为至少一个,例如,运算数值提取单元1011的数量可以为两个,分别用于对第一原始数组和第二原始数组进行计算。
本实现方式通过设置运算数值提取单元和属性数值提取单元,可以实现将原始数据解析为运算数值和属性数值,从而在进行乘加运算时可以对运算数值进行通用方式的计算,利用属性数值对运算后的乘积进行格式的还原,从而有助于实现与存储格式无关的乘加运算,提高了乘加运算的准确性和效率。
在一些可选的实现方式中,数据乘加运算模块102进一步用于:
基于第一属性数组和所述第二属性数组,对第一待计算数组和第二待计算数组分别包括的数据进行乘加运算,得到与乘加结果属性数值表示的数据类型相应的乘加结果数据。具体地,在进行乘加运算时,可以根据不同类型的属性数值对第一待计算数组和第二待计算数组进行相应方式的运算,从而实现将通用方式计算的乘积准确地还原为原始数组的实际乘积,提高了乘积运算的灵活性,扩展了乘积运算的应用场景。
在一些可选的实现方式中,第一原始数组和第二原始数组分别包括的数据为浮点型数据。
如图2所示,属性数值提取单元1012包括:
指数提取子单元10121,用于从浮点型数据中提取指数,并将第一原始数组和第二原始数组中相对应的数据的指数相加,得到乘积的指数。例如,第一原始数组A和第二原始数组B中相对应的数据为A1和B1,可以将A1的指数与B1的指数相加,得到的和e1即为A1与B1的乘积的指数。
第一符号提取子单元10122,用于从所述浮点型数据中提取符号位,并将所述第一原始数组和所述第二原始数组中相对应的数据的符号位进行异或运算,得到乘积的符号。继续上述示例,A1和B1的积的符号位s1的值即为A1的符号位和B1的符号位的异或运算结果。
基于上述指数提取子单元10121和第一符号提取子单元10122,数据乘加运算模块102进一步用于:
基于所得到的各个乘积的符号和指数,对第一待计算数组和第二待计算数组分别包括的数据进行乘加运算,得到浮点型数据的乘加结果数据。例如,第一原始数组和第二原始数组中相对应的数据为A1和B1,在第一待计算数组和第二待计算数组中与该两个数据分别对应的数据为a1和b1,则可以利用通用的乘法器计算a1与b1的积c1,基于c1和上述e1、s1,可以得到A1和B1的乘积和符号,再利用累加器对得到的各个带符号的乘积进行累加计算,得到浮点型的乘加结果数据。
本实现方式实现了在第一原始数组和第二原始数组为浮点型数组时,对提取的指数、符号和运算数值分别进行相应的运算,再利用运算的结果得到针对浮点型数据的乘加结果数据,从而无需利用现有的通用浮点计算单元循环进行乘加运算,只需利用运算数值进行通用方式的乘法运算和累加运算,减少了冗余数据的处理,提高了对浮点型数据进行乘加运算的效率。
在一些可选的实现方式中,第一原始数组和第二原始数组分别包括的数据为定点型数据。
如图2所示,属性数值提取单元1012包括:
第二符号提取子单元10123,用于从定点型数据中提取符号位,并将第一原始数组和第二原始数组中相对应的数据的符号位进行异或运算,得到乘积的符号。作为示例,第一原始数组A和第二原始数组B中相对应的数据为A1和B1,A1和B1的积的符号位s1的值即为A1的符号位和B1的符号位的异或运算结果。
数据乘加运算模块102进一步用于:
基于所得到的各个乘积的符号,对第一待计算数组和第二待计算数组分别包括的相对应的数据进行乘加运算,得到定点型数据的乘加结果数据。
例如,第一原始数组A和第二原始数组B中相对应的数据为定点型数据A1和B1,在第一待计算数组和第二待计算数组中与该两个数据分别对应的数据为a1和b1,则可以利用通用的乘法器计算a1与b1的积c1,基于c1和上述s1,可以得到A1和B1的乘积和符号,再利用累加器对得到的各个带符号的乘积进行累加计算,得到定点型数据的乘加结果数据。
需要说明的是,第一符号提取子单元10122和第二符号提取子单元10123可以是两个单独的单元,在可以被应用于不同类型的数据时,第一符号提取子单元10122和第二符号提取子单元10123也可以是同一个单元。
本实现方式实现了在第一原始数组和第二原始数组为定点型数组时,对提取的符号和运算数值分别进行相应的运算,再利用运算的结果得到针对定点型数据的乘加结果数据,从而只需利用运算数值进行通用方式的乘法运算和累加运算,无需针对不同的数据类型设置不同的硬件架构,提高了数据乘加运算电路的通用性。
在一些可选的实现方式中,如图2所示,数据乘加运算模块102包括:
运算控制单元1021,用于根据预设算法,生成运算控制信号。可选的,预设算法可以包括但不限于以下任一种:Booth算法、比特蒸馏算法。运算控制信号可以是基于预设算法进行乘加运算时所需的控制信号。需要说明的是,图2中的带箭头实线为数据的流向,带箭头虚线为控制信号流向。可选的,如图2所示,运算控制单元1021还可以生成用于控制数据格式化模块103的控制信号。
乘加运算单元1022,用于基于运算控制信号,利用第一待计算数组和第二待计算数组进行乘加运算,得到乘加结果数据。乘加运算单元1022可以根据不同的预设算法设置相应的硬件架构。例如乘加运算单元可以包括乘法器和累加器,乘法器可以支持不同的算法。
本实现方式通过设置运算控制单元和乘加运算单元,实现了针对不同的预设算法控制乘加运算单元进行不同方式的乘加运算,因此,可以兼容多种乘加算法,具有较强的可扩展性,有助于提高乘加运算的通用性和运算效率。
在一些可选的实现方式中,如图2所示,乘加运算单元1022包括:
数据前处理子单元10221,用于基于运算控制信号对第一待计算数组和第二待计算数组进行前处理,得到处理后数据。可选的,预设算法可以包括但不限于以下任一种:Booth算法、比特蒸馏算法。
作为示例,当预设算法为Booth算法时,运算控制单元1021可以针对第一待计算数组和第二待计算数组包括的数据生成Booth编码,数据前处理子单元10221根据运算控制单元1021生成的Booth编码对运算时的操作数进行相应的移位、取反、置零等操作。当预设算法为比特蒸馏算法时,运算控制单元1021可以根据比特蒸馏算法生成地址,数据前处理子单元10221根据运算控制单元1021生成的地址选取操作数。
并行累加子单元10222,用于对处理后数据进行累加计算,得到乘加结果数据。
可选的,并行累加子单元10222包括但不限于累加器和以下任一项:与Booth算法对应的Wallace压缩树、与比特蒸馏算法相对应的加法树。即,当预设算法为Booth算法时,并行累加子单元10222包括Wallace压缩树,Booth算法与Wallace压缩树和累加器相结合,实现了高效地进行乘加运算。当预设算法为比特蒸馏算法时,并行累加子单元10222包括加法树,比特蒸馏算法与累加器和加法树相结合,同样实现了高效地进行乘加运算。
上述实现方式通过设置数据前处理子单元10221和并行累加子单元10222,实现了在硬件上使乘加运算单元1022支持现有的各种乘加运算方式,提高了乘加运算的通用性和灵活性。
在一些可选的实现方式中,如图2所示,数据乘加运算电路还包括缓存模块104,用于缓存数据格式转换模块输出的数据。通过设置缓存模块,可以实现在大数据量运算的情况下,通过缓存暂时存储数据格式转换模块输出的数据,有助于实现乘加运算的有序执行,提高乘加运算的效率,降低乘加运算发生错误的概率。
在一些可选的实现方式中,如图2所示,为了支持上述可选实现方式中的运算数值提取单元1011和属性数值提取单元1012,缓存模块104可以包括:
运算数值缓存单元1041,用于缓存运算数值提取单元提取的运算数值。
属性数值缓存单元1042,用于缓存属性数值提取单元提取的属性数值。
可选的,与上述指数提取子单元和第一符号提取子单元、第二符号提取子单元相对应,属性数值缓存单元1042可以进一步划分为指数缓存子单元和符号缓存子单元。
通过设置运算数值缓存单元1041和属性数值缓存单元1042,可以实现有针对性地对从原始数据中提取的各种数据进行分类别地缓存,从而在进行乘加运算时,只需从特定的缓存单元中提取相应类型的数据,进一步提高了在大数据量运算时的运算效率。
本公开的实施例还提供了一种芯片,芯片上集成了数据乘加运算电路,数据乘加运算电路的技术细节如图1、图2和相关描述所示,此处不再展开描述。
本公开的实施例还提供了一种计算装置,该计算装置包括上述实施例描述的芯片。此外,该计算装置还可以包括输入装置、输出装置以及必要的存储器等。其中,输入装置可以包括诸如鼠标、键盘、触控屏、通信网络连接器等,用于输入原始数组。输出装置可以包括诸如显示器、打印机、以及通信网络及其所连接的远程输出设备等等,用于输出上述实施例描述的第二预设表示方式的数据。存储器用于存储上述输入装置输入的数据,以及数据乘加运算电路运行过程中产生的数据。存储器可以包括易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的电路。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的电路。用于电路中的方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的电路的功能的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的电路的功能的程序的记录介质。
还需要指出的是,在本公开的电路中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (12)

1.一种数据乘加运算电路,包括:
数据格式转换模块,用于将输入的第一原始数组和第二原始数组分别包括的数据转换为第一预设表示方式的数据,得到第一待计算数组和第二待计算数组,其中,所述第一预设表示方式是与数据存储格式无关的表示方式;
数据乘加运算模块,用于基于所述第一待计算数组和第二待计算数组包括的数据,进行针对所述第一原始数组和所述第二原始数组的乘加运算,得到乘加结果数据;
数据格式化模块,用于将所述乘加结果数据转换为第二预设表示方式的数据。
2.根据权利要求1所述的电路,其中,所述数据格式转换模块包括:
运算数值提取单元,用于从所述第一原始数组和所述第二原始数组分别包括的数据中提取运算数值,得到第一待计算数组和第二待计算数组;
属性数值提取单元,用于从所述第一原始数组和所述第二原始数组分别包括的相对应的数据中提取属性数值,得到第一属性数组和第二属性数组,并对所述第一属性数组和所述第二属性数组进行格式相关运算,得到乘加结果属性数值。
3.根据权利要求2所述的电路,其中,所述数据乘加运算模块进一步用于:
基于所述第一属性数组和所述第二属性数组,对所述第一待计算数组和所述第二待计算数组分别包括的数据进行乘加运算,得到与所述乘加结果属性数值表示的数据类型相应的乘加结果数据。
4.根据权利要求3所述的电路,其中,所述第一原始数组和所述第二原始数组分别包括的数据为浮点型数据;
所述属性数值提取单元包括:
第一符号提取子单元,用于从所述浮点型数据中提取符号位,并将所述第一原始数组和所述第二原始数组中相对应的数据的符号位进行异或运算,得到乘积的符号;
指数提取子单元,用于从所述浮点型数据中提取指数,并将所述第一原始数组和所述第二原始数组中相对应的数据的指数相加,得到乘积的指数;
所述数据乘加运算模块进一步用于:
基于所得到的各个乘积的符号和指数,对所述第一待计算数组和所述第二待计算数组分别包括的数据进行乘加运算,得到浮点型数据的乘加结果数据。
5.根据权利要求3或4所述的电路,其中,所述第一原始数组和所述第二原始数组分别包括的数据为定点型数据;
所述属性数值提取单元包括:
第二符号提取子单元,用于从所述定点型数据中提取符号,并将所述第一原始数组和所述第二原始数组中相对应的数据的符号进行异或运算,得到乘积的符号;
所述数据乘加运算模块进一步用于:
基于所得到的各个乘积的符号,对所述第一待计算数组和所述第二待计算数组分别包括的相对应的数据进行乘加运算,得到定点型数据的乘加结果数据。
6.根据权利要求1所述的电路,其中,所述数据乘加运算模块包括:
运算控制单元,用于根据预设算法,生成运算控制信号;
乘加运算单元,用于基于所述运算控制信号,利用所述第一待计算数组和第二待计算数组进行乘加运算,得到乘加结果数据。
7.根据权利要求6所述的电路,其中,所述乘加运算单元包括:
数据前处理子单元,用于基于所述运算控制信号对所述第一待计算数组和所述第二待计算数组进行前处理,得到处理后数据;
并行累加子单元,用于对所述处理后数据进行累加计算,得到乘加结果数据。
8.根据权利要求7所述的电路,其中,所述预设算法包括以下任一种:Booth算法、比特蒸馏算法;
所述并行累加子单元包括累加器和以下任一项:与所述Booth算法对应的Wallace压缩树、与所述比特蒸馏算法相对应的加法树。
9.根据权利要求1所述的电路,其中,所述数据乘加运算电路还包括缓存模块,用于缓存所述数据格式转换模块输出的数据。
10.根据权利要求2所述的电路,其中,所述数据乘加运算电路还包括缓存模块,所述缓存模块包括:
运算数值缓存单元,用于缓存所述运算数值提取单元提取的运算数值;
属性数值缓存单元,用于缓存所述属性数值提取单元提取的属性数值。
11.一种芯片,其特征在于,包括根据权利要求1-10中任一项所述的数据乘加运算电路。
12.一种计算装置,其特征在于,包括根据权利要求11所述的芯片。
CN202110621616.0A 2021-06-04 2021-06-04 数据乘加运算电路 Active CN113076083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110621616.0A CN113076083B (zh) 2021-06-04 2021-06-04 数据乘加运算电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110621616.0A CN113076083B (zh) 2021-06-04 2021-06-04 数据乘加运算电路

Publications (2)

Publication Number Publication Date
CN113076083A true CN113076083A (zh) 2021-07-06
CN113076083B CN113076083B (zh) 2021-08-31

Family

ID=76617015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110621616.0A Active CN113076083B (zh) 2021-06-04 2021-06-04 数据乘加运算电路

Country Status (1)

Country Link
CN (1) CN113076083B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461176A (zh) * 2022-04-12 2022-05-10 北京象帝先计算技术有限公司 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备
CN116136752A (zh) * 2023-04-19 2023-05-19 上海登临科技有限公司 阵列输入策略的确定方法和系统
CN116185334A (zh) * 2023-04-19 2023-05-30 上海登临科技有限公司 阵列电路的输入控制方法和阵列电路

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1200821A (zh) * 1995-08-31 1998-12-02 英特尔公司 在分组数据上执行乘-加运算的装置
CN102339217A (zh) * 2010-07-27 2012-02-01 中兴通讯股份有限公司 一种浮点数乘加器融合处理装置及方法
CN103294446A (zh) * 2013-05-14 2013-09-11 中国科学院自动化研究所 一种定点乘累加器
CN108595149A (zh) * 2018-04-28 2018-09-28 天津芯海创科技有限公司 可重构乘加运算装置
CN109165732A (zh) * 2018-02-05 2019-01-08 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量乘加指令的方法
CN109871510A (zh) * 2019-01-08 2019-06-11 广东浪潮大数据研究有限公司 二维卷积运算处理方法、系统、设备及计算机存储介质
CN110263923A (zh) * 2019-08-12 2019-09-20 上海燧原智能科技有限公司 张量卷积计算方法及系统
US20200167125A1 (en) * 2018-11-26 2020-05-28 Nvidia Corporation Dynamic directional rounding
CN112286864A (zh) * 2020-12-24 2021-01-29 北京清微智能科技有限公司 加速可重构处理器运行的稀疏化数据处理方法及系统
CN112506467A (zh) * 2018-09-27 2021-03-16 英特尔公司 用于使用操作的混合精度分解的较高精度计算的计算机处理器
CN112711394A (zh) * 2021-03-26 2021-04-27 南京后摩智能科技有限公司 基于数字域存内计算的电路

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1200821A (zh) * 1995-08-31 1998-12-02 英特尔公司 在分组数据上执行乘-加运算的装置
CN102339217A (zh) * 2010-07-27 2012-02-01 中兴通讯股份有限公司 一种浮点数乘加器融合处理装置及方法
CN103294446A (zh) * 2013-05-14 2013-09-11 中国科学院自动化研究所 一种定点乘累加器
CN109165732A (zh) * 2018-02-05 2019-01-08 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量乘加指令的方法
CN108595149A (zh) * 2018-04-28 2018-09-28 天津芯海创科技有限公司 可重构乘加运算装置
CN112506467A (zh) * 2018-09-27 2021-03-16 英特尔公司 用于使用操作的混合精度分解的较高精度计算的计算机处理器
US20200167125A1 (en) * 2018-11-26 2020-05-28 Nvidia Corporation Dynamic directional rounding
CN109871510A (zh) * 2019-01-08 2019-06-11 广东浪潮大数据研究有限公司 二维卷积运算处理方法、系统、设备及计算机存储介质
CN110263923A (zh) * 2019-08-12 2019-09-20 上海燧原智能科技有限公司 张量卷积计算方法及系统
CN112286864A (zh) * 2020-12-24 2021-01-29 北京清微智能科技有限公司 加速可重构处理器运行的稀疏化数据处理方法及系统
CN112711394A (zh) * 2021-03-26 2021-04-27 南京后摩智能科技有限公司 基于数字域存内计算的电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张洁: "高性能微处理器浮点乘加单元的研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461176A (zh) * 2022-04-12 2022-05-10 北京象帝先计算技术有限公司 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备
CN114461176B (zh) * 2022-04-12 2022-07-19 北京象帝先计算技术有限公司 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备
CN116136752A (zh) * 2023-04-19 2023-05-19 上海登临科技有限公司 阵列输入策略的确定方法和系统
CN116185334A (zh) * 2023-04-19 2023-05-30 上海登临科技有限公司 阵列电路的输入控制方法和阵列电路
CN116136752B (zh) * 2023-04-19 2023-06-30 上海登临科技有限公司 阵列输入策略的确定方法和系统

Also Published As

Publication number Publication date
CN113076083B (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
CN113076083B (zh) 数据乘加运算电路
Erle et al. Decimal multiplication with efficient partial product generation
CN110163360B (zh) 一种计算装置及方法
CN111915001B (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
US10949168B2 (en) Compressing like-magnitude partial products in multiply accumulation
CN113853601A (zh) 用于矩阵运算的装置和方法
KR102581403B1 (ko) 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법
CN108733347B (zh) 一种数据处理方法及装置
US11074041B2 (en) Method and system for elastic precision enhancement using dynamic shifting in neural networks
CN111488133A (zh) 高基数近似布斯编码方法和混合基数布斯编码近似乘法器
CN114647399B (zh) 一种低能耗高精度近似并行定宽乘法累加装置
CN110888623A (zh) 数据转换方法、乘法器、加法器、终端设备及存储介质
Lang et al. Very high radix square root with prescaling and rounding and a combined division/square root unit
CN116205244B (zh) 一种数字信号处理结构
TW202319909A (zh) 用於將輸入集相乘之硬體電路及方法,以及非暫時性機器可讀儲存裝置
US20230161555A1 (en) System and method performing floating-point operations
CN114115803B (zh) 一种基于部分积概率分析的近似浮点乘法器
Kang et al. A fast and well-structured multiplier
CN113986194A (zh) 基于预处理的神经网络近似乘法器实现方法及装置
KR20230121151A (ko) 디지털 곱셈기 회로망의 수치 정밀도
CN117472325B (zh) 一种乘法处理器、运算处理方法、芯片及电子设备
US20210334635A1 (en) Neural network accelerator configured to perform operation on logarithm domain
CN117251134A (zh) 神经网络的数据处理方法、装置、存储介质与电子设备
Pohane et al. VLSI Designing of High Speed Parallel Multiplier Accumulator Based on Radix 4 Booths Multiplier
CN113625990A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240430

Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee after: Shanghai Houmo Integrated Circuit Co.,Ltd.

Country or region after: China

Address before: Room 1807, 18th floor, building C, Xingzhi science and Technology Park, 6 Xingzhi Road, economic and Technological Development Zone, Qixia District, Nanjing City, Jiangsu Province, 210046

Patentee before: Nanjing houmo Intelligent Technology Co.,Ltd.

Country or region before: China