CN115034163A - 一种支持两种数据格式切换的浮点数乘加计算装置 - Google Patents
一种支持两种数据格式切换的浮点数乘加计算装置 Download PDFInfo
- Publication number
- CN115034163A CN115034163A CN202210832297.2A CN202210832297A CN115034163A CN 115034163 A CN115034163 A CN 115034163A CN 202210832297 A CN202210832297 A CN 202210832297A CN 115034163 A CN115034163 A CN 115034163A
- Authority
- CN
- China
- Prior art keywords
- circuit
- calculation
- value
- addition
- floating point
- 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
Links
- 238000004364 calculation method Methods 0.000 claims abstract description 212
- 238000009825 accumulation Methods 0.000 claims abstract description 3
- 238000013528 artificial neural network Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/14—Arrangements for performing computing operations, e.g. operational amplifiers for addition or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- 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
-
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/12—Printed circuit boards [PCB] or multi-chip modules [MCM]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Geometry (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Power Engineering (AREA)
- Medical Informatics (AREA)
- Complex Calculations (AREA)
Abstract
一种支持两种数据格式切换的浮点数乘加计算装置,涉及集成电路设计。包括存储介质、输入计算类型配置、计算类型指示电路、乘法计算电路、加法计算电路;存储介质存储待计算16位数值,输入计算类型配置用于发出用户的float16浮点数或bfloat16浮点数两种计算类型的配置;计算类型指示电路接收计算类型的配置,向乘法、加法计算电路指示目前计算属于哪种计算类型;乘法计算电路按指示的计算类型,从存储介质中获取多个待计算16位数值并进行浮点数乘法计算,输出乘法结果;加法计算电路按指示的计算类型,将乘法结果作为输入相加得到乘法累加结果。提高浮点数乘加计算装置的硬件通用性,提高计算效率,节省硬件资源使用。
Description
技术领域
本发明涉及集成电路设计领域,具体是涉及一种支持两种数据格式切换的浮点数乘加计算装置。
背景技术
浮点数是科学计算任务中大量采用的数据类型。浮点数有多种数据格式,常见的格式有IEEE-754标准中定义的标准32位浮点数(简写为float32浮点数)、标准16位浮点数(简写为float16浮点数);也有谷歌公司提出的brainfloat16位浮点数(简写为bfloat16浮点数)。不同浮点数的区别之处在于位数的多少以及符号位、指数位和尾数位数量不同。图1中展示二进制表示下的float32浮点数的数据格式101、float16浮点数的数据格式102和bfloat16位浮点数的数据格式103。上述各个浮点数格式每一个比特位代表的意义都用字母标出,“S”代表该位为符号位,“E”代表该位为指数位,“M”代表该位为尾数位,每个比特位从低到高按照从右到左的顺序排列,下方数字代表该位是第几个比特位编号。图1中展示的float32浮点数的数据格式101,由1位符号位、8位指数位和23位尾数位构成;float16浮点数的数据格式102由1位符号位、5位指数位和10位尾数位构成;bfloat16位浮点数的数据格式103由1位符号位、8位指数位和7位尾数位构成。运用哪一种类型的浮点数需要根据使用领域的需求与特性来决定。比如按照现有经验,数字信号处理计算(如傅里叶变换等)适用float16浮点数。近几年来,人工智能领域中的神经网络计算有越来越高的需求。神经网络计算由于其自身特性,对浮点数类型有要求。由于计算量大,神经网络计算对浮点数乘加计算的计算效率敏感;而神经网络有较强的鲁棒性,对计算数据的精度要求不高。所以,神经网络计算中使用的浮点数的尾数位宽不需要太多。另外,由于神经网络训练过程中数据的指数范围较大,若使用float16浮点数会有数据溢出的问题。综合上面的神经网络计算的需求和特性,bfloat16位浮点数相比float32浮点数有更少的尾数位宽,相比float16浮点数有更多的指数位宽,更加适合神经网络计算使用。实践中,美国谷歌公司的神经网络专用计算设备TPU使用bfloat16位浮点数作为进行乘加操作的数据类型。
数字信号处理计算和神经网络计算适用不同的浮点数类型进行乘加操作,而数字信号处理与人工智能领域有所交集,所以在一些应用场景中需要实现数字信号处理计算也需要实现神经网络计算。这对集成电路设计提出了挑战。有的浮点数乘加计算装置只能单独支持float16浮点数乘加计算或者单独支持bfloat16浮点数乘加计算,无法同时兼容两种数据类型的计算,缺乏通用性。有些集成电路设计为了兼容多种浮点数格式的计算,在送入集成电路前需要使用软件转换浮点数类型。比如TPU计算前会使用XLA编译器把float32浮点数转换成bfloat16再进行计算。通过软件层面的转换可以实现兼容,但是降低计算效率与便捷性。综合上面的情况可知,设计支持数字信号处理和神经网络计算的浮点数乘加计算装置需要在通用性和效率之间取得均衡且存在挑战性。
发明内容
本发明的目的在于针对现有技术存在的上述问题,提供一种支持两种数据格式切换的浮点数乘加计算装置。用户可以配置浮点数乘加计算装置使用bfloat16浮点数格式进行神经网络计算,也可以配置该装置使用float16浮点数进行数字信号处理计算。本发明使一套浮点数乘加计算装置通过不同的配置即可以复用计算电路用于float16浮点数计算任务或用于bfloat16浮点数计算任务。本发明提高浮点数乘加计算装置的硬件通用性,提高浮点数乘加计算装置在完成神经网络计算这一专用领域计算任务时的计算效率,也节省硬件资源的使用。
本发明包括存储介质、输入计算类型配置、计算类型指示电路、乘法计算电路、加法计算电路;所述存储介质与乘法计算电路相连,乘法计算电路与加法计算电路相连,输入计算类型配置和计算类型指示电路相连;计算类型指示电路分别和乘法计算电路、加法计算电路相连;
所述存储介质,用于存储多个待计算16位数值,所述16位数值都是float16浮点数或都是bfloat16浮点数;
所述输入计算类型配置,用于发出用户的float16浮点数或bfloat16浮点数两种计算类型的配置;
所述计算类型指示电路,用于接收float16浮点数或bfloat16浮点数两种计算类型的配置,向乘法计算电路和加法计算电路指示目前的计算属于哪种计算类型;
所述乘法计算电路,用于按计算类型指示电路指示的计算类型,从存储介质中获取多个待计算16位数值并进行浮点数乘法计算,输出乘法结果;
所述加法计算电路,用于按计算类型指示电路指示的计算类型,将乘法结果作为输入相加得到乘法累加结果。
进一步的,所述乘法计算电路包括符号值计算电路、指数值计算电路和尾数值计算电路;所述符号值计算电路,用于接收多个待计算16位数值的符号值并计算符号值中间结果;所述指数值计算电路,用于按计算类型指示电路指示的计算类型,读取存储介质中待计算16位数值的对应位数,计算并输出指数值中间结果;所述尾数值计算电路,用于按计算类型指示电路指示的计算类型,读取存储介质中待计算16位数值的对应位数,计算并输出尾数值中间结果;所述符号值中间结果、指数值中间结果和尾数值中间结果被送到加法计算电路进行下一步处理。
所述存储介质分别和符号值计算电路、指数值计算电路、尾数值计算电路相连;加法计算电路分别与符号值计算电路、指数值计算电路、尾数值计算电路相连;计算类型指示电路分别和指数值计算电路、尾数值计算电路、加法计算电路相连;指数值计算电路和尾数值计算电路相连。
所述符号值计算电路用于接收多个待计算16位数值的符号值并计算符号值中间结果。所述符号值计算电路和存储介质相连接,用于获取存储于存储介质中的多个16位数值的符号位,并进行计算,输出符号值中间结果;符号值计算电路和加法计算电路连接,符号值中间结果被送到加法计算电路进行下一步处理。
所述计算类型指示电路与指数值计算电路、尾数值计算电路、加法计算电路连接,并向指数值计算电路、尾数值计算电路、加法计算电路指示目前的计算属于哪种计算类型,指数值计算电路、尾数值计算电路、加法计算电路根据计算类型指示电路的指示来配置电路以适配float16浮点数或bfloat16浮点数计算。
所述尾数值计算电路与加法计算电路连接;尾数值中间结果被送到加法计算电路进行下一步处理;若尾数值中间结果有产生进位,则向指数值计算电路发送进位信号。
所述指数值计算电路进行指数位两两位异或计算,输出指数值中间结果;指数值计算电路和加法计算电路连接,指数值中间结果被送到加法计算电路进行下一步处理。
所述加法计算电路用于按照计算类型指示电路指示的计算类型,根据符号值中间结果、指数值中间结果和尾数值中间结果计算加法结果,加法计算电路分别和计算类型指示电路、符号值计算电路、指数值计算电路、尾数值计算电路相连接。
所述符号值计算电路、指数值计算电路、尾数值计算电路对浮点数两两进行乘法计算,生成乘法结果,加法计算电路完成加法计算。
与现有技术相比,本发明具有以下突出的技术效果:
1、由于数字信号处理领域与人工智能领域有所交集,本发明在集成电路设计阶段就考虑到float16和bfloat16浮点数乘加操作的实现电路结构,并且保证计算效率。
2、本发明提供一种支持两种数据格式切换的浮点数乘加计算装置,用户可以配置浮点数乘加计算装置使用bfloat16浮点数格式进行神经网络计算,也可以配置该装置使用float16浮点数进行数字信号处理计算。
3、本发明使一套浮点数乘加计算装置通过不同的配置即可以复用计算电路用于float16浮点数计算任务或用于bfloat16浮点数计算任务。
4、本发明提高浮点数乘加计算装置的硬件通用性,提高浮点数乘加计算装置在完成神经网络计算这一专用领域计算任务时的计算效率,也节省硬件资源的使用。
附图说明
图1为float32、float16和bflaot16的数据格式。
图2为一种支持两种数据格式切换的浮点数乘加计算装置。
图3为指数计算电路从存储介质取值。
图4为尾数计算电路从存储介质取值。
具体实施方式
以下实施例将结合附图对本发明作进一步的说明。然而,示例的实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本发明提出一种支持两种数据格式切换的浮点数乘加计算装置,涉及集成电路设计领域。具体而言,用户可以配置浮点数乘加计算装置使用bfloat16浮点数格式进行神经网络计算,也可以配置该装置使用float16浮点数进行数字信号处理计算。
如图2所示,本发明一种支持两种数据格式切换的浮点数乘加计算装置实施例,包括存储介质201、输入计算类型配置202、符号值计算电路203、指数值计算电路204、尾数值计算电路205、计算类型指示电路206以及加法计算电路207。指数值计算电路204、尾数值计算电路205、计算类型指示电路206实现浮点数乘法计算功能。存储介质201分别和符号值计算电路203、指数值计算电路204、尾数值计算电路205相连;加法计算电路207分别和符号值计算电路203、指数值计算电路204、尾数值计算电路205相连;输入计算类型配置202和计算类型指示电路206相连;计算类型指示电路206分别和指数值计算电路204、尾数值计算电路205、加法计算电路207相连;指数值计算电路204和尾数值计算电路205相连。
存储介质201用于存储多个待计算16位数值,这些16位数值都是float16浮点数或者都是bfloat16浮点数。
符号值计算电路203用于接收多个待计算16位数值的符号值并计算符号值中间结果。符号值计算电路203和存储介质201相连接,获取存储于存储介质中的多个16位数值的符号位,并进行计算。若待计算的16位数值有N个(N为偶数正整数),这N个待计算16位数值的符号位两两进行位异或操作:
其中,Sa为第一个待计算16位数值的符号位,Sb为第二个待计算16位数值的符号位,为位异或,So为计算结果输出,其位宽1位。符号值计算电路进行N个待计算16位数值的符号位两两位异或计算,会输出N/2个符号值中间结果。符号值计算电路203和加法计算电路207连接。符号值中间结果被送到加法计算电路207进行下一步处理。
计算类型指示电路206用于接收来自用户的float16浮点数或bfloat16浮点数两种计算类型的配置,上述配置由输入计算类型配置202发出。计算类型指示电路206与指数值计算电路204、尾数值计算电路205、加法计算电路207连接,并向指数值计算电路204、尾数值计算电路205、加法计算电路207指示目前的计算属于哪种计算类型。指数值计算电路204、尾数值计算电路205、加法计算电路207会根据计算类型指示电路的指示来配置电路以适配float16浮点数或bfloat16浮点数计算。
尾数值计算电路205用于按照计算类型指示电路206指示的计算类型,计算多个浮点数相乘的尾数位结果。当计算类型指示电路206指示当前计算类型是flaot16浮点数类型,尾数值计算电路205对在存储介质中的N个16位数值取值,读取每一个数值的第1位到第10位上的数据,该位置是float16浮点数格式的尾数位部分。当计算类型指示电路206指示当前计算类型是bflaot16浮点数类型,尾数值计算电路205对在存储介质201中的N个16位数值取值,读取每一个数值的第1位到第7位上的数据,该位置是bfloat16浮点数格式的尾数位部分。这N个浮点数的尾数位部分按照:
Mo=1+Ma+Mb+Ma×Mb
两两进行计算,其中,Ma是第一个待计算的浮点数的尾数位,Mb是第二个待计算的浮点数的尾数位,Mo是尾数值计算结果。若计算类型是flaot16浮点数类型,Mo的位宽10位。若计算类型是bflaot16浮点数类型,Mo的位宽7位。尾数值计算电路205进行N个待计算16位数值的尾数位两两位计算,会输出N/2个尾数值中间结果。尾数值计算电路205和加法计算电路207连接。尾数值中间结果被送到加法计算电路207进行下一步处理。若尾数值中间结果有产生进位,则向指数值计算电路204发送进位信号。
指数值计算电路204用于按照计算类型指示电路206指示的计算类型,计算多个浮点数相乘的指数位结果。当计算类型指示电路206指示当前计算类型是flaot16浮点数类型,指数值计算电路204对在存储介质201中的N个16位数值取值,读取每一个数值的第11位到第15位上的数据,该位置是float16浮点数格式的指数位部分;当计算类型指示电路206指示当前计算类型是bflaot16浮点数类型,指数值计算电路204对在存储介质201中的N个16位数值取值,读取每一个数值的第8位到第15位上的数据,该位置是bfloat16浮点数格式的指数位部分。这N个浮点数的指数位部分按照两两进行计算:
Eo=(Ea+127)+(Eb-127)+127+n
其中,Ea是第一个待计算的浮点数的指数位,Eb是第二个待计算的浮点数的指数位,n是来自尾数值计算电路205的进位,Eo是指数值计算中间结果。若计算类型是flaot16浮点数类型,Eo的位宽5位。若计算类型是bflaot16浮点数类型,Eo的位宽8位。指数值计算电路进行N个待计算16位数值的指数位两两位异或计算,会输出N/2个指数值中间结果。指数值计算电路204和加法计算电路207连接。指数值中间结果被送到加法计算电路207进行下一步处理。
加法计算电路207,用于按照计算类型指示电路205指示的计算类型,根据符号值中间结果、指数值中间结果和尾数值中间结果计算加法结果。加法计算电路207分别和计算类型指示电路206、符号值计算电路203、指数值计算电路204、尾数值计算电路205相连接。上述的符号值计算电路203、指数值计算电路204、尾数值计算电路205对N个浮点数两两进行乘法计算,生成N/2个乘法结果,用Pn表示,其中n为正整数,表示第几个对乘法结果的输出。加法计算电路207完成加法计算:
Po=P1+P2+...+Pn
其中,Po为加法输出结果。
图3给出指数计算电路304从存储介质301中取值的具体过程。图3中连接线束303连接了存储介质301内部的16位数值存储302和指数值计算电路304,相对较粗的部分表示多条并行线,相对小的细线表示引出单根连接线和16位数值存储302一一对应连接。指数值计算电路304和计算类型指示电路305相连接,受到计算类型指示电路305的控制。16位数值存储302的第8至15位通过连接线束和指数值计算电路304连接,16位数值存储302代表的浮点数格式不确定,可能是float16浮点数也可能是bfloat16浮点数。图3中仅仅展示的是一个16位数值存储302的示意,实际上存储介质301中有多个相同的待计算的16位数值存储302。若计算类型为float16浮点数类型,计算类型指示电路305指示指数值计算电路304按照float16浮点数的数据格式从16位数值存储302的第11位到第15位取值,并进行指数计算。若计算类型为bfloat16浮点数类型,计算类型指示电路305指示指数值计算电路304按照bfloat16浮点数的数据格式从16位数值存储302的第8位到第15位取值,并进行指数计算。
图4示出尾数计算电路404从储介质401取值的具体过程。图4中连接线束403连接存储介质401内部的16位数值存储402和尾数值计算电路404,相对较粗的部分表示多条并行线,相对小的细线表示引出单根连接线和16位数值存储402一一对应连接。尾数值计算电路404和计算类型指示电路405相连接,受到计算类型指示电路405的控制。16位数值存储402的第1至10位通过线束和指数值计算电路404连接,16位数值存储402代表的浮点数格式不确定,可能是float16浮点数也可能是bfloat16浮点数。图4中仅仅展示的是一个16位数值存储402的示意,实际上存储介质401中有多个相同的待计算的16位数值存储402。若计算类型为float16浮点数类型,计算类型指示电路405指示指数值计算电路404按照float16浮点数的数据格式从16位数值存储402的第1位到第10位取值,并进行尾数计算。若计算类型为bfloat16浮点数类型,计算类型指示电路405指示尾数值计算电路404按照bfloat16浮点数的数据格式从16位数值存储402的第1位到第7位取值,并进行尾数计算。
Claims (9)
1.一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于包括存储介质、输入计算类型配置、计算类型指示电路、乘法计算电路、加法计算电路;所述存储介质与乘法计算电路相连,乘法计算电路与加法计算电路相连,输入计算类型配置和计算类型指示电路相连;计算类型指示电路分别和乘法计算电路、加法计算电路相连;
所述存储介质,用于存储多个待计算16位数值,所述16位数值都是float16浮点数或都是bfloat16浮点数;
所述输入计算类型配置,用于发出用户的float16浮点数或bfloat16浮点数两种计算类型的配置;
所述计算类型指示电路,用于接收float16浮点数或bfloat16浮点数两种计算类型的配置,向乘法计算电路和加法计算电路指示目前的计算属于哪种计算类型;
所述乘法计算电路,用于按计算类型指示电路指示的计算类型,从存储介质中获取多个待计算16位数值并进行浮点数乘法计算,输出乘法结果;
所述加法计算电路,用于按计算类型指示电路指示的计算类型,将乘法结果作为输入相加得到乘法累加结果。
2.如权利要求1所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述乘法计算电路包括符号值计算电路、指数值计算电路和尾数值计算电路;所述符号值计算电路,用于接收多个待计算16位数值的符号值并计算符号值中间结果;所述指数值计算电路,用于按计算类型指示电路指示的计算类型,读取存储介质中待计算16位数值的对应位数,计算并输出指数值中间结果;所述尾数值计算电路,用于按计算类型指示电路指示的计算类型,读取存储介质中待计算16位数值的对应位数,计算并输出尾数值中间结果;所述符号值中间结果、指数值中间结果和尾数值中间结果被送到加法计算电路进行下一步处理。
3.如权利要求1或2所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述存储介质分别和符号值计算电路、指数值计算电路、尾数值计算电路相连;加法计算电路分别与符号值计算电路、指数值计算电路、尾数值计算电路相连;计算类型指示电路分别和指数值计算电路、尾数值计算电路、加法计算电路相连;指数值计算电路和尾数值计算电路相连。
4.如权利要求1或2所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述符号值计算电路用于接收多个待计算16位数值的符号值并计算符号值中间结果;所述符号值计算电路和存储介质相连接,用于获取存储于存储介质中的多个16位数值的符号位,并进行计算,输出符号值中间结果;符号值计算电路和加法计算电路连接,符号值中间结果被送到加法计算电路进行下一步处理。
5.如权利要求1或2所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述计算类型指示电路与指数值计算电路、尾数值计算电路、加法计算电路连接,并向指数值计算电路、尾数值计算电路、加法计算电路指示目前的计算属于哪种计算类型,指数值计算电路、尾数值计算电路、加法计算电路根据计算类型指示电路的指示来配置电路以适配float16浮点数或bfloat16浮点数计算。
6.如权利要求1或2所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述尾数值计算电路与加法计算电路连接;尾数值中间结果被送到加法计算电路进行下一步处理;若尾数值中间结果有产生进位,则向指数值计算电路发送进位信号。
7.如权利要求1或2所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述指数值计算电路进行指数位两两位异或计算,输出指数值中间结果;指数值计算电路和加法计算电路连接,指数值中间结果被送到加法计算电路进行下一步处理。
8.如权利要求1或2所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述加法计算电路用于按照计算类型指示电路指示的计算类型,根据符号值中间结果、指数值中间结果和尾数值中间结果计算加法结果,加法计算电路分别和计算类型指示电路、符号值计算电路、指数值计算电路、尾数值计算电路相连接。
9.如权利要求1或2所述一种支持两种数据格式切换的浮点数乘加计算装置,其特征在于所述符号值计算电路、指数值计算电路、尾数值计算电路对浮点数两两进行乘法计算,生成乘法结果,加法计算电路完成加法计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210832297.2A CN115034163B (zh) | 2022-07-15 | 2022-07-15 | 一种支持两种数据格式切换的浮点数乘加计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210832297.2A CN115034163B (zh) | 2022-07-15 | 2022-07-15 | 一种支持两种数据格式切换的浮点数乘加计算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115034163A true CN115034163A (zh) | 2022-09-09 |
CN115034163B CN115034163B (zh) | 2024-07-02 |
Family
ID=83128795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210832297.2A Active CN115034163B (zh) | 2022-07-15 | 2022-07-15 | 一种支持两种数据格式切换的浮点数乘加计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115034163B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115718586A (zh) * | 2022-11-29 | 2023-02-28 | 格兰菲智能科技有限公司 | 像素颜色混合操作方法、图形绘制方法、装置和设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778028A (zh) * | 2014-01-15 | 2015-07-15 | Arm有限公司 | 乘加器 |
CN107168678A (zh) * | 2017-05-09 | 2017-09-15 | 清华大学 | 一种改进的浮点乘加器及浮点乘加计算方法 |
CN111767025A (zh) * | 2020-08-04 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 包括乘累加器的芯片、终端及浮点运算的控制方法 |
CN112712172A (zh) * | 2019-10-25 | 2021-04-27 | 安徽寒武纪信息科技有限公司 | 用于神经网络运算的计算装置、方法、集成电路和设备 |
CN113138750A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 算数逻辑单元、浮点数乘法计算的方法及设备 |
CN114691082A (zh) * | 2020-12-31 | 2022-07-01 | 北京希姆计算科技有限公司 | 乘法器电路、芯片、电子设备及计算机可读存储介质 |
-
2022
- 2022-07-15 CN CN202210832297.2A patent/CN115034163B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778028A (zh) * | 2014-01-15 | 2015-07-15 | Arm有限公司 | 乘加器 |
CN107168678A (zh) * | 2017-05-09 | 2017-09-15 | 清华大学 | 一种改进的浮点乘加器及浮点乘加计算方法 |
CN112712172A (zh) * | 2019-10-25 | 2021-04-27 | 安徽寒武纪信息科技有限公司 | 用于神经网络运算的计算装置、方法、集成电路和设备 |
WO2021078210A1 (zh) * | 2019-10-25 | 2021-04-29 | 安徽寒武纪信息科技有限公司 | 用于神经网络运算的计算装置、方法、集成电路和设备 |
US20220350569A1 (en) * | 2019-10-25 | 2022-11-03 | Anhui Cambricon Information Technology Co., Ltd. | Computing apparatus and method for neural network operation, integrated circuit, and device |
CN113138750A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 算数逻辑单元、浮点数乘法计算的方法及设备 |
CN111767025A (zh) * | 2020-08-04 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 包括乘累加器的芯片、终端及浮点运算的控制方法 |
CN114691082A (zh) * | 2020-12-31 | 2022-07-01 | 北京希姆计算科技有限公司 | 乘法器电路、芯片、电子设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
林伟;周剑扬;: "图像边缘检测高速数字滤波器设计与实现研究", 现代电子技术, no. 06, 25 March 2006 (2006-03-25) * |
王斑;周剑扬;: "基于DSP的AVS IDCT的研究与实现", 中国新通信, no. 05, 5 March 2008 (2008-03-05) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115718586A (zh) * | 2022-11-29 | 2023-02-28 | 格兰菲智能科技有限公司 | 像素颜色混合操作方法、图形绘制方法、装置和设备 |
CN115718586B (zh) * | 2022-11-29 | 2024-01-19 | 格兰菲智能科技有限公司 | 像素颜色混合操作方法、图形绘制方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115034163B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115934030B (zh) | 算数逻辑单元、浮点数乘法计算的方法及设备 | |
CN105468331B (zh) | 独立的浮点转换单元 | |
CN107077416B (zh) | 用于以选择性舍入模式进行向量处理的装置和方法 | |
US6763368B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
TWI383595B (zh) | 用於低密度奇偶校驗解碼器之有效校驗節點訊息轉換近似 | |
CN111538472B (zh) | 一种Posit浮点数的运算处理器以及运算处理系统 | |
KR101718817B1 (ko) | 부동 소수점 데이터와 정수형 데이터 간의 변환장치 및 그 방법 | |
CN111796870A (zh) | 数据格式转换装置、处理器、电子设备及模型运行方法 | |
US6754689B2 (en) | Method and apparatus for performing subtraction in redundant form arithmetic | |
CN108055041B (zh) | 一种数据类型转换电路单元及装置 | |
CN115034163B (zh) | 一种支持两种数据格式切换的浮点数乘加计算装置 | |
CN116594589B (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
US20070055723A1 (en) | Method and system for performing quad precision floating-point operations in microprocessors | |
JPH05224883A (ja) | 浮動小数点n−ビット符号付大きさの2進数を固定小数点m−ビット2の補数表示の2進数に変換するためのシステム | |
CN102004627B (zh) | 乘法舍入实现方法和装置 | |
CN102378960B (zh) | 半导体集成电路和指数计算方法 | |
CN111124361A (zh) | 算术处理装置及其控制方法 | |
CN108334304B (zh) | 数字递归除法 | |
CN113625990B (zh) | 浮点转定点装置、方法、电子设备及存储介质 | |
CN114201140B (zh) | 指数函数处理单元、方法和神经网络芯片 | |
CN112667197B (zh) | 一种基于posit浮点数格式的参数化加减法运算电路 | |
CN111538474B (zh) | 一种Posit浮点数的除法和开方运算处理器及运算处理系统 | |
US5661674A (en) | Divide to integer | |
CN116991359B (zh) | Booth乘法器、混合Booth乘法器及运算方法 | |
CN100410871C (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 |