CN112230881A - 浮点数处理器 - Google Patents

浮点数处理器 Download PDF

Info

Publication number
CN112230881A
CN112230881A CN202011187582.0A CN202011187582A CN112230881A CN 112230881 A CN112230881 A CN 112230881A CN 202011187582 A CN202011187582 A CN 202011187582A CN 112230881 A CN112230881 A CN 112230881A
Authority
CN
China
Prior art keywords
floating point
bit
point number
exponent
floating
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
Application number
CN202011187582.0A
Other languages
English (en)
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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202011187582.0A priority Critical patent/CN112230881A/zh
Publication of CN112230881A publication Critical patent/CN112230881A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4833Logarithmic number system
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Nonlinear Science (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Complex Calculations (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

本发明提供了一种浮点数处理器,包括编解码组件和浮点运算逻辑,编解码组件用于接收标准格式浮点数,并将标准格式浮点数的位宽进行压缩,生成低位宽浮点数,浮点运算逻辑用于对低位宽浮点数进行运算,得到运算结果。本发明能根据不同的标准格式浮点数,得到不同指数位宽的低位宽浮点数,该低位宽浮点数能够满足神经网络算法、图像处理等算法的数据精度要求的同时,避免了浮点数运算功率的浪费。

Description

浮点数处理器
技术领域
本发明属于计算机领域,尤其涉及一种低功耗自由指数域浮点数处理器。
背景技术
近年来,在各领域的应用中对高动态范围的要求逐渐成为重要的一环,相对于定点数而言,等同数据位宽的浮点数具有更高的动态范围,所以浮点数越发受到重视。因此,强大计算系统通常采用浮点数处理器作为主处理器的一部分或者作为协处理器。
浮点数用于近似表示某个实数,其格式通常包括符号位S、指数位E和尾数位M,可表示为{S,E,M},在计算机中为了便于存储,浮点数的幂的基数为2,即浮点数{S,E,M}=(-1)s×(1+M)×2E
浮点数的精度由用于表示尾数的数据位宽界定。尾数数据位宽越大,浮点数的精度越高。现有的通用处理器中,大多采用IEEE 754标准的浮点数进行加、减、乘、除运算。在IEEE 754标准的32位浮点格式中,其具有1位符号位、8位指数位、23位尾数,其中,尾数二进制小数点左方的整数位是隐含的。IEEE 754同时还有一种更高精度、更高动态范围的64位格式。
然而,无论采用何种浮点格式,由于浮点数自身的特点,决定了浮点数的运算更加复杂,因此如何提高浮点数运算速度并降低运算功耗成为现如今硬件设计的核心问题之一。
通用处理器通常局限于单一的浮点数格式,固然这种格式能满足一些应用的精度以及动态范围的需求,然而其他应用可能不需要。例如神经网络算法中,对于指数较大的浮点数(局部诱导域)所需的精度较低;而指数较小的浮点数(权重或者方向传播算法中的权重变化量和梯度)则需要较高精度。因为在神经网络算法中的激活函数是非线性的,如sigmoid、tanh函数,不同精度局部诱导域经过激活函数作用后结果的准确度差别不大,高精度的局部诱导域浮点表示将造成不必要的功耗浪费。同样,权重、方向传播算法中的权重变化量和梯度则需要较高的精度,但是这类数据的是比较小,所需的动态范围较小,即指数较小。
CN200810216631所述的提供的浮动精度的浮点数格式及其运算方法中,浮点数的精度是可变的,但是其指数部分是固定不变。而且此种浮点数格式的数据结构较为复杂,不利于提高浮点运算速率。
CN200780006490所述的可选次精度的浮点数运算器,其中,浮点数的格式是固定不变,提供一个过剩位移除高精度尾数部分功率,从而降低浮点运算功率。然而此种方法中浮点数依然是采用上述的单一浮点数格式表示,将造成一定程度的存储空间及功耗的浪费。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种浮点数处理装置,能够对标准格式的浮点数的位宽进行压缩,生成低位宽的浮点数,从而节省存储空间,还可以降低浮点数运算功耗。
(二)技术方案
本发明提供一种浮点数处理装置,包括:
转换单元,用于接收至少一个第一浮点数,并将至少一个第一浮点数转换为对应数量的第二浮点数,其中,每个第二浮点数包括1位符号位、N位指数位和C-N-1位尾数位,C、N为大于等于1的整数,C为第二浮点数的总位数,N的数值是由至少一个第一浮点数确定的;
运算单元,用于对第二浮点数进行运算,得到运算结果。
(三)有益效果
本发明对标准格式浮点数的位宽进行压缩,生成低位宽浮点数,其中,针对不同的标准格式浮点数,其对应的低位宽浮点数中的指数位宽和尾数位宽是可变的,从而使该低位宽浮点数的精度和动态范围是可变的,该低位宽浮点数能够满足神经网络算法、图像处理等算法的数据精度要求的同时,避免了浮点数运算功率的浪费。
附图说明
图1是本发明实施例提供的浮点数处理装器的示意图。
图2是本发明实施例中标准格式浮点数与低位宽浮点数的示意图。
具体实施方式
本发明提供一种浮点数处理装置,包括转换单元和运算单元,转换单元接收标准格式浮点数,并将标准格式浮点数的位宽进行压缩,生成低位宽浮点数,运算单元对低位宽浮点数进行运算,得到运算结果。本发明能根据不同的标准格式浮点数,得到不同指数位宽的低位宽浮点数,该低位宽浮点数能够满足神经网络算法、图像处理等算法的数据精度要求的同时,避免了浮点数运算功率的浪费。
根据本发明的一种实施方式,浮点数处理装置包括:
转换单元,用于接收一组第一浮点数,并将该组第一浮点数转换为对应数量的第二浮点数,其中,一组第一浮点数中可包括一个或一个以上的第一浮点数,转换后得到相同数量的第二浮点数,每个第一浮点数与每个第二浮点数一一对应,每个所述第二浮点数包括1位符号位、N位指数位和C-N-1位尾数位,C、N为大于等于1的整数,C为第二浮点数的总位数,N的数值是由这组第一浮点数确定的;第一浮点数是标准格式浮点数,第二浮点数是由对标准格式浮点数进行位宽压缩后的低位宽浮点数。
运算单元,用于对第二浮点数进行运算,得到运算结果。
标准格式浮点数包括1位符号位、K1位指数位和K2位尾数位,例如IEEE 754定义的32位标准格式浮点数中,包括1位符号位、8位指数位和23位尾数位;标准格式浮点数的数值V1表达式为:
V1=(-1)S×(1+M)×2E
其中,S为标准格式浮点数的符号位的值、E为标准格式浮点数的K1位指数位的值,M为标准格式浮点数的K2位尾数位的值;
低位宽浮点数中的N的数值为:
N=log2(Emax-Emin)/2,
其中,Emax为一组标准格式浮点数中E的最大值,Emin为一组标准格式浮点数中E的最小值;本发明浮点数转换的原理是,针对一组标准格式浮点数,其指数位的位宽是固定的,但是指数位所对应的数值不尽相同,通过对一组标准格式浮点数中指数位所对应的数值进行分析,得到一个相对平均的指数位数值,根据该数值至少所需的位数,确定低位宽浮点数中指数位的位数N,根据设定的低位宽浮点数的总位数C和1位符号位,可知低位宽浮点数的尾数位为C-N-1位。
以上是对低位宽浮点数中指数位、尾数位的位数的划分,然后需要确定低位宽浮点数中指数位、尾数位的数值。
根据本发明的一种实施方式,低位宽浮点数的符号位等于标准格式浮点数的符号位;低位宽浮点数的C-N-1位尾数位等于标准格式浮点数K2位尾数位中的前C-N-1位;N位指数位的数值E′为:
E′=E-B+A,
其中,B为标准格式浮点数的指数位的偏移量,例如,IEEE 754标准中32位浮点数的偏移量为127。A为低位宽浮点数的指数基数,其表达式为:
A=(Emax+Emin)/2。
根据本发明的一种实施方式,转换单元还用于接收低位宽浮点数,并将低位宽浮点数转换为标准格式浮点数,其中:标准格式浮点数的符号位等于低位宽浮点数的符号位;标准格式浮点数K2位尾数位中的前C-N-1位等于低位宽浮点数的C-N-1位尾数位,后K2+1+N-C位为0;N位指数位的数值E′为:
E′=E-B+A。
根据本发明的一种实施方式,转换单元包括第一寄存器和第二寄存器,第一寄存器用于存储N的数值,第一寄存器用于存储低位宽浮点数的指数基数A的数值。
根据本发明的一种实施方式,浮点数处理装置还包括:存储单元,用于存储标准格式浮点数和低位宽浮点数。其中,存储单元、转换单元、运算单元两两连接,各部件中的浮点数均可双向流通,需要注意的是,运算单元只能对低位宽浮点数进行运算,故其输入输出的数据均是低位宽浮点数。
根据本发明的一种实施方式,浮点数处理装置可以作为一个主处理器或协处理器,其利用一总线可与外部的其他的处理器进行数据交互。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1是本发明实施例提供的浮点数处理器的示意图,如图1所示,浮点数处理器1包括编解码组件2、浮点运算逻辑3和存储器(RAM)4,在本实施例中,采用编解码组件2作为转换单元进行浮点数转换,采用浮点运算逻辑3作为运算单元进行浮点数运算,采用存储器4作为存储单元进行浮点数存储。浮点数处理器外部连接有一外部输入设备5(鼠标/键盘)和总线6,输入设备5可直接向编解码组件2输入标准格式浮点数,浮点数处理器通过总线6可以作为一个主处理器或协处理器,其利用一总线可与外部的其他的处理器进行数据交互。
编解码组件2包含一组配置寄存器(cfg)和一组指数基址寄存器(base)。配置寄存器(cfg)存储有低位宽浮点数的指数位的位数N,用于界定低位宽浮点数的指数和尾数,指数基址寄存器(base)存储有低位宽浮点数的指数基数A的数值,编解码组件2利用两个寄存器中的数值,实现标准格式浮点数和低位宽浮点数的编码(标准格式浮点数到低位宽浮点数的转换)和解码(低位宽浮点数到标准格式浮点数的转换)。
浮点运算逻辑3耦合到数据存储器4和编解码组件2,处理所请求的低位宽浮点数。浮点运算逻辑3将运算结果输出到编解码组件2,编解码组件根据所执行的浮点运算请求将结果输出到存储单元4。
本实施例在神经网络算法中将标准的32位浮点数转换为16位的低位宽浮点数。如图2所示,IEEE 754浮点数标准浮点数格式和16位宽自由指数域浮点数格式的对比,低位宽浮点数对应的配置寄存器值为N,则该浮点数中指数域位宽为N,尾数位宽为15-N。
神经网络算法中,数据计算是按照不同层执行的。在神经网络的一层中,同一类数据的动态范围差别不大。同时,动态范围需求较高的数据对数据精度的要求相对较低,而精度需求较高的数据的动态范围需求较低。因此,采用两组寄存器控制低位宽浮点数的精度和动态范围。例如,一组标准格式浮点数的指数值在[Emin,Emax]区间内,利用公式:N=log2(Emax-Emin)/2,A=(Emax+Emin)/2,可得到配置寄存器(cfg)的值置为N(即分割位在第15-N位),其对应的指数基数寄存器(base)置为A。编码时,将IEEE 754浮点数的指数(减去偏移量127)加上A赋值给所述自由指数域浮点数的[14:15-N]位,并截取IEEE 754浮点数尾数的前15-N位赋值给低位宽浮点数的低15-N位,实现IEEE 754浮点数指数以及尾数到低位宽浮点数的编码。解码时,将IEEE 754浮点数的[14:15-N]减去A再加上127作为IEEE 754浮点数的指数,并在低位宽浮点数的低15-N位后补充N+7个0赋值给IEEE 754浮点数的尾数,实现低位宽浮点数到IEEE 754浮点数的解码。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种浮点数处理器,其特征在于,所述浮点数处理器包括:
编解码组件,用于接收至少一个第一浮点数,并将所述至少一个第一浮点数转换为对应数量的第二浮点数;以及
浮点运算逻辑,用于对所述第二浮点数进行运算,得到运算结果;
其中,所述第一浮点数和所述第二浮点数均包括符号位、指数位和尾数位;所述第二浮点数的位宽小于所述第一浮点数的位宽。
2.根据权利要求1所述的浮点数处理器,其特征在于,每个所述第一浮点数包括1位符号位、K1位指数位和K2位尾数位,所述第一浮点数的数值V1表达式为:
V1=(-1)S×(1+M)×2E
其中,S为所述第一浮点数的符号位的数值、E为所述第一浮点数的K1位指数位的数值,M为所述第一浮点数的K2位尾数位的数值。
3.根据权利要求1所述的浮点数处理器,其特征在于,所述编解码组件用于将所述至少一个第一浮点数转换为对应数量的第二浮点数时,具体用于:
根据所述至少一个第一浮点数,确定对应第二浮点数中指数位的位数、尾数位的位数和符号位的位数,以及确定对应所述第二浮点数中指数位的数值和尾数位的数值,以将所述至少一个第一浮点数转换为对应数量的第二浮点数。
4.根据权利要求3所述的浮点数处理器,其特征在于,所述编解码组件用于根据所述至少一个第一浮点数,确定第二浮点数中指数位的位数、尾数位的位数和符号位的位数,包括:
所述编解码组件接收至少一个第一浮点数,对所述至少一个第一浮点数中的指数位所对应的数值进行分析,获得平均的指数位数值,并根据所述平均的指数位数值所需的位数确定第二浮点数中的指数位的位数N;并根据设定的第二浮点数的总位数C和所述第二浮点数的符号位,确定所述第二浮点数的尾数位;
其中,每个所述第二浮点数包括1位符号位、N位指数位和C-N-1位尾数位,C、N为大于等于1的整数,C为所述第二浮点数的总位数。
5.根据权利要求3或4所述的浮点数处理器,其特征在于,所述第二浮点数中的指数位的位数N为:
N=log2(Emax-Emin)/2,
其中,Emax为至少一个第一浮点数中E的最大值,Emin为至少一个第一浮点数中E的最小值;E为所述第一浮点数的K1位指数位的数值。
6.根据权利要求3-5任一项所述的浮点数处理器,其特征在于,所述编解码组件用于根据所述至少一个第一浮点数,确定所述第二浮点数中指数位的数值和尾数位的数值,包括:
所述编解码组件用于按照如下方式确定N位指数位的数值E′,
E′=E-B+A,
其中,E为所述第一浮点数的K1位指数位的数值,B为标准格式浮点数的指数位的偏移量,A为所述第二浮点数的指数基数,其表达式为:
A=(Emax+Emin)/2,
Emax为至少一个第一浮点数中E的最大值,Emin为至少一个第一浮点数中E的最小值;
所述第二浮点数的C-N-1位尾数位的数值等于第一浮点数K2位尾数位中的前C-N-1位;每个所述第二浮点数的符号位等于所述第一浮点数的符号位。
7.根据权利要求1所述的浮点数处理器,其特征在于,所述编解码组件还用于接收第二浮点数,并将所述第二浮点数转换为第一浮点数。
8.根据权利要求7所述的浮点数处理器,其特征在于,所述编解码组件用于将所述第二浮点数转换为第一浮点数时,具体用于:
将所述第一浮点数的符号位设置为等于所述第二浮点数的符号位;
将所述第一浮点数K2位尾数位中的前C-N-1位的数值设置为等于所述第二浮点数的C-N-1位尾数位,将所述第一浮点数K2位尾数位中的后K2+1+N-C位设置为0;
根据所述第二浮点数的N位指数位的数值E′与所述第一浮点数的K1位指数位的数值E之间的关系E′=E-B+A,确定所述第一浮点数的K1位指数位的数值E。
9.根据权利要求7或8所述的浮点数处理器,其特征在于,所述编解码组件还包括:
至少一个第一寄存器,所述第一寄存器分别用于存储每个所述第二浮点数的指数位的位数N的数值;以及
至少一个第二寄存器,所述第二寄存器分别用于存储每个所述第二浮点数的指数基数A的数值。
10.根据权利要求1-9任一项所述的浮点数处理器,其特征在于,所述浮点数处理器还包括:存储器,用于存储所述第一浮点数和第二浮点数。
11.根据权利要求2或3所述的浮点数处理器,其特征在于,所述浮点数处理器利用一总线与外部处理装置进行数据交互。
12.根据权利要求1所述的浮点数处理器,其特征在于,针对不同不同的标准格式的所述至少一个第一浮点数,所述对应数量的第二浮点数的指数位宽和尾数位宽可变。
13.一种浮点数处理方法,其特征在于,所述方法包括:
接收至少一个第一浮点数,并将所述至少一个第一浮点数转换为对应数量的第二浮点数;以及
对所述第二浮点数进行运算,得到运算结果;
其中,所述第一浮点数和所述第二浮点数均包括符号位、指数位和尾数位;所述第二浮点数的位宽小于所述第一浮点数的位宽。
14.根据权利要求13所述的方法,其特征在于,每个所述第一浮点数包括1位符号位、K1位指数位和K2位尾数位,所述第一浮点数的数值V1表达式为:
V1=(-1)S×(1+M)×2E
其中,S为所述第一浮点数的符号位的数值、E为所述第一浮点数的K1位指数位的数值,M为所述第一浮点数的K2位尾数位的数值。
15.根据权利要求13所述的方法,其特征在于,所述将所述至少一个第一浮点数转换为对应数量的第二浮点数时,包括:
根据所述至少一个第一浮点数,确定对应所述第二浮点数中指数位的位数、尾数位的位数和符号位的位数,以及确定对应所述第二浮点数中指数位的数值和尾数位的数值,以将所述至少一个第一浮点数转换为对应数量的第二浮点数。
16.根据权利要求15所述的方法,其特征在于,所述根据所述至少一个第一浮点数,确定第二浮点数中指数位的位数、尾数位的位数和符号位的位数,包括:
接收至少一个第一浮点数,并对所述至少一个第一浮点数中的指数位所对应的数值进行分析,获得平均的指数位数值;
根据所述平均的指数位数值所需的位数确定第二浮点数中的指数位的位数N;
根据设定的第二浮点数的总位数C和所述第二浮点数的符号位,确定所述第二浮点数的尾数位;
其中,每个所述第二浮点数包括1位符号位、N位指数位和C-N-1位尾数位,C、N为大于等于1的整数,C为所述第二浮点数的总位数。
17.根据权利要求15或16所述的方法,其特征在于,所述第二浮点数中的指数位的位数N为:
N=log2(Emax-Emin)/2,
其中,Emax为至少一个第一浮点数中E的最大值,Emin为至少一个第一浮点数中E的最小值;E为所述第一浮点数的K1位指数位的数值。
18.根据权利要求15-17任一项所述的方法,其特征在于,所述根据所述至少一个第一浮点数,确定所述第二浮点数中指数位的数值和尾数位的数值,包括:
按照如下方式确定N位指数位的数值E′,
E′=E-B+A,
其中,E为所述第一浮点数的K1位指数位的数值,B为标准格式浮点数的指数位的偏移量,A为所述第二浮点数的指数基数,其表达式为:
A=(Emax+Emin)/2,
Emax为至少一个第一浮点数中E的最大值,Emin为至少一个第一浮点数中E的最小值;
所述第二浮点数的C-N-1位尾数位的数值等于第一浮点数K2位尾数位中的前C-N-1位;每个所述第二浮点数的符号位等于所述第一浮点数的符号位。
19.根据权利要求13所述的方法,其特征在于,所述方法还包括:
接收第二浮点数,并将所述第二浮点数转换为第一浮点数。
20.根据权利要求19所述的方法,其特征在于,所述将所述第二浮点数转换为第一浮点数,包括:
将所述第一浮点数的符号位设置为等于所述第二浮点数的符号位;
将所述第一浮点数K2位尾数位中的前C-N-1位的数值设置为等于所述第二浮点数的C-N-1位尾数位,将所述第一浮点数K2位尾数位中的后K2+1+N-C位设置为0;
根据所述第二浮点数的N位指数位的数值E′与所述第一浮点数的K1位指数位的数值E之间的关系E′=E-B+A,确定所述第一浮点数的K1位指数位的数值E。
CN202011187582.0A 2016-01-20 2016-01-20 浮点数处理器 Pending CN112230881A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011187582.0A CN112230881A (zh) 2016-01-20 2016-01-20 浮点数处理器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011187582.0A CN112230881A (zh) 2016-01-20 2016-01-20 浮点数处理器
CN201610038994.5A CN106990937B (zh) 2016-01-20 2016-01-20 一种浮点数处理装置和处理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201610038994.5A Division CN106990937B (zh) 2016-01-20 2016-01-20 一种浮点数处理装置和处理方法

Publications (1)

Publication Number Publication Date
CN112230881A true CN112230881A (zh) 2021-01-15

Family

ID=59361349

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011187582.0A Pending CN112230881A (zh) 2016-01-20 2016-01-20 浮点数处理器
CN201610038994.5A Active CN106990937B (zh) 2016-01-20 2016-01-20 一种浮点数处理装置和处理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610038994.5A Active CN106990937B (zh) 2016-01-20 2016-01-20 一种浮点数处理装置和处理方法

Country Status (3)

Country Link
US (1) US10574260B2 (zh)
CN (2) CN112230881A (zh)
WO (1) WO2017124645A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112230881A (zh) * 2016-01-20 2021-01-15 中科寒武纪科技股份有限公司 浮点数处理器
CN108229648B (zh) * 2017-08-31 2020-10-09 深圳市商汤科技有限公司 匹配存储器中数据位宽的卷积计算方法和装置、设备、介质
US10949766B2 (en) * 2017-10-15 2021-03-16 Gsi Technology Inc. Precise exponent and exact softmax computation
US11455766B2 (en) * 2018-09-18 2022-09-27 Advanced Micro Devices, Inc. Variable precision computing system
CN109583579B (zh) * 2018-11-30 2021-04-09 上海寒武纪信息科技有限公司 计算装置及相关产品
JP2020098469A (ja) * 2018-12-18 2020-06-25 富士通株式会社 演算処理装置および演算処理装置の制御方法
CN109389212B (zh) * 2018-12-30 2022-03-25 南京大学 一种面向低位宽卷积神经网络的可重构激活量化池化系统
US11080017B2 (en) * 2019-02-21 2021-08-03 Micron Technology, Inc. Host-based bit string conversion
CN109947391B (zh) * 2019-03-11 2023-08-01 合芯科技(苏州)有限公司 一种数据处理方法和装置
CN110888623B (zh) * 2019-11-25 2021-11-23 集美大学 数据转换方法、乘法器、加法器、终端设备及存储介质
CN111313905B (zh) * 2020-02-24 2023-10-13 南京大学 一种浮点数转换方法及装置
CN111310909B (zh) * 2020-02-24 2024-02-13 南京大学 一种浮点数转换电路
CN111313906B (zh) * 2020-03-03 2023-11-07 南京大学 一种浮点数的转换电路
CN111340207B (zh) * 2020-03-03 2023-12-15 南京大学 浮点数转换方法及装置
CN111538473B (zh) * 2020-04-27 2023-05-30 西安交通大学 一种Posit浮点数处理器
US11188329B1 (en) * 2020-06-24 2021-11-30 Micron Technology, Inc. Dynamic precision bit string accumulation
US10903849B1 (en) * 2020-07-20 2021-01-26 Micron Technology, Inc. Bit string compression
CN112114874B (zh) * 2020-08-20 2021-10-15 北京百度网讯科技有限公司 数据处理方法、装置、电子设备和存储介质
GB2600915B (en) * 2020-10-07 2023-02-15 Graphcore Ltd Floating point number format
WO2023029464A1 (zh) * 2021-08-31 2023-03-09 上海商汤智能科技有限公司 数据处理装置、方法、芯片、计算机设备及存储介质
WO2023035053A1 (en) * 2021-09-08 2023-03-16 Huawei Technologies Co., Ltd. Method and system for emulating a floating-point unit
CN113805844B (zh) * 2021-09-14 2024-04-09 北京升哲科技有限公司 一种数据处理方法、装置、电子设备及存储介质
CN117200802A (zh) * 2022-12-28 2023-12-08 山东华科信息技术有限公司 用于电网边缘计算层的数据压缩系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4617641A (en) * 1983-10-19 1986-10-14 Hitachi, Ltd. Operation unit for floating point data having a variable length exponent part
US5805486A (en) * 1995-11-28 1998-09-08 Intel Corporation Moderately coupled floating point and integer units
US7330864B2 (en) * 2001-03-01 2008-02-12 Microsoft Corporation System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations
US7949695B2 (en) * 2004-10-27 2011-05-24 Via Technologies Inc. Two's complement circuit
US8880571B2 (en) * 2006-05-05 2014-11-04 Microsoft Corporation High dynamic range data format conversions for digital media
CN100535851C (zh) * 2007-11-16 2009-09-02 中国科学院计算技术研究所 一种浮点数据转换装置和方法
US8346828B2 (en) * 2008-10-14 2013-01-01 International Business Machines Corporation System and method for storing numbers in first and second formats in a register file
EP2309648A1 (en) * 2009-09-14 2011-04-13 Thomson Licensing Method for encoding floating-point data, method for decoding floating-point data, and corresponding encoder and decoder
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data
GB2488322B (en) * 2011-02-22 2017-09-20 Advanced Risc Mach Ltd Number format pre-conversion instructions
JP5734717B2 (ja) * 2011-03-24 2015-06-17 セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー 浮動小数点数のビット長変換回路およびそれを用いた振動補正制御回路
US9628107B2 (en) * 2014-04-07 2017-04-18 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
CN108427990B (zh) * 2016-01-20 2020-05-22 中科寒武纪科技股份有限公司 神经网络计算系统和方法
CN112230881A (zh) * 2016-01-20 2021-01-15 中科寒武纪科技股份有限公司 浮点数处理器
US10643297B2 (en) * 2017-05-05 2020-05-05 Intel Corporation Dynamic precision management for integer deep learning primitives

Also Published As

Publication number Publication date
US10574260B2 (en) 2020-02-25
WO2017124645A1 (zh) 2017-07-27
CN106990937A (zh) 2017-07-28
CN106990937B (zh) 2020-10-20
US20180262205A1 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
CN106990937B (zh) 一种浮点数处理装置和处理方法
WO2021147395A1 (zh) 算数逻辑单元、浮点数乘法计算的方法及设备
EP1857925B1 (en) Method and apparatus for decimal number multiplication using hardware for binary number operations
CN112639722A (zh) 加速矩阵乘法的装置和方法
US20210182026A1 (en) Compressing like-magnitude partial products in multiply accumulation
CN112506935A (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN109144473B (zh) 一种基于冗余odds数的十进制3:2压缩器结构
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
CN114461176B (zh) 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备
CN110187866B (zh) 一种基于双曲cordic的对数乘法计算系统及方法
CN110222305B (zh) 一种基于双曲cordic的对数函数计算系统及方法
US7814138B2 (en) Method and apparatus for decimal number addition using hardware for binary number operations
CN116700663A (zh) 一种浮点数处理方法及装置
Lyu et al. PWL-based architecture for the logarithmic computation of floating-point numbers
US20230305803A1 (en) Method for Processing Floating Point Number and Related Device
US9720648B2 (en) Optimized structure for hexadecimal and binary multiplier array
WO2023029464A1 (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
CN116700664A (zh) 一种确定浮点数平方根的方法及装置
CN115268832A (zh) 浮点数取整的方法、装置以及电子设备
CN112860218B (zh) 用于fp16浮点数据和int8整型数据运算的混合精度运算器
CN112558918B (zh) 用于神经网络的乘加运算方法和装置
CN116700666A (zh) 一种浮点数处理方法及装置
Schulte et al. Performance evaluation of decimal floating-point arithmetic
Sasidharan et al. VHDL Implementation of IEEE 754 floating point unit
JP2018129040A (ja) 数学的関数を計算するためのシステムおよび方法

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