CN111796798A - 一种定点与浮点转换器、处理器、方法以及存储介质 - Google Patents

一种定点与浮点转换器、处理器、方法以及存储介质 Download PDF

Info

Publication number
CN111796798A
CN111796798A CN202010931697.XA CN202010931697A CN111796798A CN 111796798 A CN111796798 A CN 111796798A CN 202010931697 A CN202010931697 A CN 202010931697A CN 111796798 A CN111796798 A CN 111796798A
Authority
CN
China
Prior art keywords
point
point data
floating
value
data
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
CN202010931697.XA
Other languages
English (en)
Other versions
CN111796798B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010931697.XA priority Critical patent/CN111796798B/zh
Publication of CN111796798A publication Critical patent/CN111796798A/zh
Application granted granted Critical
Publication of CN111796798B publication Critical patent/CN111796798B/zh
Priority to PCT/CN2021/106761 priority patent/WO2022052625A1/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/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
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (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

一种定点与浮点转换器、处理器、方法以及存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种定点与浮点转换器、一种定点与浮点的图形处理器、一种定点与浮点的中央处理器、一种定点与浮点转换方法以及计算机可读存储介质。
背景技术
定点转浮点处理单元作为基本的数据处理单元,被广泛应用于计算机学、通讯、人工智能等多个领域。所熟知的图形处理器(Graphics Processing Unit, GPU)、中央处理器(central processing unit ,CPU)、或者大规模人工智能(Artificial Intelligence,AI)芯片里均包含若干个定点转浮点处理单元,作为一个基础的组件,其重要性显然易见。
在现有技术中,定点转浮点处理单元需要设定定点数据的数据格式,例如纯小数或纯整数,则定点数据转浮点数据的首要条件是定点数据为特定格式,若定点数据的格式与预先规定的格式不同,就无法转换,可知应用时,现有技术的通用性不佳。
发明内容
本申请实施例提供了一种定点与浮点转换器、一种定点与浮点的图形处理器、一种定点与浮点的中央处理器、一种定点与浮点转换方法以及计算机可读存储介质,可以提高定点数据转浮点数据的通用性。
一方面,本申请实施例提供了一种定点与浮点转换器,定点与浮点转换器包括输入模块、左向搜索模块、右向搜索模块、浮点模块;
输入模块,用于获取目标定点数据,将目标定点数据分别输入左向搜索模块和右向搜索模块;
左向搜索模块,用于从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索;
右向搜索模块,用于从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索;
浮点模块,用于若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据;
浮点模块,还用于若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据。
另一方面,本申请实施例提供了一种定点与浮点转换方法,该方法由上述的定点与浮点转换器来执行,方法包括:
获取目标定点数据,将目标定点数据输入左向搜索模块和右向搜索模块;
在左向搜索模块中,从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索;
在右向搜索模块中,从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索;
若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据;
若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据。
其中,定点与浮点转换器包括至少两个浮点精度格式,至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1, n为正整数;
若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据,包括:
若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据以及第一指数偏移值,截取针对目标定点数据的第一尾数数据;
若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,获取至少两个浮点精度格式分别对应的标准偏移值,根据第一指数偏移值以及至少两个标准偏移值,分别编码针对目标定点数据的至少两个第一目标指数;
根据目标定点数据对应的符号位、至少两个第一目标指数以及第一尾数数据,分别生成目标定点数据对应的至少两个浮点数据;至少两个浮点数据包括浮点数据Fn以及浮点数据Fn+1,其中,浮点数据Fn的浮点精度格式为浮点精度格式An,浮点数据Fn+1的浮点精度格式为浮点精度格式An+1
其中,定点与浮点转换器包括至少两个浮点精度格式,至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1, n为正整数;
若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据,包括:
若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据以及第二指数偏移值,截取针对目标定点数据的第二尾数数据;
若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,获取至少两个浮点精度格式分别对应的标准偏移值,根据第二指数偏移值以及至少两个标准偏移值,分别编码针对目标定点数据的至少两个第二目标指数;
根据目标定点数据对应的符号位、至少两个第二目标指数以及第二尾数数据,分别生成目标定点数据对应的至少两个浮点数据;至少两个浮点数据包括浮点数据Dn以及浮点数据Dn+1,其中,浮点数据Dn的浮点精度格式为浮点精度格式An,浮点数据Dn+1的浮点精度格式为浮点精度格式An+1
其中,方法还包括:
获取针对目标定点数据的数据转换指令;数据转换指令携带目标浮点精度格式,至少两个浮点精度格式包括目标浮点精度格式;
根据目标浮点精度格式,从至少两个浮点数据中确定目标浮点数据,对目标浮点数据进行输出;目标浮点数据的浮点精度格式为目标浮点精度格式。
其中,从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索,包括:
从目标定点数据的小数点位置开始,沿整数方向获取目标定点数据的左向搜索范围;左向搜索范围包括左向起始数值,左向起始数值是指在左向搜索范围中,与目标定点数据的小数点距离最近的数值;
从左向起始数值开始沿整数方向,对左向搜索范围内的每个左向数值进行遍历;
根据左向遍历结果搜索整数前导值。
其中,左向遍历结果包括左向数值Zi,i为正整数,且i小于或等于左向搜索范围中的左向数值的总数量,左向数值Zi包括左向起始数值;
根据左向遍历结果搜索整数前导值,包括:
若左向遍历结果中的左向数值Zi均不等于默认数值,则确定左向搜索范围不包括整数前导值;整数前导值的数值等于默认数值;
若左向遍历结果中存在左向数值Zi等于默认数值,则确定左向搜索范围包括整数前导值,获取等于默认数值的左向数值Zi的左向位置信息Li
根据左向位置信息Li中距离初始位置最远的左向位置信息,确定第一指数偏移值;初始位置为目标定点数据的小数点位置。
其中,从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索,包括:
从目标定点数据的小数点位置开始,沿小数方向获取目标定点数据的右向搜索范围;右向搜索范围包括右向起始数值,右向起始数值是指在右向搜索范围中,与目标定点数据的小数点距离最近的数值;
从右向起始数值开始沿小数方向,对右向搜索范围内的每个右向数值进行遍历;
根据右向遍历结果搜索小数前导值。
其中,右向遍历结果包括右向数值Yj,j为正整数,且j小于或等于右向搜索范围中的右向数值的总数量,右向数值Yj包括右向起始数值;
根据右向遍历结果搜索小数前导值,包括:
若右向遍历结果中的右向数值Yj均不等于默认数值,则确定右向搜索范围不包括小数前导值;小数前导值的数值等于默认数值;
若右向遍历结果中存在右向数值Yj等于默认数值,则确定右向搜索范围包括小数前导值,获取等于默认数值的右向数值Yj的右向位置信息Cj
根据右向位置信息Cj中距离初始位置最近的右向位置信息,确定第二指数偏移值;初始位置为目标定点数据的小数点位置。
其中,还包括:
获取待处理定点数据,将待处理定点数据输入格式转换模块;
在格式转换模块中,获取待处理定点数据的初始符号位,并将未包括初始符号位的待处理定点数据转换为二进制定点数据;
根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据,将初始符号位确定为目标定点数据对应的符号位。
其中,方法还包括:
将二进制定点数据输入异常调整模块,在异常调整模块中对二进制定点数据进行数据状态检测;
若二进制定点数据的数据状态为数据正常状态,则通知格式转换模块根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据;
若二进制定点数据的数据状态为数据异常状态,则对二进制定点数据进行异常调整,通知格式转换模块根据初始符号位对异常调整后的二进制定点数据进行转换处理,生成目标定点数据。
其中,根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据,包括:
若初始符号位的极性为0,则将二进制定点数据确定为目标定点数据,
若初始符号位的极性为1,则对二进制定点数据进行补码处理,得到补码处理之后的二进制定点数据,将补码处理之后的二进制定点数据确定为目标定点数据。
再一方面,本申请实施例提供了一种定点转浮点的图形处理器,该定点转浮点的图形处理器中包括有上述的定点与浮点转换器。
再一方面,本申请实施例提供了一种定点转浮点的中央处理器,该定点转浮点的中央处理器包括有上述的定点与浮点转换器。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令被处理器执行时,以执行本申请实施例中的方法。
本申请实施例中的定点与浮点转换器设置有输入模块、左向搜索模块、右向搜索模块、浮点模块,通过输入模块可以获取定点与浮点转换器内部或外部的目标定点数据,将该目标定点数据分别输入上述的左向搜索模块以及上述的右向搜索模块,上述的左向搜索模块以及右向搜索模块是并行设置的,因此可以同时搜索目标定点数据转换成与之对应的浮点数据的指数偏移值,具体过程可以如下:左向搜索模块从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索,同时,右向搜索模块从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索;若左向搜索模块搜索到整数前导值,那么浮点模块可以获取到左向搜索模块输出的针对整数前导值的第一指数偏移值,则可以根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据;若左向搜索模块未搜索到整数前导值,那么浮点模块根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据,第二指数偏移值是指右向搜索模块所输出的针对小数前导值的指数偏移值。上述可知,本申请实施例通过上述的左向搜索模块以及右向搜索模块,可以并行搜索指数偏移值(包括第一指数偏移值以及第二指数偏移值),并行搜索可以提高获取指数偏移值的速度,且并行搜索可以满足不同类型的目标定点数据,提高了定点数据转浮点数据的通用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种定点与浮点转换器的结构示意图;
图1b是本申请实施例提供的一种左向搜索模块的结构示意图;
图1c是本申请实施例提供的一种右向搜索模块的结构示意图;
图2是本申请实施例提供的一种定点与浮点转换器的结构示意图;
图3a是本申请实施例提供的一种定点数据转换成浮点数据的转换示意图;
图3b是本申请实施例提供的一种定点数据格式转换的场景示意图;
图3c是本申请实施例提供的一种定点数据转换成浮点数据的转换示意图;
图4是本申请实施例提供的一种定点转浮点的图形处理器;
图5是本申请实施例提供的一种定点转浮点的中央处理器;
图6是本申请实施例提供的一种定点与浮点转换方法。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,首先对部分名词进行以下简单解释:
1、芯片:指内含集成电路的硅片,体积很小,常常是计算机或其他电子设备的重要组成部分。
2、定点数:小数点固定的数,可以表示整数,小数,例如5,2.13。
3、浮点数:小数点非固定的数,可以表示的数据范围广,包含单精度数,双精度数等,浮点数利用科学计数法来表达实数,即用一个尾数(Mantissa ),一个基数(Base),一个指数(Exponent)以及一个表示正负的符号来表达实数。例如 123.45 用十进制科学计数法可以表示为 1.2345 × 102,其中 1.2345 为尾数,10 为基数,2 为指数,还可以表示为12.345 × 10 ,其中 12.345 为尾数,10 为基数,1为指数。浮点数利用指数达到了浮动小数点的效果,从而可以灵活地表达更大范围的实数。
4、中央处理器(central processing unit, CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
5、图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
请参见图1a,图1a是本申请实施例提供的一种定点与浮点转换器的结构示意图。如图1a所示,定点与浮点转换器可以包括:输入模块101、左向搜索模块102、右向搜索模块103、浮点模块104,其中,
输入模块101,用于获取目标定点数据,将目标定点数据分别输入左向搜索模块和右向搜索模块。
具体的,目标定点数据是指未携带符号位的二进制数,该二进制数可以是纯整数、纯小数以及携带小数的整数,例如10001、0.111、1001.11。未携带符号位的10001表示的十进制数为17,十进制数-15亦可以用二进制数10001表示,此时,二进制数10001中最高位的1表示该二进制数为负数。
左向搜索模块102,用于从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索。
具体的,整数前导值是指整数部分最高位的1,根据输入的目标定点数据的小数点位置,左向搜索模块102向左(即整数方向)快速搜索找到整数前导值的位置,并确定整数前导值相对于目标定点数据的小数点位置所对应的位置信息。例如目标定点数据为1001.11,左向搜索模块102向左搜索整数前导值,可以确定整数前导值位于千位上,那么整数前导值的位置信息为向左偏移3。
右向搜索模块103,用于从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索。
具体的,小数前导值是指小数部分最高位的1,根据输入的目标定点数据的小数点位置,右向搜索模块103向右(即小数方向)快速搜索找到小数前导值的位置,并确定小数前导值相对于目标定点数据的小数点位置所对应的位置信息。例如目标定点数据为0.011,右向搜索模块103向右搜索小数前导值,可以确定小数前导值位于百分位上,那么小数前导值的位置信息为向右偏移2。
浮点模块104,用于若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据。
浮点模块104,还用于若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据。
在一种实施方式中,请一并参见图1b,图1b是本申请实施例提供的一种左向搜索模块的结构示意图。如图1b所示,左向搜索模块102可以包括左向获取单元1021、第一遍历单元1022以及第一搜索单元1023,其中,
左向获取单元1021,用于从目标定点数据的小数点位置开始,沿整数方向获取目标定点数据的左向搜索范围;左向搜索范围包括左向起始数值,左向起始数值是指在左向搜索范围中,与目标定点数据的小数点距离最近的数值。
具体的,首先获取搜索的起始位置,即目标定点数据的小数点位置,从起始位置的左边得到左向搜索范围,例如目标定点数据100.001的左向搜索范围为100。
第一遍历单元1022,用于从左向起始数值开始沿整数方向,对左向搜索范围内的每个左向数值进行遍历。
第一搜索单元1023,用于根据左向遍历结果搜索整数前导值。
具体的,由左向获取单元1021可知,目标定点数据100.001的左向搜索范围为100,左向数值包括1、0以及0,将每个左向数值与整数前导值进行对比,根据对比结果可以确定第一指数偏移值,目标定点数据100.001的第一指数偏移值为2。
上述可知,遍历每个左向数值,即可确定第一指数偏移值,左向获取单元1021、第一遍历单元1022以及第一搜索单元1023的实现过程的示例代码可以参见如下描述:
for(i=start1;i≤end1;i=i+1){
if(data[end1:start1]=index){
exp=baseleft+i-start1;
search_sucess=1;
break;
}
else
index=index*2;
search_success=0;
}
其中,data[start1]表示左向起始数值,index表示整数前导值(即1)。
在一种实施方式中,左向遍历结果包括左向数值Zi,i为正整数,且i小于或等于左向搜索范围中的左向数值的总数量,左向数值Zi包括左向起始数值;其中,
第一搜索单元1023,具体用于若左向遍历结果中的左向数值Zi均不等于默认数值,则确定左向搜索范围不包括整数前导值;整数前导值的数值等于默认数值。例如,目标定点数据0.0011中的左向搜索范围不包括整数前导值(即1),则第一搜索单元1023可以确定左向搜索范围不包括整数前导值。
第一搜索单元1023,具体用于若左向遍历结果中存在左向数值Zi等于默认数值,则确定左向搜索范围包括整数前导值,获取等于默认数值的左向数值Zi的左向位置信息Li;例如,目标定点数据100.0011中的左向搜索范围包括100,且百位上是1,则第一搜索单元1023可以确定左向搜索范围包括整数前导值,获取左向数值Z3的左向位置信息(即百位位置)。
第一搜索单元1023,具体用于根据左向位置信息Li中距离初始位置最远的左向位置信息,确定第一指数偏移值;初始位置为目标定点数据的小数点位置;目标定点数据100.0011的第一指数偏移值为2,得到浮点数1.000011*22
在一种实施方式中,请一并参见图1c,图1c是本申请实施例提供的一种右向搜索模块的结构示意图。如图1c所示,右向搜索模块103可以包括右向获取单元1031、第二遍历单元1032以及第二搜索单元1033,其中,
右向获取单元1031,用于从目标定点数据的小数点位置开始,沿小数方向获取目标定点数据的右向搜索范围;右向搜索范围包括右向起始数值,右向起始数值是指在右向搜索范围中,与目标定点数据的小数点距离最近的数值。
具体的,首先获取搜索的起始位置,即目标定点数据的小数点位置,从起始位置的右边得到右向搜索范围,例如目标定点数据0.00110的右向搜索范围为00110。
第二遍历单元1032,用于从右向起始数值开始沿小数方向,对右向搜索范围内的每个右向数值进行遍历。
第二搜索单元1033,用于根据右向遍历结果搜索小数前导值。
具体的,由右向获取单元1031可知,目标定点数据0.00110的右向搜索范围为00110,将每个右向数值与小数前导值进行对比,根据对比结果可以确定第二指数偏移值,目标定点数据0.00110的第二指数偏移值为-3。
上述可知,遍历每个右向数值,即可确定第二指数偏移值,右向获取单元1031、第一遍历单元1032以及第一搜索单元1033的实现过程的示例代码可以参见如下描述:
index=1;
for(i=start2;i≤end2;i=i+1){
if(data[end2:start2]=index){
exp=baseright+i-start2;
search_sucess=1;
break;
}
else
index=index*2;
search_success=0;
}
其中,data[start2]表示右向起始数值,index表示小数前导值(即1)。
在一种实施方式中,右向遍历结果包括右向数值Yj,j为正整数,且j小于或等于右向搜索范围中的右向数值的总数量,右向数值Yj包括右向起始数值;其中,
第二搜索单元1033,具体用于若右向遍历结果中的右向数值Yj均不等于默认数值,则确定右向搜索范围不包括小数前导值;小数前导值的数值等于默认数值;例如,目标定点数据1100不存在右向搜索范围,或者说右向搜索范围为0,即不包括小数前导值(即1)。
第二搜索单元1033,具体用于若右向遍历结果中存在右向数值Yj等于默认数值,则确定右向搜索范围包括小数前导值,获取等于默认数值的右向数值Yj的右向位置信息Cj;目标定点数据0.00110的右向搜索范围为00110,且千分位以及万分位均为1,则可以确定右向搜索范围包括小数前导值。
第二搜索单元1033,具体用于根据右向位置信息Cj中距离初始位置最近的右向位置信息,确定第二指数偏移值;初始位置为目标定点数据的小数点位置;将每个右向数值与小数前导值进行对比,根据对比结果可以确定第二指数偏移值,目标定点数据0.00110的第二指数偏移值为-3。
在一种实施方式中,定点与浮点转换器包括至少两个浮点精度格式,至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1, n为正整数。请再参见图1a,浮点模块104可以包括:尾数截取单元1041、指数编码单元1042以及浮点生成单元1043,其中,
尾数截取单元1041,用于若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据以及第一指数偏移值,截取针对目标定点数据的第一尾数数据。例如,目标定点数据100.0011可以转化为浮点数1.000011*22,得到第一尾数数据为1.000011,需要注意的是,在存储第一尾数数据时,会将个位数上的1默认舍去,只保存000011。
指数编码单元1042,用于若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,获取至少两个浮点精度格式分别对应的标准偏移值,根据第一指数偏移值以及至少两个标准偏移值,分别编码针对目标定点数据的至少两个第一目标指数。例如,目标定点数据100.0011可以转化为浮点数1.000011*22,得到第一指数偏移值为2,获取标准偏移值,例如单精度浮点数的标准偏移值为127,那么存储浮点数1.000011*22时,实际存储的偏移值为127+2,编码得到的第一目标指数为10000001。本申请实施例可以生成至少一种浮点精度格式,存储时,可以对应存储至少一种浮点数。
浮点生成单元1043,用于根据目标定点数据对应的符号位、至少两个第一目标指数以及第一尾数数据,分别生成目标定点数据对应的至少两个浮点数据;至少两个浮点数据包括浮点数据Fn以及浮点数据Fn+1,其中,浮点数据Fn的浮点精度格式为浮点精度格式An,浮点数据Fn+1的浮点精度格式为浮点精度格式An+1。例如,目标定点数据100.0011可以转化为浮点数1.000011*22,再根据上述的第一尾数数据以及第一目标指数,存储浮点数1.000011*22的二进制形式为01000000100001100000000000000000。
其中,尾数截取单元1041,还用于若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据以及第二指数偏移值,截取针对目标定点数据的第二尾数数据;例如,对于目标定点数据0.00110,左向搜索模块102搜索不到整数前导值,但右向搜索模块103可以输出第二指数偏移值(即-3),转化成浮点数1.10*2-3,得到第二尾数数据1.10,同理,在存储第二尾数数据时,会将个位数上的1默认舍去,只保存10。
指数编码单元1042,还用于若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,获取至少两个浮点精度格式分别对应的标准偏移值,根据第二指数偏移值以及至少两个标准偏移值,分别编码针对目标定点数据的至少两个第二目标指数;例如,对于目标定点数据0.00110,左向搜索模块102搜索不到整数前导值,但右向搜索模块103可以输出第二指数偏移值(即-3),获取标准偏移值,例如单精度浮点数的标准偏移值为127,那么存储浮点数1.10*2-3时,实际存储的偏移值为127-3,编码得到的第二目标指数为01111100。本申请实施例可以生成至少一种浮点精度格式,存储时,可以对应存储至少一种浮点数。
浮点生成单元1043,还用于根据目标定点数据对应的符号位、至少两个第二目标指数以及第二尾数数据,分别生成目标定点数据对应的至少两个浮点数据;至少两个浮点数据包括浮点数据Dn以及浮点数据Dn+1,其中,浮点数据Dn的浮点精度格式为浮点精度格式An,浮点数据Dn+1的浮点精度格式为浮点精度格式An+1。由尾数截取单元1041以及指数编码单元1042所述,可知存储浮点数1.10*2-3的二进制形式为00111110010000000000000000000000。
本申请实施例中的定点与浮点转换器设置有输入模块、左向搜索模块、右向搜索模块、浮点模块,通过输入模块可以获取定点与浮点转换器内部或外部的目标定点数据,将该目标定点数据分别输入上述的左向搜索模块以及上述的右向搜索模块,上述的左向搜索模块以及右向搜索模块是并行设置的,因此可以同时搜索目标定点数据转换成与之对应的浮点数据的指数偏移值,具体过程可以如下:左向搜索模块从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索,同时,右向搜索模块从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索;若左向搜索模块搜索到整数前导值,那么浮点模块可以获取到左向搜索模块输出的针对整数前导值的第一指数偏移值,则可以根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据;若左向搜索模块未搜索到整数前导值,那么浮点模块根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据,第二指数偏移值是指右向搜索模块所输出的针对小数前导值的指数偏移值。上述可知,本申请实施例通过上述的左向搜索模块以及右向搜索模块,可以并行搜索指数偏移值(包括第一指数偏移值以及第二指数偏移值),并行搜索可以提高获取指数偏移值的速度,且并行搜索可以满足不同类型的目标定点数据,提高了定点数据转浮点数据的通用性,进而可以提高数据运算的效率。
基于上述的描述,请参见图2,图2是本申请实施例提供的一种定点与浮点转换器的结构示意图。如图2所示,定点与浮点转换器可以包括:格式转换模块201、输入模块202、左向搜索模块204、右向搜索模块205以及浮点模块206,其中,
格式转换模块201,用于获取待处理定点数据,获取待处理定点数据的初始符号位,将未包括初始符号位的待处理定点数据转换为二进制定点数据;
格式转换模块201,还用于根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据,将初始符号位确定为目标定点数据对应的符号位。
格式转换模块201,具体用于若初始符号位的极性为0,则将二进制定点数据确定为目标定点数据,且具体用于若初始符号位的极性为1,则对二进制定点数据进行补码处理,得到补码处理之后的二进制定点数据,将补码处理之后的二进制定点数据确定为目标定点数据。
格式转换模块201,还具体用于接收异常调整模块发送的异常调整后的二进制定点数据,对异常调整后的二进制定点数据进行转换处理,生成目标定点数据。具体过程可以为:若初始符号位的极性为0,则将异常调整后的二进制定点数据确定为目标定点数据,若初始符号位的极性为1,则对异常调整后的二进制定点数据进行补码处理,得到补码处理之后的二进制定点数据,将补码处理之后的二进制定点数据确定为目标定点数据。
将待处理定点数据输入格式转换模块201,实现任意数据格式转换,可以是通用格式或者自定义的私有格式,以满足定制型特殊要求,同时输出浮点数据符号位结果。请一并参见图3a,图3a是本申请实施例提供的一种定点数据转换成浮点数据的转换示意图。如图2-图3a所示,将定点数据1011.11输入格式转换模块201,格式转换模块201根据定点数据1011.11的极性,确定符号位S为1(即负),由于待处理定点数据为负,所以对二进制数1011.11进行补码处理,首先获取二进制数1011.11的反码,然后在末位加1得到其对应的补码,然后去除补码之后的二进制数的符号位,如图3a所示,得到去除符号位的目标定点数据100.01。上述过程还可以一并参见图3b,图3b是本申请实施例提供的一种定点数据格式转换的场景示意图。其中,图3b中D表示待处理定点数据,“1’b0”表示符号位S为0,“1’b1”表示符号位S为1。
除此之外,本申请实施例中还可以输入不同浮点精度格式的浮点数至格式转换模块201,格式转换模块201可以将其转换成内部通用的浮点精度格式。
输入模块202,用于获取目标定点数据,将目标定点数据分别输入左向搜索模块204以及右向搜索模块205。
在本申请实施例中,目标定点数据是指未携带符号位的二进制数,该二进制数可以是纯整数、纯小数以及携带小数的整数,例如10001、0.111、1001.11。
可选的,可以将输入模块202与上述的格式转换模块201合并成一个模块。
左向搜索模块204,用于从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索。
其中,整数前导值是指整数部分最高位的1,如图2-图3a所示,格式转换模块201(此处是将输入模块202与格式转换模块201合并成一个模块,即格式转换模块201),将目标定点数据100.01输入至左向搜索模块204以及右向搜索模块205,左向搜索模块204对目标定点数据100.01进行小数点左向偏移,偏移2位,得到1.0001*22,则阶码加2,可以确定第一指数偏移值等于2;右向搜索模块205对目标定点数据100.01进行小数点右向偏移,可以偏移2位,得到10001.*2-2,则阶码减2,可以确定第二指数偏移值等于-2。
右向搜索模块205,用于从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索。
其中,小数前导值是指小数部分最高位的1,请一并参见图3c,图3c是本申请实施例提供的一种定点数据转换成浮点数据的转换示意图。如图3c所示,待处理定点数据为[(1/32)+(1/64)+(1/128)],首先对其进行符号位的提取以及数制转换,得到符号位S=0,表明待处理定点数据为正数,数制转换为[(1/32)+(1/64)+(1/128)]10=(0.0000111)2,由于待处理目标数据的符号位是0,所以可以将0.0000111确定为目标定点数据。格式转换模块201将0.0000111输入至左向搜索模块204以及右向搜索模块205,明显地,目标定点数据0.0000111不存在整数前导值;右向搜索模块205对目标定点数据0.0000111进行小数点右向偏移,偏移5位,得到1.11*2-5,此时阶码减5,可以确定第二指数偏移值等于(-5)。
在本申请实施例中,左向搜索模块204以及右向搜索模块205可以并行搜索目标定点数据的指数偏移值(包括上述的第一指数偏移值以及第二指数偏移值),通过两个方向并行搜索,获取指数偏移值的速度大大提高。需要理解的是,输入的目标定点数据具有的不同格式,选择左向搜索和右向搜索,还可以大大提高通用性。
浮点模块206,包括至少两个浮点精度格式,至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1,n为正整数。
浮点模块206,用于若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据。
浮点模块206,还用于若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据。
本申请实施例所说的浮点数据一般是指标准浮点数据,标准浮点数格式为:V=(−1)S×M×2E(1)
其中,S表示符号位,该符号位与目标定点数据对应的符号位相同,当S=0,V为正数,当S=1,V为负数;M表示尾数,E表示阶码。
本申请实施例可以支持任意浮点精度格式输出,包括但不限于电气和电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)标准定义的格式,例如双精度浮点,即double,float point64(FP64),单精度浮点,即FP32,半精度,即FP16,等等;还包括非标的自定义的格式,包括但不限于BP16。
请再参见图2,浮点模块206可以包括并行生成器2061、并行生成器2062、并行生成器2063、…、并行生成器206k,k为正整数,并行生成器2061、并行生成器2062、并行生成器2063、…、并行生成器206k分别对应不同的浮点精度格式,例如,并行生成器2061对应的浮点精度格式为单精度格式,则生成的浮点1为单精度浮点数据,将单精度浮点数据存储至浮点格式选择模块207的单精度数据单元2071中;并行生成器2062对应的浮点精度格式为双精度格式,则生成的浮点2为双精度浮点数据,将双精度浮点数据存储至浮点格式选择模块207的双精度数据单元2072中,其余并行生成器亦如此,此处不再一一赘述。通过并行生成器2061、并行生成器2062、并行生成器2063、…、并行生成器206k,目标定点数据可以生成至少一个浮点数据。
在IEEE标准中,浮点数是将特定长度的连续字节的所有二进制位分割为特定宽度的符号域、指数域和尾数域,域中的值分别用于表示给定二进制浮点数中的符号、指数和尾数,这样,通过尾数和可以调节的指数就可以表达给定的数值。请参见表1,表1是本申请实施例提供的一种介绍浮点格式的表格。
表1
Figure 179695DEST_PATH_IMAGE001
如表1所示,表1介绍了两个基本浮点格式,即单精度和双精度。其中,单精度格式具有24位有效数字(即尾数)精度,总共占用32位,存储时将整数位中的1舍去,则尾数占23位;双精度格式具有53位有效数字(即尾数)精度,总共占有64位存储时将整数位中的1舍去,则尾数占52位。
假设并行生成器2061对应的浮点精度格式是单精度格式,本申请实施例以并行生成器2061为例进行叙述,其他并行生成器可以按照下述过程生成其对应格式的浮点数。请再参见图3a,左向搜索模块204得到第一指数偏移值后,可以将第一指数偏移值传输至浮点模块206。请再参见图1a,可知浮点模块206可以包括指数编码单元1042、尾数截取单元1041以及浮点生成单元1043。指数编码单元1042获取第一指数偏移值(即2),以及单精度标准偏移值,如表1所示,单精度标准偏移值为127,对129(2+127)进行二进制编码,得到10000001;尾数截取单元1041对1.0001*22进行截取,获取尾数1.0001,存储时,个位数的1被舍去,只存储小数位,即0001,由表1可知,单精度格式的浮点数尾数位占23位,故在0001右侧补0,得到00010000000000000000000,最后浮点生成单元1043得到如图3a中所示的二进制11000000100010000000000000000000。
同理,请再参见图1c以及图3c,右向搜索模块205得到第二指数偏移值后,将第二指数偏移值传输至浮点模块206,指数编码单元1042获取第二指数偏移值(即-5),以及单精度标准偏移值后,对122(-5+127)进行二进制编码,得到0111 1010;尾数截取单元1041获取尾数1.11,与左向搜索模块204同样,右向搜索模块205存储时,默认舍去个数位上的1,储存11,然后补0,最后浮点生成单元1043得到如图3c中所示的二进制0011111011000000000000000000000。
在一种实施方式中,定点与浮点转换器还可以包括异常调整模块203,其中,
异常调整模块203,用于对二进制定点数据进行数据状态检测;
异常调整模块203 ,还用于若二进制定点数据的数据状态为数据正常状态,则通知格式转换模块根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据;
异常调整模块203,还用于若二进制定点数据的数据状态为数据异常状态,则对二进制定点数据进行异常调整,通知格式转换模块根据初始符号位对异常调整后的二进制定点数据进行转换处理,生成目标定点数据。
请再参见图2,格式转换模块201除了将目标定点数据传输至输入模块202,还会将目标定点数据输出到异常调模块203,以确定目标定点数据是否出现异常,异常调模块203可以根据输入的异常模式进行异常处理,并把控制信息返回至格式转换模块201。回顾图3a以及图3c的示例,将十进制转换成二进制时,均可以得到精确的结果,而在实际应用时,有很多实数转换成二进制数时,不能得到精确的结果,而是舍入结果,例如(0.1)10=(0.000110…)2,但浮点数尾数域的位数是有限的,单精度为23位,双精度为52位,为此,处理方法是持续该过程直到由此得到的尾数足以填满尾数域,之后对多余的位进行舍入。
除了上述数据不精确外,实际应用时,还存在阶码的值是否产生溢出,请再参见图2,左向搜索模块204或者右向搜索模块205将搜索的指数偏移值输入至异常调整模块203,若指数偏移值对应的阶码超过了阶码所能表示的最大正数,则为上溢,进一步,若此时浮点数为正数,则为正上溢,记为+∞,若浮点数为负数,则为负上溢,记为-∞;若阶码的值超过了阶码所能表示的最小负数,则为下溢,进一步,若此时浮点数为正数,则为正下溢,若浮点数为负数,则为负下溢,上述情况必须进行舍入。
本申请实施例提供了四种舍入处理方法:
1、就近舍入(round to neareset):这是标准列出的默认舍入方式,例如Round(1.5) =2,Round(2.5) = 2。
2、朝+∞舍入(round toward +∞):对正数来说,只要多余位不为全0,则向尾数最低有效位进1;对负数来说,则是简单地舍去。
3、朝-∞舍入(round toward -∞):与朝+∞舍入方法正好相反,对正数来说,只是简单地舍去;对负数来说,只要多余位不为全0,则向尾数最低有效位进1。
4、朝0舍入(round toward 0):即简单地截断舍去,而不管多余位是什么值。这种方法实现简单,但容易形成累积误差,且舍入处理后的值总是向下偏差。
除了上述的四种方法,本申请实施例还可以让用户自定义异常处理舍入方式。
上述可知,通过异常调整模块203指定当出现异常时处理方式、包括但不限于舍入模式、数据截取方式,这样可以让误差降到最小,更重要的是能够适配不同应用场景对误差的需求。
在一种实施方式中,定点与浮点转换器还可以包括浮点格式选择模块207,其中,
浮点格式选择模块207,用于获取针对目标定点数据的数据转换指令;数据转换指令携带目标浮点精度格式,至少两个浮点精度格式包括目标浮点精度格式;
浮点格式选择模块207,还用于根据目标浮点精度格式,从至少两个浮点数据中确定目标浮点数据,对目标浮点数据进行输出;目标浮点数据的浮点精度格式为目标浮点精度格式。
由浮点格式选择模块207可知,当获取到待处理定点数据后,本申请实施例所述的定点与浮点转换器可以生成至少一种浮点数据,请再参见图2,单精度数据单元2071存储的是目标定点数据对应的单精度浮点数据,双精度数据单元2072存储的是目标定点数据对应的双精度浮点数据,其他浮点精度格式单元亦分别存储了对应的浮点数据,所以当获取到针对目标定点数据(或待处理定点数据)的数据转换指令时,定点与浮点转换器可以根据数据转换指令中所指示的目标浮点精度格式输出目标浮点数据。
可选的,若上述的数据转换指令携带待处理定点数据,以及针对待处理定点数据的目标浮点精度格式,则定点与浮点转换器可以根据目标浮点精度格式,对待处理定点数据进行针对性的转换,只生成与目标浮点精度格式对应的目标浮点数据。
本申请实施例中的定点与浮点转换器设置有格式转换模块、输入模块、左向搜索模块、右向搜索模块、异常调整模块、浮点模块以及浮点格式选择模块,格式转换模块获取待处理定点数据,实现任意数据格式转换,可以是通用格式或者自定义的私有格式,满足定制型特殊要求,同时输出浮点数据符号位结果。格式转换模块的输出通过输入模块分别输入至左向搜索模块以及右向搜索模块,上述的左向搜索模块以及右向搜索模块是并行设置的,因此可以同时搜索目标定点数据转换成与之对应的浮点数据的指数偏移值,且输入的目标定点数据具有的不同格式,选择左向搜索和右向搜索,还可以大大提高通用性;格式转换模块还可以与异常调整模块相连,以检测转换的二进制数是否存在异常,通过异常调整模块可以让误差降到最小,更重要的是能够适配不同应用场景对误差的需求,上述的左向搜索模块(右向搜索模块亦可以)也可以与异常调整模块进行连接,以检测阶码数是否存在异常。上述可知,本申请实施例通过上述的左向搜索模块以及右向搜索模块的并行搜索可以提高获取指数偏移值的速度,且可以满足不同类型的目标定点数据,即提高了定点数据转浮点数据的通用性,进而可以提高数据运算的效率。
定点与浮点转换器作为基本的数据处理单元,被广泛应用于计算机学、通讯、人工智能等多个领域。我们所熟知的GPU、CPU、现场可编程逻辑门阵列(Field ProgrammableGate Array,FPGA)或者大规模人工智能(Artificial Intelligence,AI)芯片里均包含若干定点与浮点转换器,它是一个基础的组件,其重要性显然易见。
以人工智能领域为例,伴随着人脸识别、图像分类等新兴技术的快速发展,对计算精度和速度要求日益增大。为了能提高机器学习模型的精度,在训练阶段,一般会采用浮点运算以提高训练的精度和收敛速度,而在推理阶段,一般采用定点计算得到推理的结果,因此需要一套既能支持定点运算,又能支持浮点运算,并且还能灵活的实现相互转换的计算结构。
进一步地,请参见图4,图4是本申请实施例提供的一种定点转浮点的图形处理器。如图4所示,该定点转浮点的图形处理器可以包括片上/片外存储单元401、前处理模块402、定点转浮点通用模块403、浮点运算单元404以及后处理单元405,其中,
片上/片外存储单元401,用于存储待处理定点数据;
前处理模块402,用于当获取到针对待处理定点数据的数据运算指令时,根据数据运算指令获取存储于数据存储器中的待处理定点数据,对待处理定点数据进行数据预处理,得到目标定点数据;数据运算指令携带目标浮点精度格式;
定点转浮点通用模块403,用于对第一处理器传输的目标定点数据进行数据格式转换,生成对应于目标浮点精度格式的浮点数据;其中,定点转浮点器403包括图1a-图1c以及图2所述的装置;
浮点运算单元404,用于对浮点数据进行浮点运算,生成浮点运算后的浮点数据;
后处理单元405,用于将浮点运算后的浮点数据传输至片上/片外存储单元401,以使片上/片外存储单元401存储浮点运算后的浮点数据。
一般AI芯片内部包括成千上万个以上浮点运算器,如果当前神经网络算法需要使用浮点模式进行计算时候,首先从片上/片外存储单元401取出数据,然后经过前处理模块402进行如格式转换、降噪等处理之后得到定点数据,再经过定点转浮点通用模块403完成定点到浮点转换,转换之后送到浮点运算单元404完成各类浮点运算,最后经过后处理模块405把结果写回片上/片外存储单元。
上述可知,定点转浮点的图形处理器可以保证计算精度的同时,还提高了面向不同应用、产品需求的通用性和灵活性。
进一步地,请参见图5,图5是本申请实施例提供的一种定点转浮点的中央处理器。如图5所示,该定点转浮点的中央处理器可以包括取指模块501、译码模块502以及定点转浮点模块503,其中,
取指模块501,用于获取运算指令;
译码模块502,用于对取指模块获取的运算指令进行译码处理,得到译码后的运算指令;译码后的运算指令用于表征对待处理定点数据进行浮点运算;
定点转浮点模块503,用于根据解码后的运算指令获取待处理定点数据,对待处理定点数据进行数据格式转换,得到待处理定点数据对应的浮点数据,并对浮点数据进行浮点运算;其中,定点转浮点模块包括图1a-图1c以及图2的装置。
上述可知,定点转浮点的中央处理器的取指模块取出一条指令时,先经过译码模块,当译码为一条浮点运算的指令时候,就会使定点转浮点模块完成从定点数据到浮点数据的转换。包括定点转浮点模块的中央处理器可以在保证计算精度的同时,还提高了面向不同应用、产品需求的通用性以及灵活性。
基于上述定点与浮点转换器的相关描述,本申请实施例提出一种定点与浮点转换方法,请参见图6,图6是本申请实施例提供的一种定点与浮点转换方法,该定点与浮点转换方法可由上述图1a或图2所提及的定点与浮点转换器执行。如图6所示,该定点与浮点转换方法可以包括以下步骤S601-S605:
步骤S601,获取目标定点数据,将目标定点数据分别输入左向搜索模块和右向搜索模块。
具体的,获取待处理定点数据,将待处理定点数据输入格式转换模块;在格式转换模块中,获取待处理定点数据的初始符号位,并将未包括初始符号位的待处理定点数据转换为二进制定点数据;根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据,将初始符号位确定为目标定点数据对应的符号位。
将二进制定点数据输入异常调整模块,在异常调整模块中对二进制定点数据进行数据状态检测;若二进制定点数据的数据状态为数据正常状态,则通知格式转换模块根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据;若二进制定点数据的数据状态为数据异常状态,则对二进制定点数据进行异常调整,通知格式转换模块根据初始符号位对异常调整后的二进制定点数据进行转换处理,生成目标定点数据。
根据初始符号位对二进制定点数据进行转换处理,生成目标定点数据,包括:若初始符号位的极性为0,则将二进制定点数据确定为目标定点数据,若初始符号位的极性为1,则对二进制定点数据进行补码处理,得到补码处理之后的二进制定点数据,将补码处理之后的二进制定点数据确定为目标定点数据。
步骤S602,在左向搜索模块中,从目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索。
具体的,从目标定点数据的小数点位置开始,沿整数方向获取目标定点数据的左向搜索范围;左向搜索范围包括左向起始数值,左向起始数值是指在左向搜索范围中,与目标定点数据的小数点距离最近的数值;从左向起始数值开始沿整数方向,对左向搜索范围内的每个左向数值进行遍历;根据左向遍历结果搜索整数前导值。左向遍历结果包括左向数值Zi,i为正整数,且i小于或等于左向搜索范围中的左向数值的总数量,左向数值Zi包括左向起始数值;若左向遍历结果中的左向数值Zi均不等于默认数值,则确定左向搜索范围不包括整数前导值;整数前导值的数值等于默认数值;若左向遍历结果中存在左向数值Zi等于默认数值,则确定左向搜索范围包括整数前导值,获取等于默认数值的左向数值Zi的左向位置信息Li;根据左向位置信息Li中距离初始位置最远的左向位置信息,确定第一指数偏移值;初始位置为目标定点数据的小数点位置。
步骤S603,在右向搜索模块中,从目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索。
具体的,从目标定点数据的小数点位置开始,沿小数方向获取目标定点数据的右向搜索范围;右向搜索范围包括右向起始数值,右向起始数值是指在右向搜索范围中,与目标定点数据的小数点距离最近的数值;从右向起始数值开始沿小数方向,对右向搜索范围内的每个右向数值进行遍历;根据右向遍历结果搜索小数前导值。右向遍历结果包括右向数值Yj,j为正整数,且j小于或等于右向搜索范围中的右向数值的总数量,右向数值Yj包括右向起始数值;若右向遍历结果中的右向数值Yj均不等于默认数值,则确定右向搜索范围不包括小数前导值;小数前导值的数值等于默认数值;若右向遍历结果中存在右向数值Yj等于默认数值,则确定右向搜索范围包括小数前导值,获取等于默认数值的右向数值Yj的右向位置信息Cj;根据右向位置信息Cj中距离初始位置最近的右向位置信息,确定第二指数偏移值;初始位置为目标定点数据的小数点位置。
步骤S604,若左向搜索模块搜索到整数前导值,则获取左向搜索模块输出的针对整数前导值的第一指数偏移值,根据目标定点数据对应的符号位以及第一指数偏移值,生成目标定点数据对应的浮点数据。
具体的,根据目标定点数据以及第一指数偏移值,截取针对目标定点数据的第一尾数数据;获取至少两个浮点精度格式分别对应的标准偏移值,根据第一指数偏移值以及至少两个标准偏移值,分别编码针对目标定点数据的至少两个第一目标指数;至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1, n为正整数;根据目标定点数据对应的符号位、至少两个第一目标指数以及第一尾数数据,分别生成目标定点数据对应的至少两个浮点数据;至少两个浮点数据包括浮点数据Fn以及浮点数据Fn+1,其中,浮点数据Fn的浮点精度格式为浮点精度格式An,浮点数据Fn+1的浮点精度格式为浮点精度格式An+1
步骤S605,若左向搜索模块未搜索到整数前导值,则获取右向搜索模块输出的针对小数前导值的第二指数偏移值,根据目标定点数据对应的符号位以及第二指数偏移值,生成目标定点数据对应的浮点数据。
具体的,根据目标定点数据以及第二指数偏移值,截取针对目标定点数据的第二尾数数据;获取至少两个浮点精度格式分别对应的标准偏移值,根据第二指数偏移值以及至少两个标准偏移值,分别编码针对目标定点数据的至少两个第二目标指数;至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1, n为正整数;根据目标定点数据对应的符号位、至少两个第二目标指数以及第二尾数数据,分别生成目标定点数据对应的至少两个浮点数据;至少两个浮点数据包括浮点数据Dn以及浮点数据Dn+1,其中,浮点数据Dn的浮点精度格式为浮点精度格式An,浮点数据Dn+1的浮点精度格式为浮点精度格式An+1
获取针对目标定点数据的数据转换指令;数据转换指令携带目标浮点精度格式,至少两个浮点精度格式包括目标浮点精度格式;根据目标浮点精度格式,从至少两个浮点数据中确定目标浮点数据,对目标浮点数据进行输出;目标浮点数据的浮点精度格式为目标浮点精度格式。
其中,步骤S601-步骤S605的具体实现过程请参见上述图1a以及图2,此处不再进行赘述。
上述可知,本申请实施例通过上述的左向搜索模块以及右向搜索模块,可以并行搜索指数偏移值(包括第一指数偏移值以及第二指数偏移值),并行搜索可以提高获取指数偏移值的速度,且并行搜索可以满足不同类型的目标定点数据,提高了定点数据转浮点数据的通用性,进而可以提高数据运算的效率。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图6中各个步骤所提供的定点与浮点转换方法,具体可参见上述图6各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的定点与浮点转换器,或者上述定点与浮点转换的图形处理器,或者上述定点与浮点转换的中央处理器的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital, SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (15)

1.一种定点与浮点转换器,其特征在于,包括输入模块、左向搜索模块、右向搜索模块、浮点模块;
所述输入模块,用于获取目标定点数据,将所述目标定点数据分别输入所述左向搜索模块和所述右向搜索模块;
所述左向搜索模块,用于从所述目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索;
所述右向搜索模块,用于从所述目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索;
所述浮点模块,用于若所述左向搜索模块搜索到所述整数前导值,则获取所述左向搜索模块输出的针对所述整数前导值的第一指数偏移值,根据所述目标定点数据对应的符号位以及第一指数偏移值,生成所述目标定点数据对应的浮点数据;
所述浮点模块,还用于若所述左向搜索模块未搜索到所述整数前导值,则获取所述右向搜索模块输出的针对所述小数前导值的第二指数偏移值,根据所述目标定点数据对应的所述符号位以及第二指数偏移值,生成所述目标定点数据对应的所述浮点数据。
2.根据权利要求1所述的定点与浮点转换器,其特征在于,所述定点与浮点转换器包括至少两个浮点精度格式,所述至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1, n为正整数;
所述浮点模块包括:
尾数截取单元,用于若所述左向搜索模块搜索到所述整数前导值,则获取所述左向搜索模块输出的针对所述整数前导值的第一指数偏移值,根据所述目标定点数据以及所述第一指数偏移值,截取针对所述目标定点数据的第一尾数数据;
指数编码单元,用于若所述左向搜索模块搜索到所述整数前导值,则获取所述左向搜索模块输出的针对所述整数前导值的第一指数偏移值,获取所述至少两个浮点精度格式分别对应的标准偏移值,根据所述第一指数偏移值以及至少两个标准偏移值,分别编码针对所述目标定点数据的至少两个第一目标指数;
浮点生成单元,用于根据所述目标定点数据对应的符号位、所述至少两个第一目标指数以及所述第一尾数数据,分别生成所述目标定点数据对应的至少两个浮点数据;所述至少两个浮点数据包括浮点数据Fn以及浮点数据Fn+1,其中,所述浮点数据Fn的浮点精度格式为所述浮点精度格式An,所述浮点数据Fn+1的浮点精度格式为所述浮点精度格式An+1
3.根据权利要求1所述的定点与浮点转换器,其特征在于,所述定点与浮点转换器包括至少两个浮点精度格式,所述至少两个浮点精度格式包括浮点精度格式An以及浮点精度格式An+1, n为正整数;
所述浮点模块包括:
尾数截取单元,用于若所述左向搜索模块未搜索到所述整数前导值,则获取所述右向搜索模块输出的针对所述小数前导值的第二指数偏移值,根据所述目标定点数据以及所述第二指数偏移值,截取针对所述目标定点数据的第二尾数数据;
指数编码单元,用于若所述左向搜索模块未搜索到所述整数前导值,则获取所述右向搜索模块输出的针对所述小数前导值的第二指数偏移值,获取所述至少两个浮点精度格式分别对应的标准偏移值,根据所述第二指数偏移值以及至少两个标准偏移值,分别编码针对所述目标定点数据的至少两个第二目标指数;
浮点生成单元,用于根据所述目标定点数据对应的符号位、所述至少两个第二目标指数以及所述第二尾数数据,分别生成所述目标定点数据对应的所述至少两个浮点数据;所述至少两个浮点数据包括浮点数据Dn以及浮点数据Dn+1,其中,所述浮点数据Dn的浮点精度格式为所述浮点精度格式An,所述浮点数据Dn+1的浮点精度格式为所述浮点精度格式An+1
4.根据权利要求2或者权利要求3所述的定点与浮点转换器,其特征在于,还包括:
浮点格式选择模块,用于获取针对所述目标定点数据的数据转换指令;所述数据转换指令携带目标浮点精度格式,所述至少两个浮点精度格式包括所述目标浮点精度格式;
所述浮点格式选择模块,还用于根据所述目标浮点精度格式,从所述至少两个浮点数据中确定目标浮点数据,对所述目标浮点数据进行输出;所述目标浮点数据的浮点精度格式为所述目标浮点精度格式。
5.根据权利要求1所述的定点与浮点转换器,其特征在于,所述左向搜索模块包括:
左向获取单元,用于从所述目标定点数据的小数点位置开始,沿所述整数方向获取所述目标定点数据的左向搜索范围;所述左向搜索范围包括左向起始数值,所述左向起始数值是指在所述左向搜索范围中,与所述目标定点数据的小数点距离最近的数值;
第一遍历单元,用于从所述左向起始数值开始沿所述整数方向,对所述左向搜索范围内的每个左向数值进行遍历;
第一搜索单元,用于根据左向遍历结果搜索所述整数前导值。
6.根据权利要求5所述的定点与浮点转换器,其特征在于,所述左向遍历结果包括左向数值Zi,i为正整数,且i小于或等于所述左向搜索范围中的左向数值的总数量,所述左向数值Zi包括所述左向起始数值;
所述第一搜索单元,具体用于若所述左向遍历结果中的所述左向数值Zi均不等于默认数值,则确定所述左向搜索范围不包括所述整数前导值;所述整数前导值的数值等于所述默认数值;
所述第一搜索单元,具体用于若所述左向遍历结果中存在所述左向数值Zi等于所述默认数值,则确定所述左向搜索范围包括所述整数前导值,获取等于所述默认数值的所述左向数值Zi的左向位置信息Li
所述第一搜索单元,具体用于根据所述左向位置信息Li中距离初始位置最远的左向位置信息,确定所述第一指数偏移值;所述初始位置为所述目标定点数据的小数点位置。
7.根据权利要求1所述的定点与浮点转换器,其特征在于,所述右向搜索模块包括:
右向获取单元,用于从所述目标定点数据的小数点位置开始,沿所述小数方向获取所述目标定点数据的右向搜索范围;所述右向搜索范围包括右向起始数值,所述右向起始数值是指在所述右向搜索范围中,与所述目标定点数据的小数点距离最近的数值;
第二遍历单元,用于从所述右向起始数值开始沿所述小数方向,对所述右向搜索范围内的每个右向数值进行遍历;
第二搜索单元,用于根据右向遍历结果搜索所述小数前导值。
8.根据权利要求7所述的定点与浮点转换器,其特征在于,所述右向遍历结果包括右向数值Yj,j为正整数,且j小于或等于所述右向搜索范围中的右向数值的总数量,所述右向数值Yj包括所述右向起始数值;
所述第二搜索单元,具体用于若所述右向遍历结果中的所述右向数值Yj均不等于默认数值,则确定所述右向搜索范围不包括所述小数前导值;所述小数前导值的数值等于所述默认数值;
所述第二搜索单元,具体用于若所述右向遍历结果中存在所述右向数值Yj等于所述默认数值,则确定所述右向搜索范围包括所述小数前导值,获取等于所述默认数值的所述右向数值Yj的右向位置信息Cj
所述第二搜索单元,具体用于根据所述右向位置信息Cj中距离初始位置最近的右向位置信息,确定所述第二指数偏移值;所述初始位置为所述目标定点数据的小数点位置。
9.根据权利要求1所述的定点与浮点转换器,其特征在于,还包括:
格式转换模块,用于获取待处理定点数据,获取所述待处理定点数据的初始符号位,将未包括所述初始符号位的待处理定点数据转换为二进制定点数据;
所述格式转换模块,还用于根据所述初始符号位对所述二进制定点数据进行转换处理,生成所述目标定点数据,将所述初始符号位确定为所述目标定点数据对应的符号位。
10.根据权利要求9所述的定点与浮点转换器,其特征在于,还包括:
异常调整模块,用于对所述二进制定点数据进行数据状态检测;
所述异常调整模块,还用于若所述二进制定点数据的所述数据状态为数据正常状态,则通知所述格式转换模块根据所述初始符号位对所述二进制定点数据进行转换处理,生成所述目标定点数据;
所述异常调整模块,还用于若所述二进制定点数据的所述数据状态为数据异常状态,则对所述二进制定点数据进行异常调整,通知所述格式转换模块根据所述初始符号位对异常调整后的二进制定点数据进行转换处理,生成所述目标定点数据。
11.根据权利要求9所述的定点与浮点转换器,其特征在于,
所述格式转换模块,具体用于若所述初始符号位的极性为0,则将所述二进制定点数据确定为所述目标定点数据,且具体用于若所述初始符号位的极性为1,则对所述二进制定点数据进行补码处理,得到补码处理之后的二进制定点数据,将所述补码处理之后的二进制定点数据确定为所述目标定点数据。
12.一种定点与浮点转换方法,其特征在于,所述方法由权利要求1-11任一项所述的定点与浮点转换器来执行,所述方法包括:
获取目标定点数据,将所述目标定点数据分别输入左向搜索模块和右向搜索模块;
在所述左向搜索模块中,从所述目标定点数据的小数点位置开始,沿整数方向进行整数前导值搜索;
在所述右向搜索模块中,从所述目标定点数据的小数点位置开始,沿小数方向进行小数前导值搜索;
若所述左向搜索模块搜索到所述整数前导值,则获取所述左向搜索模块输出的针对所述整数前导值的第一指数偏移值,根据所述目标定点数据对应的符号位以及所述第一指数偏移值,生成所述目标定点数据对应的浮点数据;
若所述左向搜索模块未搜索到所述整数前导值,则获取所述右向搜索模块输出的针对所述小数前导值的第二指数偏移值,根据所述目标定点数据对应的所述符号位以及所述第二指数偏移值,生成所述目标定点数据对应的所述浮点数据。
13.一种定点转浮点的图形处理器,其特征在于,包括权利要求1-11任一项所述的定点与浮点转换器。
14.一种定点转浮点的中央处理器,其特征在于,包括权利要求1-11任一项所述的定点与浮点转换器。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求12中所述的定点与浮点转换方法的步骤。
CN202010931697.XA 2020-09-08 2020-09-08 一种定点与浮点转换器、处理器、方法以及存储介质 Active CN111796798B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010931697.XA CN111796798B (zh) 2020-09-08 2020-09-08 一种定点与浮点转换器、处理器、方法以及存储介质
PCT/CN2021/106761 WO2022052625A1 (zh) 2020-09-08 2021-07-16 一种定点与浮点转换器、处理器、方法以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010931697.XA CN111796798B (zh) 2020-09-08 2020-09-08 一种定点与浮点转换器、处理器、方法以及存储介质

Publications (2)

Publication Number Publication Date
CN111796798A true CN111796798A (zh) 2020-10-20
CN111796798B CN111796798B (zh) 2020-12-22

Family

ID=72834138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010931697.XA Active CN111796798B (zh) 2020-09-08 2020-09-08 一种定点与浮点转换器、处理器、方法以及存储介质

Country Status (2)

Country Link
CN (1) CN111796798B (zh)
WO (1) WO2022052625A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022052625A1 (zh) * 2020-09-08 2022-03-17 腾讯科技(深圳)有限公司 一种定点与浮点转换器、处理器、方法以及存储介质
WO2023124362A1 (zh) * 2021-12-31 2023-07-06 上海商汤智能科技有限公司 浮点数处理方法、装置、电子设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114626489A (zh) * 2022-05-17 2022-06-14 深圳比特微电子科技有限公司 一种softmax函数定点化实现方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687688B1 (en) * 1998-03-13 2004-02-03 Kabushiki Kaisha Toshiba System and method for data management
CN104572018A (zh) * 2014-12-30 2015-04-29 杭州中天微系统有限公司 一种用于浮点常数生成的装置及方法
CN104778026A (zh) * 2015-04-28 2015-07-15 浪潮电子信息产业股份有限公司 一种带simd的高速数据格式转换部件及转换方法
CN109739555A (zh) * 2019-01-04 2019-05-10 腾讯科技(深圳)有限公司 包括乘累加模块的芯片、终端及控制方法
CN110036368A (zh) * 2016-12-06 2019-07-19 Arm有限公司 用于执行算术运算以累加浮点数的装置及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626807B2 (en) * 2009-01-08 2014-01-07 International Business Machines Corporation Reuse of rounder for fixed conversion of log instructions
US10019231B2 (en) * 2016-08-22 2018-07-10 Arm Limited Apparatus and method for fixed point to floating point conversion and negative power of two detector
US10223114B1 (en) * 2017-09-29 2019-03-05 Intel Corporation Fixed point to floating point conversion
CN111796798B (zh) * 2020-09-08 2020-12-22 腾讯科技(深圳)有限公司 一种定点与浮点转换器、处理器、方法以及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687688B1 (en) * 1998-03-13 2004-02-03 Kabushiki Kaisha Toshiba System and method for data management
CN104572018A (zh) * 2014-12-30 2015-04-29 杭州中天微系统有限公司 一种用于浮点常数生成的装置及方法
CN104778026A (zh) * 2015-04-28 2015-07-15 浪潮电子信息产业股份有限公司 一种带simd的高速数据格式转换部件及转换方法
CN110036368A (zh) * 2016-12-06 2019-07-19 Arm有限公司 用于执行算术运算以累加浮点数的装置及方法
CN109739555A (zh) * 2019-01-04 2019-05-10 腾讯科技(深圳)有限公司 包括乘累加模块的芯片、终端及控制方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022052625A1 (zh) * 2020-09-08 2022-03-17 腾讯科技(深圳)有限公司 一种定点与浮点转换器、处理器、方法以及存储介质
WO2023124362A1 (zh) * 2021-12-31 2023-07-06 上海商汤智能科技有限公司 浮点数处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2022052625A1 (zh) 2022-03-17
CN111796798B (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN111796798B (zh) 一种定点与浮点转换器、处理器、方法以及存储介质
US11698772B2 (en) Prepare for shorter precision (round for reround) mode in a decimal floating-point instruction
US9804823B2 (en) Shift significand of decimal floating point data
JP7244186B2 (ja) 改良された低精度の2進浮動小数点形式設定
US8051119B2 (en) Decomposition of decimal floating point data
CN111796870B (zh) 数据格式转换装置、处理器、电子设备及模型运行方法
JP6407001B2 (ja) 浮動小数点数を整数に変換するための電子装置及びシステム及びその動作方法
US20120259906A1 (en) Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit
EP3783503A1 (en) Information processing method, related device, and computer storage medium
CN112241291A (zh) 用于指数函数实施的浮点单元
CN111538473A (zh) 一种Posit浮点数处理器
CN111538472A (zh) 一种Posit浮点数的运算处理器以及运算处理系统
CN115906137A (zh) 用于多方安全计算的数据处理方法及装置
WO2017185203A1 (zh) 一种用于执行多个浮点数相加的装置及方法
CN109976705B (zh) 浮点格式数据处理装置、数据处理设备及数据处理方法
KR102228995B1 (ko) 여러 가지 수치 포맷의 데이터를 갖는, 데이터 베이스화된 함수 모델의 연산을 위한 모델 연산 유닛 및 제어 장치
CN112667197B (zh) 一种基于posit浮点数格式的参数化加减法运算电路
KR102348795B1 (ko) 부동 소수점 방식에서 고정 소수점 방식으로의 변환 수행시 비트 폭 최적화 방법
US20120259903A1 (en) Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit
TW200925897A (en) Fast computation of products by dyadic fractions with sign-symmetric rounding errors
CN116700664A (zh) 一种确定浮点数平方根的方法及装置
CN114691082A (zh) 乘法器电路、芯片、电子设备及计算机可读存储介质
KR20150107614A (ko) 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법
US20210334635A1 (en) Neural network accelerator configured to perform operation on logarithm domain
CN112671411B (zh) 一种基于ieee 754和posit的浮点数据格式的双向转换电路

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40031307

Country of ref document: HK