CN117215646A - 一种浮点运算方法、处理器、电子设备及存储介质 - Google Patents

一种浮点运算方法、处理器、电子设备及存储介质 Download PDF

Info

Publication number
CN117215646A
CN117215646A CN202310552164.4A CN202310552164A CN117215646A CN 117215646 A CN117215646 A CN 117215646A CN 202310552164 A CN202310552164 A CN 202310552164A CN 117215646 A CN117215646 A CN 117215646A
Authority
CN
China
Prior art keywords
floating point
floating
point
division
bit width
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
CN202310552164.4A
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.)
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 CN202310552164.4A priority Critical patent/CN117215646A/zh
Publication of CN117215646A publication Critical patent/CN117215646A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Complex Calculations (AREA)

Abstract

本申请涉及计算机技术领域,提供一种浮点运算方法、处理器、电子设备及存储介质,用于提高浮点除加运算的效率和精度。该方法获取到除加融合运算指令后,基于获得的浮点被除数、浮点除数和浮点加数,进行浮点除法和浮点加法的融合运算,运算效率较高。其中,浮点除法运算的运算次数是基于三个浮点数的指数动态确定的,从而可以根据实际情况灵活调整浮点除法的运算次数,提高运算效率的同时,减少除法迭代产生的中间精度损失,且在浮点加法运算时,浮点商和浮点余数能够根据浮点加数的指数动态扩展,从而尽可能的保留有效的中间计算精度,进一步提升了除加运算的精度。

Description

一种浮点运算方法、处理器、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种浮点运算方法、处理器、电子设备及存储介质。
背景技术
随着科技的不断发展,越来越多的设备可以进行人工智能(ArtificialIntelligence,AI)数据处理,AI数据处理中包含大量浮点数的运算,浮点数的运算包括浮点加法运算和浮点除法运算等。
在浮点数运算中,调用浮点除法的次数比较多。通常的,浮点除法运算会和浮点加法运算进行联合,形成浮点除加运算。相关技术在进行浮点除加运算时,通常调用两条指令分别进行浮点除法运算和浮点加法运算,运算效率较低。
例如,三个浮点数分别为A、B和C,浮点除加运算关系为A/B+C,那么,相关技术先调用第一指令计算A/B,获得中间结果D;在调用第二指令计算D+C,从而获得最终的计算结果。
同时,相关技术在进行浮点除法运算时,浮点除法的迭代次数只和是否能除尽有关,迭代次数通常较多,这样会降低整个浮点除加运算的效率,同时,由于每次浮点除法运算的结果会进行规格化和舍入(rounding)操作,从而在运算过程中丢失计算精度,且迭代次数越多,计算精度越低。
因此,提高浮点除加运算的效率和精度,是目前浮点数运算中亟待解决的问题。
发明内容
本申请实施例提供了一种浮点运算方法、处理器、电子设备及存储介质,用于提高浮点除加运算的效率和精度。
一方面,本申请实施例提供一种浮点运算方法,应用于浮点运算处理器,包括:
获取除加融合运算指令,所述浮点融合运算指令为将浮点除运算指令和浮点加运算指令融合得到的指令;
基于所述除加融合运算指令,获取浮点除加运算的浮点被除数、浮点除数和浮点加数;
基于三个浮点数的指数,确定所述浮点除加运算中浮点除法运算的运算次数;
基于所述运算次数,对所述浮点被除数的尾数和所述浮点除数的尾数进行浮点除法运算,获得浮点商和浮点余数;
采用第一进位传递加法器,对所述浮点商和所述浮点加数的尾数进行浮点加法运算,获得初始除加结果,基于所述浮点余数对所述初始除加结果进行舎入操作,获得目标除加结果。
另一方面,本申请实施例提供一种浮点运算处理器,包括:
输入/输出接口,用于获取除加融合运算指令;以及,基于所述除加融合运算指令,获取浮点除加运算的浮点被除数、浮点除数和浮点加数;其中,所述浮点融合运算指令为将浮点除运算指令和浮点加运算指令融合得到的指令;
浮点除法器,用于基于所述运算次数,对所述浮点被除数的尾数和所述浮点除数的尾数进行浮点除法运算,获得浮点商和浮点余数;
浮点加法器,用于将所述浮点商和所述浮点加数的尾数,输入到第一进位传递加法器中进行浮点加法运算,获得初始除加结果;
舎入单元,用于基于所述浮点余数对所述初始除加结果进行舎入操作,获得目标除加结果。
可选的,所述浮点除法器包括指数处理单元和迭代运算器:
所述指数处理单元,用于计算所述浮点被除数的指数与所述浮点除数的指数间的第一指数差值,并计算所述浮点加数的指数与所述第一指数差值的第二指数差值;
迭代运算器,用于基于所述第二指数差值和预设尾数位宽,确定所述浮点除加运算中浮点除法运算的运算次数。
可选的,所述迭代运算器具体用于:
当所述第二指数差值大于等于所述预设尾数位宽与参考位宽的和时,确定所述运算次数为零;其中,所述参考位宽是基于所述预设尾数位宽中的最低保留位和舎入位中除最高舍弃位外其余位的或操作结果确定的;
当所述第二指数差值大于第一预设位宽,且小于所述预设尾数位宽与所述参考位宽的和时,基于所述预设尾数位宽与所述参考位宽的和,与所述第二指数差值的差,确定所述运算次数;
当所述第二指数差值大于等于第二预设位宽小于等于所述第一预设位宽,且所述预设尾数位宽大于前导零个数时,基于所述预设尾数位宽、所述参考位宽和所述前导零个数,确定所述运算次数;
当所述第二指数差值大于等于所述第二预设位宽小于等于所述第一预设位宽,且所述预设尾数位宽等于前导零个数时,基于所述预设尾数位宽、所述参考位宽、所述前导零个数和前导零的有效位后连续零的个数,确定所述运算次数;
当所述第二指数差值小于所述第二预设位宽时,基于所述预设尾数位宽和所述第二指数差值的绝对值,确定所述运算次数。
可选的,所述浮点除法器还包括预设查找表、第一中间迭代寄存器和第二中间迭代寄存器:
所述预设查找表,用于查询所述浮点除数的至少一个边界值;
所述第一中间迭代寄存器和所述第二中间迭代寄存器是基于所述浮点被除数进行初始化的;其中,所述第一中间迭代寄存器和所述第二中间迭代寄存器用于存储所述浮点被除数和所述浮点除数确定的浮点余数;
所述浮点除法器具体用于:基于所述运算次数,对所述浮点被除数、所述浮点除数和各边界值进行浮点除法运算,并基于所述运算次数到达时的运算结果,确定所述浮点商和所述浮点余数。
可选的,所述浮点除法器还包括比较器、多路选择器和第二进位传递加法器,具体用于:
分别获取所述第一中间迭代寄存器和所述第二中间迭代寄存器的当前取值,并将所述当前取值输入至所述第二进位传递加法器中,获得所述浮点被除数与所述浮点除数对应的浮点余数的截断值;
将每个边界值与所述截断值输入到相应的比较器中进行比较,并基于比较结果,采用所述多路选择器选择所述浮点被除数与所述浮点除数的浮点商;
基于选择的浮点商,获得本次浮点除法运算的浮点余数,并更新所述第一中间迭代寄存器和所述第二中间迭代寄存器的当前取值。
可选的,所述浮点除法器还包括乘法器和进位保留加法器,具体用于:
基于所述乘法器,对选择的浮点商与所述浮点除数相乘,获得乘积结果;
采用所述进位保留加法器,将所述第一中间迭代寄存器与所述第二中间迭代寄存器当前的取值的和,与所述乘积结果相减,获得本次浮点除法运算的浮点余数;
将本次浮点除法运算的浮点余数分开存储至所述第一中间迭代寄存器和所述第二中间迭代寄存器中,以更新所述第一中间迭代寄存器和所述第二中间迭代寄存器的当前取值。
可选的,所述浮点除法器还包括在线转换单元,用于:
当选择的浮点商为负数时,将浮点商输入所述在线转换单元,获得正数的浮点商,并将转换后的浮点商存储至商寄存器中。
可选的,所述浮点加法器包括对阶移位操作单元、第一进位传递加法器、前导零预测单元、和规格化移位操作单元;
所述阶移位操作单元,用于基于三个浮点数的指数确定的第二指数差值,对所述浮点加数的尾数进行对阶移位操作,使得所述浮点加数的尾数与所述浮点商的位宽对齐;
所述第一进位传递加法器,用于将所述浮点商和所述浮点加数的尾数进行浮点加法运算,获得初始除加结果;
所述阶移位操作单元,用于对所述浮点加数的尾数与所述浮点商进行前导零预测,获得预测结果;
所述规格化移位操作单元,用于基于预测结果,对所述初始除加结果进行规格化移位操作,获得中间除加结果;
所述舎入单元具体用于:基于所述浮点余数和预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
可选的,所述舎入单元具体用于:
对所述浮点余数中的各位数进行或操作,获得所述浮点被除数的尾数与所述浮点除数的尾数的除尽结果;
基于所述除尽结果和所述预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
可选的,所述舎入单元具体用于:
当所述除尽结果为未除尽时,基于所述中间除加结果和所述预设尾数位宽,确定舍弃位位宽;
获取所述预设尾数位宽中的最低保留位,以及所述舍弃位位宽中的最高舍弃位,并对所述舍弃位位宽中的其余位进行或操作,获得舍弃末位;
基于所述最低保留位、所述最高舍弃位、所述舍弃末位和预设舎入模式,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
另一方面,本申请实施例提供一种电子设备,包括浮点运算处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述浮点运算处理器执行时,实现上述浮点运算方法的步骤。
另一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令被电子设备执行时实现上述浮点运算方法的步骤。
另一方面,本申请实施例提供一种计算机程序产品,包含计算机程序,所述计算机程序被电子设备执行时实现上述浮点运算方法的步骤。
本申请实施例的有益效果如下:
本申请实施例提供的一种浮点运算方法、处理器、电子设备及存储介质中,通过获取的一条除加融合运算指令,便可对浮点数进行浮点除法运算和浮点加法运算,无需调用两条运算指令,浮点运算效率较高。在进行浮点除加运算时,基于获取的浮点被除数、浮点除数和浮点加数这个三个浮点数的指数,确定浮点除法运算的运算次数,这样,可以根据实际需求灵活进行除法迭代运算,在浮点加数较大的情况下,有效提升浮点运算效率的同时,减少中间运算的精度损失,同时,由于在确定浮点除法运算的运算次数时,使用了浮点加数的指数,因此,在进行浮点除加运算中的浮点加法运算时,可以基于浮点加数的指数,对浮点除法运算的结果进行动态扩展,有效保留浮点除法运算产生的中间精度,从而提高了整个浮点除加运算的精度。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的相关技术的除加运算示意图;
图2为本申请实施例适用的一种应用场景图;
图3为本申请实施例提供的基于浮点运算的图像处理方法的流程图;
图4为本申请实施例提供的浮点数的数据格式;
图5为本申请实施例提供的除法运算过程;
图6为本申请实施例提供的动态确定除法迭代的运算次数的过程示意图;
图7为本申请实施例提供的确定商和余数的方法流程图;
图8为本申请实施例提供的商选择的多路段择器的示意图;
图9为本申请实施例提供的除法电路;
图10为本申请实施例提供的加法运算过程;
图11为本申请实施例提供的舎入操作流程图;
图12为本申请实施例提供的舎入操作示意图;
图13为本申请实施例提供的除加融合电路示意图;
图14A为本申请实施例提供的一种应用案例图;
图14B为本申请实施例提供的另一种应用案例图;
图15为本申请实施例提供的基于浮点运算的图像处理装置的结构图;
图16为本申请实施例提供的电子设备的结构图;
图17为本申请实施例提供的终端设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。对比于数据挖掘从大数据之间找相互特性而言,机器学习更加注重算法的设计,让计算机能够自动地从数据中“学习”规律,并利用规律对未知数据进行预测。
深度学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。深度学习通常包括神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
进位传递加法器(Carry Propagate Adder,CPA)是一种通用加法器,用于计算两个数的和,其内部的每一位进位输出都与高一位的进位输入相连。
在线转换单元(on the Fly Convert,OFCVT)用于进行正负数的转换。
查找表(Look Up Table,LUP)本质上就是一个随机存取存储器(Random AccessMemory,RAM),把数据事先写入RAM后,每当输入一个数据就等于输入一个地址进行查表,找出地址对应的内容输出。
多路选择器(Multiplexer)是在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,也称作数据选择器或多路开关。
下面对本申请实施例的设计思想进行概述。
随着科技的不断发展,越来越多的设备可以进行人工智能(ArtificialIntelligence,AI)数据处理,而在AI数据处理中,大多数都会用到浮点数的运算。
例如,在对图像进行AI处理时,为了计算方便,一般会先将图像中像素点的颜色值归一化为0.0-1.0的浮点数,然后将以多个浮点数形式记录的颜色值归一化后的图像,输入到神经网络进行特征提取,特征提取过程中,对各浮点数进行浮点运算。
相比于整数运算,浮点数运算具有动态范围广、精度高的特点。特别是在使用图像样本集对神经网络进行训练的过程中,高精度的浮点数运算对网络参数的生成有较大影响,如果浮点数运算的精度较高,获得的网络参数越准确,这样,训练后的模型的推理准确度就会提升。
在浮点数运算中,调用浮点除法的次数比较多。通常的,浮点除法运算会和浮点加法运算进行联合,形成浮点除加运算。在神经网络的激活层中,浮点除加运算经常被使用。
相关技术在进行浮点除加运算时,通常会调用浮点除法指令和浮点加法指令分别完成除法运算和加法运算,具体的,先计算两个浮点数的除法结果,再计算该除法结果与第三个浮点数的加法结果,获得除加结果。
例如,三个浮点数分别为A、B和C,数据类型为FP32,浮点除加运算关系为A/B+C,如图1所示,首先调用浮点除法指令(FP_DIV)进行A/B的浮点除法运算,获得除法结果D,然后调用浮点加法指令(FP_ADD)进行D+C的浮点加法运算。理论上,浮点运算的输入和输出的数据类型相同,因此,浮点运算时会根据输入浮点数的数据类型,按照IEEE754标准所规定的浮点格式进行输出,且在输出之前,除法运算和加法运算的结果都要进行规格化(Normalize)和舎入(Rounding)操作。
其中,浮点除法运算通常需要进行迭代计算,每次迭代的结果一般暂存在寄存器中,且浮点除法运算的迭代次数和输出结果的位宽呈正相关。
例如,以浮点数的数据类型为FP32为例,浮点数的尾数位宽为23bit,假设每次浮点除法运算可以计算位宽为2的商,这样,至少需要迭代12次才能计算出除法结果。
然而,通过调用两条指令分别执行浮点除法运算和浮点加法运算,导致运算效率不高。同时,由于浮点除加运算的除法结果需要与浮点加数进行浮点加法运算,那么,每次迭代的浮点除法运算的中间结果都需要进行一次舎入操作,存在精度损失,并且,浮点除法运算的迭代次数只和两个浮点数能否除尽有关,如果可以除尽,可提前结束迭代,否则需要一直迭代到数据类型对应的尾数位宽为止(如对于数据类型为FP32的浮点数,尾数的截止位宽为24bit),因此,迭代次数在大部分场景下都比较多,这样会降低整个浮点除加运算的效率,且迭代次数越多,精度损失越大。
鉴于此,本申请实施例提供一种浮点运算方法,用于提高浮点数运算的精度和效率。该方法中,将浮点除法运算和浮点加法运算进行了融合,即通过调用一条除加融合运算指令,便可完成浮点除法运算和浮点加法运算,提升了运算效率。其中,在进行浮点除加运算时,基于获取的浮点被除数、浮点除数和浮点加数这三个浮点数的指数,灵活确定浮点除法运算迭代的运算次数,这样,可以根据实际需求灵活进行除法迭代运算,在浮点加数较大的情况下,有效提升浮点运算效率的同时,减少中间运算的精度损失;同时,由于在确定浮点除法运算的运算次数时,使用了浮点加数的指数,因此,在进行浮点加法运算时,可以基于浮点加数的指数,对每次浮点除法运算的除法结果进行动态扩展,尽可能保留中间结果的计算精度,有效保留浮点除法运算产生的中间结果的精度,从而提高了整个浮点除加运算的精度。
参阅图2所示,为本申请实施例中可能的应用场景示意图。该应用场景示意图中,包括终端设备110(具体可能是终端设备1101、终端设备1102…),以及服务端设备120。
在一种可选的实施方式中,终端设备110与服务端设备120之间,可以通过有线网络或无线网络进行通信。
终端设备110包括但不限于个人计算机、手机、平板电脑、笔记本、电子书阅读器、智能医疗设备,以及车载终端等具有一定计算能力的计算机设备。且该计算机设备可以安装图像处理软件,用于对以浮点形式记录的图像进行浮点运算。
服务端设备120则是与图像处理软件相对应的后台服务器,或者是专门用于进行浮点运算的服务器,本申请不做具体限定。服务端设备120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例中,终端设备110和服务端设备120中的任意一方或全部,可以部署有对神经网络进行训练后的图像处理模型,用于对图像进行浮点运算。
在一些可能的实施例中,当终端设备110上部署有图像处理模型时,终端设备110通过相机采集目标图像,在接收到数据处理指令后(可以是目标对象触发的,也可以是***自动触发的),采用图像处理模型,对目标图像包含的多个浮点数进行运算,获得处理后的图像,并通过用户界面展示给目标对象。其中,需要进行浮点除加运算时,获取浮点除加运算指令,并根据浮点除加运算指令,获取浮点被除数、浮点除数和浮点加数,并基于这三个浮点数的指数确定浮点除加运算中浮点除法运算的运算次数,然后根据运算次数,获得浮点被除数和浮点除数的除法结果,再对除法结果和浮点加数的尾数进行加法运算,获得除加融合运算结果。
在另一些可能的实施例中,当服务端设备120上部署有图像处理模型时,服务端设备120接收终端设备110发送的图像,采用目标分类模型,对终端设备110发送的目标图像包含的多个浮点数进行运算,获得处理后的图像,并将处理后的图像发送给终端设备110,由终端设备110将处理后的图像展示给目标对象。其中,服务端设备120对浮点数的运算过程与终端设备110的运算过程一致,在此不再重复。
需要说明的是,本申请实施例对浮点运算在图像处理中的场景不作限制性要求,例如,浮点运算可以应用在对图像去噪的场景中,也可以应用在对图像进行格式转换的场景中,还可以用在对图像进行分类识别的场景中。
应当说明的是,本申请实施例中,涉及到目标图像等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
基于图2所示的应用场景,本申请实施例提供的一种浮点运算方法的实施流程如图3所示,该流程有电子设备执行,该电子设备可以是图2中的终端设备110,还可以是图2中的服务端设备120,该电子设备安装有浮点运算处理器,用于实现浮点运算流程,该流程主要包括以下几步:
S301:获取除加融合运算指令。
浮点数运算包括浮点加法运算、浮点减法运算、浮点乘法运算、浮点除法运算、以及联合运算(如:浮点乘加运算、浮点除加运算等)。当需要进行浮点除加运算时,获取除加融合运算指令,其中,除加融合运算指令可以是由其他设备发送的,也可以是按照计算逻辑自动生成的等,具体不做限制。
浮点融合运算指令为将浮点除运算指令和浮点加运算指令融合得到的指令,也就是基于一条除加融合运算指令,便可实现浮点除法运算和浮点加法运算,无需调用两条指令分别进行浮点除法运算和浮点加法运算,运算效率更高。
浮点数运算中,浮点数可以按照统一的标准进行记录,使得各浮点数具有统一的数据格式,例如,各浮点数遵循IEEE754标准。请参考图4,为IEEE754标准的一种示意图。
浮点数可以通过三个部分来表示,三个部分包括符号位、指数位和尾数位。其中,符号位可以包含一位数值,用于表征浮点数的正负;指数位可以包含w位数值,用于表征浮点数的阶数;尾数位可以包含p位数值,用于表征浮点数的取值。
浮点除加运算可以应用到以多个浮点数记录的图像处理场景中,包括但不限于图像预处理场景、图像特征提取场景等。其中,多个浮点数为与图像相关的数据。例如,以多个浮点数表征图像;又例如,以多个浮点数组成的矩阵表征图像的图像特征;再例如,以多个浮点数表示图像在进行AI数据处理过程中的中间数据等,具体不做限制。
S302:基于除加融合运算指令,获取浮点除加运算的浮点被除数、浮点除数和浮点加数。
浮点除加运算包含浮点除法运算和浮点加法运算这两种运算关系,当获取到除加融合运算指令后,进行浮点除法运算和浮点加法的融合运算,即浮点除加运算。
浮点除加运算过程中,先进行浮点除法运算,再进行浮点加法运算,共涉及三个浮点数,分为浮点被除数、浮点除数和浮点加数,这三个浮点数的数据类型相同。
例如,公式A/B+C为浮点除加运算,其中,A为浮点被除数,B为浮点除数,C为浮点加数,这三个浮点数的数据类型均为FP32。
S303:基于三个浮点数的指数,确定浮点除加运算中浮点除法运算的运算次数。
在一种示例中,每个浮点数包含尾数和指数两部分。假设浮点被除数的尾数记为man_A、指数记为exp_A,浮点除数的尾数记为man_B、指数记为exp_B,浮点加数的尾数记为man_C、指数记为exp_C。
在浮点除加运算中,可先进行浮点除法运算,浮点除法运算的本质是不断迭代进行商选择的过程,类似于手算除法。因此,浮点除加运算中浮点除法运算迭代的运算次数,会影响整个除加运算的精度和效率。
目前,相关技术在无法除尽的情况下,通常会一致迭代到商的位宽达到标准中规定的浮点数的数据类型对应的位宽时才停止,这样,会降低浮点除加运算效率,且每次浮点除法运算会对输出结果进行舎入操作,随着运算次数的增加,精度损失增大。
为了解决该问题,本申请实施例提供了根据不同情况,灵活设置浮点除法运算迭代的运算次数的方式,当获取到浮点除加运算中的浮点被除数、浮点除数和浮点加数后,基于这三个浮点数的指数,来动态确定浮点除加运算中浮点除法运算迭代的运算次数。
在一种示例中,将浮点被除数、浮点除数和浮点加数这三个浮点数的指数,输入到指数处理单元(Exponent Process)中进行减法操作,获得指数差值,并结合预设尾数位宽,确定浮点除加运算中浮点除法运算的运算次数。其中,预设尾数位宽是根据这三个浮点数的数据类型设定的。
具体实施时,基于指数处理单元,计算浮点被除数的指数与浮点除数的指数间的第一指数差值,并计算浮点加数的指数与该第一指数差值的第二指数差值,然后,基于第二指数差值和预设尾数位宽,确定浮点除法运算的运算次数。
例如,第二指数差值的公式表示为:exp_delta=exp_C-(exp_A-exp_B)=exp_C-exp_A_sub_B,其中,exp_A_sub_B为第一指数差值。
本申请的实施例中,浮点除加运算中浮点除法运算迭代的运算次数,可根据不同情况灵活设置,从而减少浮点除法运算迭代的次数,提高运算效率的同时,提高运算精度。
以5种不同的情况为例,如图5所示,假设预设尾数位宽为m,浮点除法运算迭代的运算次数的确定方式主要包括以下几种:
情况一
当第二指数差值exp_delta大于等于预设尾数位宽m与参考位宽k1的和时,即exp_delta≥m+k1,表明浮点被除数A的尾数man_A和浮点除数B的尾数man_B对应的浮点商,相比于浮点加数C的尾数man_C小很多,不会对后续的浮点加法运算结果产生影响,这种情况下,无需进行浮点除法运算的迭代,即运算次数为0。其中,k1=2表示为舍入操作中的G位和S位,G位为预设尾数位宽中的最低保留位,S位为舎入位中除最高舍弃位外其余位或操作获得的舍弃末位。
情况二
当第二指数差值exp_delta大于第一预设位宽k2,且小于预设尾数位宽m与参考位宽k1的和时,即m+k1>exp_delta>k2,表明浮点被除数A的尾数man_A和浮点除数B的尾数man_B对应的浮点商,比浮点加数C的尾数man_C小,但在有效输出的尾数范围内有重叠部分G1和G2,此时,可基于预设尾数位宽与参考位宽的和与第二指数差值的差,确定浮点除法运算迭代的运算次数。其中,k2=1。
例如,假设每次浮点除法运算可以计算2bit的浮点商,则运算次数为(m+k1-exp_delta)/2。
情况三
当第二指数差值exp_delta大于等于第二预设位宽k3,小于等于第一预设位宽k2,且预设尾数位宽m大于前导零个数z时,即k2≥exp_delta≥k3&&z<m,表明浮点被除数A的尾数man_A和浮点除数B的尾数man_B对应的浮点商,与浮点加数C的尾数man_C相差较小,如果浮点商的符号位与浮点加数的符号位不同,浮点商与浮点加数的尾数实际上进行的是浮点减法运算,浮点减法运算中可能产生前导零,假设前导零个数为z,如果z<m,此时,可基于预设尾数位宽m、参考位宽k1和前导零个数z,确定浮点除法运算迭代的运算次数。其中,第二预设位宽k3=-2。
例如,假设每次浮点除法运算可以计算2bit的浮点商,则运算次数为(m+k1+z)/2。
情况四
当第二指数差值exp_delta大于等于第二预设位宽k3,小于等于第一预设位宽k2,且预设尾数位宽m等于前导零个数z时,即k2≥exp_delta≥k3&&z=m,表明浮点被除数A的尾数man_A和浮点除数B的尾数man_B对应的浮点商,与浮点加数C的尾数man_C相差较小,如果浮点商的符号位与浮点加数的符号位不同,浮点商与浮点加数的尾数实际上进行的减法运算,浮点减法运算中产生的前导零个数z等于预设尾数位宽m,此时,需要考虑浮点商的前导零z位有效位后的连续零的个数t,由于浮点商为规格化后的结果,即格式为1.xxx*2^e的形式,因此,为保证运算结果的最大精度,可基于预设尾数位宽m、参考位宽k1、前导零个数z和前导零的有效位后连续零的个数t,确定浮点除法运算迭代的运算次数。
例如,假设每次浮点除法运算可以计算2bit的浮点商,则运算次数为(m+k1+z+t)/2。
情况五
当第二指数差值exp_delta小于第三位宽时,表明浮点被除数A的尾数man_A和浮点除数B的尾数man_B对应的浮点商,与浮点加数C的尾数man_C相差较大,此时,可基于预设尾数位宽、第二指数差值的绝对值,确定浮点除法运算迭代的运算次数。
例如,假设每次浮点除法运算可以计算2bit的浮点商,则运算次数为(|exp_delta|+m)/2。
本申请实施例针对浮点除加运算中的浮点除法运算,当基于除加融合运算指令获取到三个浮点数后,根据三个浮点数的指数,分不同情况动态确定浮点除法运算迭代的运算次数,这样,针对浮点除加运算中浮点加数较大的情况,浮点除法运算无需进行迭代或只需进行少量的迭代运算,有效提高整个浮点除加运算效率的同时,减少了除法迭代产生的中间精度损失,并且,在对运算精度要求较高的情况下,能够保留浮点除法结果中较多的有效位,从而在保证了计算精度的同时,兼顾了计算性能。
S304:基于运算次数,对浮点被除数的尾数和浮点除数的尾数进行浮点除法运算,获得浮点商和浮点余数。
浮点除法运算主要包括两部分,一是指数部分相减,二是尾数部分相除,具体运算过程参见图6,主要包括以下几步:
S3041:基于预设查找表,获得浮点除数的至少一个边界值。
针对浮点除加运算中的浮点除法运算,根据浮点除数的尾数man_B,在预设查找表中进行查找,获得浮点除数对应的至少一个边界值。
S3042:基于浮点被除数,对第一中间迭代寄存器和第二中间迭代寄存器进行初始化。
基于浮点被除数的尾数man_A,对第一中间迭代寄存器Carry和第二中间迭代寄存器Sum进行初始化。具体的,将浮点被数的尾数man_A作为第一中间迭代寄存器Carry的初始值,将第二中间迭代寄存器Sum的初始值设置为0。
其中,第一中间迭代寄存器Carry和第二中间迭代寄存器Sum用于存储浮点被除数和浮点除数确定的浮点余数,即,第一中间迭代寄存器Carry和第二中间迭代寄存器Sum的和为浮点余数。
S3043:基于运算次数,对浮点被除数、浮点除数和各边界值进行浮点除法运算,并基于运算次数到达时的运算结果,确定浮点商和浮点余数。
在一种示例中,针对浮点除加运算中的浮点除法运算,可采用最短剩余时间优先(Shortest Remaining Time,SRT)算法进行迭代。
以一次浮点除法运算为例,浮点除法运算的过程如图7所示,主要包括以下几步:
S3043_1:分别获取第一中间迭代寄存器和第二中间迭代寄存器的当前取值,并将当前取值输入至第二进位传递加法器中,获得浮点被除数与浮点除数对应的浮点余数的截断值。
具体实施时,将获取的第一中间迭代寄存器的当前取值Carryi和第二中间迭代寄存器的当前取值Sumi,输入到第二进位加法器中,获得本次浮点除法运算的浮点余数,并根据第二进位传递加法器的位宽,对本次浮点除法运算获得的浮点余数进行截断,浮点余数的获得截断值。
例如,假设第二进位传递加法器的位宽为8bit,通过对Carryi和Sumi进行求和后,如果获得的浮点余数的位宽超过8bit,则只保留浮点余数的前8bit,获得浮点余数的截断值。
S3043_2:将每个边界值与截断值输入到相应的比较器中进行比较,并基于比较结果,采用多路选择器选择浮点被除数与浮点除数的浮点商。
具体实施时,将第二进位传递加法器输出的浮点余数的截断值,与查找到的浮点除数的至少一个边界值,分别输入到比较器中进行比较,并根据比较结果,采用多路选择器(Multiplexer)选择浮点被除数与浮点除数对应的浮点商。
如图8所示,以基于4个比较器(Comparer,简称为cmp)的SRT算法为例,假设本次浮点除法运算输出的浮点商的位宽为2bit时,从预设查找表中查表到的浮点除数的尾数对应的4个边界值分别为{LUT[0],LUT[1],LUT[2],LUT[3]},将每个边界值与第二进位传递加法器输出的浮点余数的截断值,分别输入到4个比较器中进行比较,然后根据比较结果,采用一个5选1的多路选择器选择本次浮点除法运算的浮点商。具体的,当第一中间迭代寄存器和第二中间迭代寄存器中浮点余数的截断值小于边界值LUT[0]时,选择位宽为-2exp_delta的浮点商;当浮点余数的截断值在边界值LUT[0]和边界值LUT[1]之间时,选择位宽为-1exp_delta的浮点商;当浮点余数的截断值在边界值LUT[1]和边界值LUT[2]之间时,选择浮点商为0;当浮点余数的截断值在边界值LUT[2]和边界值LUT[3]之间时,选择位宽为exp_delta的浮点商;当浮点余数的截断值大于边界值LUT[3]时,选择位宽为2exp_delta的浮点商。
S3043_3:基于选择的浮点商,获得本次浮点除法运算的浮点余数,并更新第一中间迭代寄存器和第二中间迭代寄存器的当前取值。
在确定本次浮点除法运算的浮点商后,还需要确定本次浮点除法运算中的浮点余数。具体的,将选择的浮点商与浮点除数的尾数相乘,获得乘积结果,然后采用进位保留加法器(Carry Save Adder,CSA),将第一中间迭代寄存器与第二中间迭代寄存器的当前取值的和,与乘积结果相减,获得本次浮点除法运算的浮点余数,并将本次浮点除法运算的浮点余数分开存储至第一中间迭代寄存器和第二中间迭代寄存器,以更新第一中间迭代寄存器和第二中间迭代寄存器的当前取值,也就是说,CSA包含三个输入口和两个输出口。本申请实施例中的通过使用CSA进行减法操作,可以避免进位的传递,减小运算延迟。
针对浮点除加运算中的浮点除法运算过程,本申请实施例提供了一种浮点除法运算电路,如图9所示,通过查找预设查找表,获得浮点除数的尾数对应的至少一个边界值,并将浮点被除数的尾数作为第一中间迭代寄存器的初始值Carryi,将第二中间迭代寄存器的初始值和Sumi设置为零,通过位宽为xbit的第二进位传递加法器后,获得中间迭代寄存器中存储的浮点余数的截断值,并将通过比较器比较截断值与各边界值的大小,由多路选择器选择相应位宽的浮点商,结合中间迭代寄存器的当前取值的和,确定本次浮点除法运算的浮点余数,并分开存储至第一中间迭代寄存器Carryi和第二中间迭代寄存器Sumi中,以更新第一中间迭代寄存器Carryi和第二中间迭代寄存器Sumi的当前取值。
在一种示例中,通过多路选择器选择的浮点商,可能会出现负数,因此,在进行浮点除加运算中浮点加法运算前,可将每次浮点除法运算选择的浮点商,输入到OFCVT中进行在线转换,获得正浮点商,并存储至商寄存器中。
浮点除法运算迭代完成后,可以获得浮点被除数的尾数与浮点除数的尾数最终的浮点商和浮点余数。
S305:将浮点商和浮点加数的尾数输入到第一进位传递加法器中进行浮点加法运算,获得初始除加结果,并基于浮点余数对初始除加结果进行舎入操作,获得目标除加结果。
完成浮点除加运算中的浮点除法运算后,可对获得的浮点除法结果与浮点加数进行浮点加法运算,浮点加法运算过程参见图10,主要包括以下几步:
S3051:基于三个浮点数的指数确定的第二指数差值,对浮点加数的尾数进行对阶移位操作,使得浮点加数的尾数与浮点商的位宽对齐。
使用第二指数差值exp_delta对浮点加数的尾数man_C进行对阶移位操作(Alignment Shift),使得浮点加数的尾数,与浮点被除数的尾数与浮点除数的尾数对应的浮点商的位宽对齐。
S3052:将浮点加数的尾数与浮点商,输入到第一进位传递加法器中,获得初始除加结果。
采用第一进位传递加法器,对浮点加数的尾数浮点商进行求和,获得初始除加结果,此时,初始除加结果的位宽与二者的位宽相同。
S3053:对浮点加数的尾数与浮点商进行前导零预测,获得预测结果。
同时,将浮点加数的尾数与浮点商,输入到前导零预测单元(Leading ZeroAnticipator,LZA)中进行前导零预测,获得预测结果。
本申请的实施例中,将前导零预测和浮点加法运算并行进行,可进一步降低浮点除加运算整体的计算延迟,从而提高运算效率。
S3054:基于预测结果,对初始除加结果进行规格化移位操作,获得中间除加结果。
按照浮点数记录的标准,基于LZA输出的预测结果,对初始除加结果进行规格化移位操作(Normalize Shift),获得中间除加结果。
S3055:基于浮点余数和预设尾数位宽,对中间除加结果进行舎入操作,获得目标除加结果。
除法迭代完成后,通过第一进位传递加法器对第一中间迭代寄存器与第二中间迭代寄存器的取值进行求和,可以获得浮点余数,基于浮点预设和预设尾数位宽,可以获得目标除加结果。
具体实施时,对浮点余数中的各位数进行或操作(Sticky),获得浮点被除数的尾数与浮点除数的尾数的除尽结果,例如,当浮点被除数的尾数能被浮点除数的尾数除尽时,或操作的结果为0,当浮点被除数的尾数不能被浮点除数的尾数除尽时,或操作的结果为1。进一步地,基于除尽结果和预设尾数位宽,对中间除加结果进行舎入操作,获得浮点除加运算的目标除加结果。
舎入操作的具体过程参见图11,主要包括以下几步:
S3055_1:当除尽结果为未除尽时,基于中间除加结果和预设尾数位宽,确定舍弃位位宽。
当浮点数的数据类型确定后,浮点运算输出结果的尾数位宽也就确定的,记为预设尾数位宽(即有效位),当除尽结果为未除尽时,可用中间除加结果的位宽,减去预设尾数位宽,得到舍弃位位宽。
S3055_2:获取预设尾数位宽中的最低保留位,以及舍弃位位宽中的最高舍弃位,并对舍弃位位宽中的其余位进行或操作,获得舍弃末位。
S3055_3:基于最低保留位、最高舍弃位、舍弃末位和预设舎入模式,对中间除加结果进行舎入操作,获得目标除加结果。
例如,如图12所示,假设有效位的位宽为m(单位:bit),舍弃位位宽为n(单位:bit),有效位的最低保留位记为G位,舍弃位的最高舍弃位为R位,舍弃位中除最高舍弃位的其余位或操作后的结果,记为末位数为S,根据G/R/S以及预设舍入模式,可以得到目标除加运算结果是有效位还是有效位+1。
本申请实施例提供的一种浮点运算方法中,通过获取的一条除加运算融合指令,便可实现浮点除加运算中浮点除法运算和浮点加法运算的融合运算,无需针对两种浮点运算分别调用不同的指令,运算效率较高。其中,在浮点除加运算过程中,针对浮点除法运算,基于浮点被除数、浮点除数和浮点加数这三个浮点数的指数,动态确定浮点除法运算迭代的运算次数,从而可以根据实际情况灵活调整除法迭代次数,在浮点加数的尾数大于浮点商的情况下,仅需要执行少量的浮点除法运算,提高运算效率的同时,减少了除法迭代造成的中间精度损失,提高了运算精度。同时,由于在确定浮点除法运算的运算次数时,使用了浮点加数的指数,因此,在进行浮点加法运算时,可以基于浮点加数的指数,对除法结果进行动态扩展,有效保留了浮点除加运算中除法运算产生的中间精度,进而提升了整个运算的精度。
为了通过一条除加融合指令实现浮点除加运算,本申请实施例提供了一种除加融合(Divide-Add Fused,DAF)电路,如图13所示,基于浮点被除数的尾数和浮点除数的尾数确定的浮点商和浮点余数后,通过对阶移位操作,将浮点商与浮点加数的尾数的位宽对齐,并将浮点商和浮点加数的尾数,同时输入到进位传递加法器和前导零预测单元中,分别获得初始除加结果和预测结果,并根据预测结果对初始除加结果进行规格化移位操作,获得中间除加结果。进一步地,通过进位传递加法器,对第一中间迭代寄存器和第二中间迭代寄存器的取值进行求和,获得浮点余数,并对浮点余数的各位数进行或操作,基于或操作结果,对中间除加结果进行舎入操作,获得目标除加结果。
通过本申请实施例提供的除加融合电路,可以通过调用一条除加融合运算指令执行浮点除法运算和浮点加法运算,有效提高了整个除加运算的运算效率,且相对于除法运算和加法运算的独立电路,该除加融合电路的占用的芯片面积小,可以适用于各类终端设备,提升了产品的竞争力。
本申请实施例提供的除加融合电路,可适用于对以浮点数形式记录的目标图像进行的多种处理场景中。
在一种示例中,可以将本申请实施例提供的除加融合电路,应用于图像格式转换场景中。具体的,将上述除加融合电路集成在智能手机中,用于执行智能手机中部署的图像处理模型的算法,对图像进行格式转换,生成卡通图像。
例如,如图14A所示,针对智能手机采集的目标对象的人脸图像,通过“立即转换”选项发送图像转换请求,基于该请求,智能手机对该人脸图像进行颜色值的归一化等预处理操作,获得以多个浮点数记录的图像,然后采用图像处理模型,对预处理后的图像进行特征提取,特征提取过程涉及的浮点运算包括浮点除加运算。通过浮点运算,生成该人脸图像对应的卡通图像。
需要说明的是,在对以浮点数形式记录的图像进行处理时,还可以执行其它浮点运算,如乘加运算、加法运算、减法运算等。
在一种示例中,本申请实施例提供的除加融合电路,还可以应用于目标识别时对图像进行预处理场景。具体的,在对图像进行AI处理前,采用上述除加融合电路对目标图像进行去噪处理,以提高目标识别的准确性。
例如,如图14B所示,为基于浮点运算对图像进行去噪处理的对比效果图,上部分为去噪前的图像,下半部分为去噪后的图像。其中,在去噪过程中,除了进行除加运算时,还可以执行其他运算,如乘加运算、加法运算、减法运算等。
基于相同的技术构思,本申请实施例提供了一种浮点运算装置的结构示意图,该浮点运算装置能够实现上述浮点运算方法,且能达到相同的技术效果。
参见图15,该浮点运算装置包括输入/输出接口1501、浮点除法器1502、浮点加法器1503和舎入单元1504,其中:
输入/输出接口1501,用于获取除加融合运算指令;以及,基于所述除加融合运算指令,获取浮点除加运算的浮点被除数、浮点除数和浮点加数;其中,所述浮点融合运算指令为将浮点除运算指令和浮点加运算指令融合得到的指令;
浮点除法器1502,用于基于所述运算次数,对所述浮点被除数的尾数和所述浮点除数的尾数进行浮点除法运算,获得浮点商和浮点余数;
浮点加法器1503,用于将所述浮点商和所述浮点加数的尾数,输入到第一进位传递加法器中进行浮点加法运算,获得初始除加结果;
舎入单元1504,用于基于所述浮点余数对所述初始除加结果进行舎入操作,获得目标除加结果。
可选的,所述浮点除法器包括指数处理单元1502_1和迭代运算器1502_2:
所述指数处理单元1502_1,用于计算所述浮点被除数的指数与所述浮点除数的指数间的第一指数差值,并计算所述浮点加数的指数与所述第一指数差值的第二指数差值;
迭代运算器1502_1,用于基于所述第二指数差值和预设尾数位宽,确定所述浮点除加运算中浮点除法运算的运算次数。
可选的,所述迭代运算器1502_2具体用于:
当所述第二指数差值大于等于所述预设尾数位宽与参考位宽的和时,确定所述运算次数为零;其中,所述参考位宽是基于所述预设尾数位宽中的最低保留位和舎入位中除最高舍弃位外其余位的或操作结果确定的;
当所述第二指数差值大于第一预设位宽,且小于所述预设尾数位宽与所述参考位宽的和时,基于所述预设尾数位宽与所述参考位宽的和,与所述第二指数差值的差,确定所述运算次数;
当所述第二指数差值大于等于第二预设位宽小于等于所述第一预设位宽,且所述预设尾数位宽大于前导零个数时,基于所述预设尾数位宽、所述参考位宽和所述前导零个数,确定所述运算次数;
当所述第二指数差值大于等于所述第二预设位宽小于等于所述第一预设位宽,且所述预设尾数位宽等于前导零个数时,基于所述预设尾数位宽、所述参考位宽、所述前导零个数和前导零的有效位后连续零的个数,确定所述运算次数;
当所述第二指数差值小于所述第二预设位宽时,基于所述预设尾数位宽和所述第二指数差值的绝对值,确定所述运算次数。
可选的,所述浮点除法器还包括预设查找表1502_3、第一中间迭代寄存器1502_4和第二中间迭代寄存器1502_5:
所述预设查找表1502_3,用于查询所述浮点除数的至少一个边界值;
所述第一中间迭代寄存器1502_4和所述第二中间迭代寄存器1502_5是基于所述浮点被除数进行初始化的;其中,所述第一中间迭代寄存器1502_4和所述第二中间迭代寄存器1502_5用于存储所述浮点被除数和所述浮点除数确定的浮点余数;
所述浮点除法器1502具体用于:基于所述运算次数,对所述浮点被除数、所述浮点除数和各边界值进行浮点除法运算,并基于所述运算次数到达时的运算结果,确定所述浮点商和所述浮点余数。
可选的,所述浮点除法器1502还包括比较器1502_6、多路选择器1502_7和第二进位传递加法器1502_8,具体用于:
分别获取所述第一中间迭代寄存器1502_4和所述第二中间迭代寄存器1502_5的当前取值,并将所述当前取值输入至所述第二进位传递加法器1502_8中,获得所述浮点被除数与所述浮点除数对应的浮点余数的截断值;
将每个边界值与所述截断值输入到相应的比较器1502_6中进行比较,并基于比较结果,采用所述多路选择器1502_7选择所述浮点被除数与所述浮点除数的浮点商;
基于选择的浮点商,获得本次浮点除法运算的浮点余数,并更新所述第一中间迭代寄存器1502_4和所述第二中间迭代寄存器1502_5的当前取值。
可选的,所述浮点除法器还包括乘法器1502_9和进位保留加法器1502_10,具体用于:
基于所述乘法器1502_9,对选择的浮点商与所述浮点除数相乘,获得乘积结果;
采用所述进位保留加法器1502_10,将所述第一中间迭代寄存器1502_4与所述第二中间迭代寄存器1502_5当前的取值的和,与所述乘积结果相减,获得本次浮点除法运算的浮点余数;
将本次浮点除法运算的浮点余数分开存储至所述第一中间迭代寄存器1502_4和所述第二中间迭代寄存器1502_5中,以更新所述第一中间迭代寄存器1502_4和所述第二中间迭代寄存器1502_5的当前取值。
可选的,所述浮点除法器还包括在线转换单元1502_11,用于:
当选择的浮点商为负数时,将浮点商输入所述在线转换单元,获得正数的浮点商,并将转换后的浮点商存储至商寄存器中。
可选的,所述浮点加法器1503包括对阶移位操作单元1503_1、第一进位传递加法器1503_2、前导零预测单元1503_3和规格化移位操作单元1503_4;
所述阶移位操作单元1503_1,用于基于三个浮点数的指数确定的第二指数差值,对所述浮点加数的尾数进行对阶移位操作,使得所述浮点加数的尾数与所述浮点商的位宽对齐;
所述第一进位传递加法器1503_2,用于将所述浮点商和所述浮点加数的尾数进行浮点加法运算,获得初始除加结果;
所述阶移位操作单元1503_3,用于对所述浮点加数的尾数与所述浮点商进行前导零预测,获得预测结果;
所述规格化移位操作单元1503_4,用于基于预测结果,对所述初始除加结果进行规格化移位操作,获得中间除加结果;
所述舎入单元1504具体用于:基于所述浮点余数和预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
可选的,所述舎入单元1504具体用于:
对所述浮点余数中的各位数进行或操作,获得所述浮点被除数的尾数与所述浮点除数的尾数的除尽结果;
基于所述除尽结果和所述预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
可选的,所述舎入单元1504具体用于:
当所述除尽结果为未除尽时,基于所述中间除加结果和所述预设尾数位宽,确定舍弃位位宽;
获取所述预设尾数位宽中的最低保留位,以及所述舍弃位位宽中的最高舍弃位,并对所述舍弃位位宽中的其余位进行或操作,获得舍弃末位;
基于所述最低保留位、所述最高舍弃位、所述舍弃末位和预设舎入模式,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
本申请实施例提供的一种基于浮点运算的图像处理装置,通过获取的一条除加融合运算指令,便可对浮点数进行浮点除法运算和浮点加法运算,无需调用两条运算指令,浮点运算效率较高。在进行浮点除加运算时,基于获取的浮点被除数、浮点除数和浮点加数这个三个浮点数的指数,确定浮点除法运算的运算次数,这样,可以根据实际需求灵活进行除法迭代运算,在浮点加数较大的情况下,有效提升浮点运算效率的同时,减少中间运算的精度损失,同时,由于在确定浮点除法运算的运算次数时,使用了浮点加数的指数,因此,在进行浮点除加运算中的浮点加法运算时,可以基于浮点加数的指数,对浮点除法运算的结果进行动态扩展,有效保留浮点除法运算产生的中间精度,从而提高了整个浮点除加运算的精度。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。在一种实施例中,该电子设备可以是图2中的服务端设备,还可以是图2中的终端设备。在该实施例中,电子设备的结构可以如图16所示,包括存储器1601,通讯模块1603以及一个或多个浮点运算处理器1602。
存储器1601,用于存储浮点运算处理器1602执行的计算机程序。存储器1601可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***和操作指令集等。
存储器1601可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1601也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1601是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1601可以是上述存储器的组合。
浮点运算处理器1602,可以包括一个或多个中央处理单元(central processingunit,CPU)或者为数字处理单元等等。浮点运算处理器1602,用于调用存储器1601中存储的计算机程序时实现上述浮点运算方法。
通讯模块1603用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1601、通讯模块1603和浮点运算处理器1602之间的具体连接介质。本申请实施例在图16中以存储器1601和浮点运算处理器1602之间通过总线1604连接,总线1604在图16中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1604可以分为地址总线、数据总线、控制总线等。为便于描述,图16中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1601中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的浮点运算方法。浮点运算处理器1602用于执行上述浮点运算方法的步骤。
在另一种实施例中,电子设备可以是图2所示的终端设备。在该实施例中,终端设备的结构可以如图17所示,包括:通信组件1710、存储器1720、显示单元1730、摄像头1740、传感器1750、音频电路1760、蓝牙模块1770、浮点运算处理器1780等部件。
通信组件1710用于与服务器进行通信。在一些实施例中,可以包括电路无线保真(Wireless Fidelity,WiFi)模块,WiFi模块属于短距离无线传输技术,电子设备通过WiFi模块可以帮助对象收发信息。
存储器1720可用于存储软件程序及数据。处理器1780通过运行存储在存储器1720的软件程序或数据,从而执行终端设备的各种功能以及数据处理。存储器1720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器1720存储有使得终端设备能运行的操作***。本申请中存储器1720可以存储操作***及各种应用程序,还可以存储执行本申请实施例浮点运算方法的计算机程序。
显示单元1730还可用于显示由对象输入的信息或提供给对象的信息以及终端设备的各种菜单的图形对象界面。具体地,显示单元1730可以包括设置在终端设备的显示屏1732。其中,显示屏1732可以采用液晶显示器、发光二极管等形式来配置。显示单元1730可以用于显示本申请实施例中的应用操作界面。
显示单元1730还可用于接收输入的数字或字符信息,产生与终端设备的对象设置以及功能控制有关的信号输入,具体地,显示单元1730可以包括设置在终端设备的触控屏1731,可收集对象在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
其中,触控屏1731可以覆盖在显示屏1732之上,也可以将触控屏1731与显示屏1732集成而实现终端设备的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元1730可以显示应用程序以及对应的操作步骤。
摄像头1740可用于捕获目标图像。摄像头1740可以是一个,也可以是多个。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件或互补金属氧化物半导体光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给浮点运算处理器1780转换成数字图像信号。
终端设备还可以包括至少一种传感器1750,比如加速度传感器1751、距离传感器1752、指纹传感器1753、温度传感器1754。终端设备还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路1760、扬声器1761、传声器1762可提供对象与终端设备之间的音频接口。音频电路1760可将接收到的音频数据转换后的电信号,传输到扬声器1761,由扬声器1761转换为声音信号输出。终端设备还可配置音量按钮,用于调节声音信号的音量。另一方面,传声器1762将收集的声音信号转换为电信号,由音频电路1760接收后转换为音频数据,再将音频数据输出至通信组件1710以发送给比如另一终端设备,或者将音频数据输出至存储器1720以便进一步处理。
蓝牙模块1770用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备可以通过蓝牙模块1770与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
浮点运算处理器1780是终端设备的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器1720内的软件程序,以及调用存储在存储器1720内的数据,执行终端设备的各种功能和处理数据。在一些实施例中,浮点运算处理器1780可包括一个或多个处理单元;处理器1780还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作***、对象界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到浮点运算处理器1780中。本申请中浮点运算处理器1780可以运行操作***、应用程序、对象界面显示及触控响应,以及本申请实施例的浮点运算方法。另外,浮点运算处理器1780与显示单元1730耦接。
在一些可能的实施方式中,本申请提供的浮点运算方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的浮点运算方法中的步骤,例如,电子设备可以执行如图3中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器、只读存储器、可擦式可编程只读存储器、光纤、便携式紧凑盘只读存储器、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器并包括计算机程序,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的计算机程序,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。计算机程序可以完全地在用户计算装置上执行、部分地在用户计算装置上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网或广域网连接到用户计算装置,或者,可以连接到外部计算装置。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (14)

1.一种浮点运算方法,应用在浮点运算处理器,其特征在于,所述方法包括:
获取除加融合运算指令,所述浮点融合运算指令为将浮点除运算指令和浮点加运算指令融合得到的指令;
基于所述除加融合运算指令,获取浮点除加运算的浮点被除数、浮点除数和浮点加数;
基于三个浮点数的指数,确定所述浮点除加运算中浮点除法运算的运算次数;
基于所述运算次数,对所述浮点被除数的尾数和所述浮点除数的尾数进行浮点除法运算,获得浮点商和浮点余数;
采用第一进位传递加法器,对所述浮点商和所述浮点加数的尾数进行浮点加法运算,获得初始除加结果,基于所述浮点余数对所述初始除加结果进行舎入操作,获得目标除加结果。
2.如权利要求1所述的方法,其特征在于,所述基于三个浮点数的指数,确定所述浮点除加运算中浮点除法运算的运算次数,包括:
基于指数处理单元,计算所述浮点被除数的指数与所述浮点除数的指数间的第一指数差值,并计算所述浮点加数的指数与所述第一指数差值的第二指数差值;
基于所述第二指数差值和预设尾数位宽,确定所述浮点除加运算中浮点除法运算的运算次数。
3.如权利要求2所述的方法,其特征在于,所述基于所述第二指数差值和预设尾数位宽,确定所述浮点除加运算中浮点除法运算的运算次数,包括:
当所述第二指数差值大于等于所述预设尾数位宽与参考位宽的和时,确定所述运算次数为零;其中,所述参考位宽是基于所述预设尾数位宽中的最低保留位和舎入位中除最高舍弃位外其余位的或操作结果确定的;
当所述第二指数差值大于第一预设位宽,且小于所述预设尾数位宽与所述参考位宽的和时,基于所述预设尾数位宽与所述参考位宽的和,与所述第二指数差值的差,确定所述运算次数;
当所述第二指数差值大于等于第二预设位宽小于等于所述第一预设位宽,且所述预设尾数位宽大于前导零个数时,基于所述预设尾数位宽、所述参考位宽和所述前导零个数,确定所述运算次数;
当所述第二指数差值大于等于所述第二预设位宽小于等于所述第一预设位宽,且所述预设尾数位宽等于前导零个数时,基于所述预设尾数位宽、所述参考位宽、所述前导零个数和前导零的有效位后连续零的个数,确定所述运算次数;
当所述第二指数差值小于所述第二预设位宽时,基于所述预设尾数位宽和所述第二指数差值的绝对值,确定所述运算次数。
4.如权利要求1所述的方法,其特征在于,所述基于所述运算次数,对所述浮点被除数的尾数和所述浮点除数的尾数进行浮点除法运算,获得浮点商和浮点余数,包括:
基于预设查找表,获得所述浮点除数的至少一个边界值;
基于所述浮点被除数,对第一中间迭代寄存器和第二中间迭代寄存器进行初始化;其中,所述第一中间迭代寄存器和所述第二中间迭代寄存器用于存储所述浮点被除数和所述浮点除数确定的浮点余数;
基于所述运算次数,对所述浮点被除数、所述浮点除数和各边界值进行浮点除法运算,并基于所述运算次数到达时的运算结果,确定所述浮点商和所述浮点余数。
5.如权利要求4所述的方法,其特征在于,针对每次浮点除法运算,执行以下操作:
分别获取所述第一中间迭代寄存器和所述第二中间迭代寄存器的当前取值,并将所述当前取值输入至第二进位传递加法器中,获得所述浮点被除数与所述浮点除数对应的浮点余数的截断值;
将每个边界值与所述截断值输入到相应的比较器中进行比较,并基于比较结果,采用多路选择器选择所述浮点被除数与所述浮点除数的浮点商;
基于选择的浮点商,获得本次浮点除法运算的浮点余数,并更新所述第一中间迭代寄存器和所述第二中间迭代寄存器的当前取值。
6.如权利要求5所述的方法,其特征在于,所述基于选择的浮点商,获得本次浮点除法运算的浮点余数,并更新所述第一中间迭代寄存器和所述第二中间迭代寄存器的当前取值,包括:
将选择的浮点商与所述浮点除数相乘,获得乘积结果;
采用进位保留加法器,将所述第一中间迭代寄存器与所述第二中间迭代寄存器当前的取值的和,与所述乘积结果相减,获得本次浮点除法运算的浮点余数;
将本次浮点除法运算的浮点余数分开存储至所述第一中间迭代寄存器和所述第二中间迭代寄存器中,以更新所述第一中间迭代寄存器和所述第二中间迭代寄存器的当前取值。
7.如权利要求5所述的方法,其特征在于,采用多路选择器选择所述浮点被除数与所述浮点除数的浮点商之后,所述方法还包括:
当选择的浮点商为负数时,采用在线转换单元,将所述浮点商转换为正数,并将转换后的浮点商存储至商寄存器中。
8.如权利要求1-7中任一项所述的方法,其特征在于,所述采用第一进位传递加法器,对所述浮点商和所述浮点加数的尾数进行浮点加法运算,获得初始除加结果,并基于所述浮点余数对所述初始除加结果进行舎入操作,获得目标除加结果,包括:
基于三个浮点数的指数确定的第二指数差值,对所述浮点加数的尾数进行对阶移位操作,使得所述浮点加数的尾数与所述浮点商的位宽对齐;
将所述浮点加数的尾数与所述浮点商,输入到所述第一进位传递加法器中,获得所述初始除加结果,以及,对所述浮点加数的尾数与所述浮点商进行前导零预测,获得预测结果;
基于预测结果,对所述初始除加结果进行规格化移位操作,获得中间除加结果;
基于所述浮点余数和预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
9.如权利要求8所述的方法,其特征在于,所述基于所述浮点余数和预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果,包括:
对所述浮点余数中的各位数进行或操作,获得所述浮点被除数的尾数与所述浮点除数的尾数的除尽结果;
基于所述除尽结果和所述预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
10.如权利要求9所述的方法,其特征在于,所述基于所述除尽结果和所述预设尾数位宽,对所述中间除加结果进行舎入操作,获得所述目标除加结果,包括:
当所述除尽结果为未除尽时,基于所述中间除加结果和所述预设尾数位宽,确定舍弃位位宽;
获取所述预设尾数位宽中的最低保留位,以及所述舍弃位位宽中的最高舍弃位,并对所述舍弃位位宽中的其余位进行或操作,获得舍弃末位;
基于所述最低保留位、所述最高舍弃位、所述舍弃末位和预设舎入模式,对所述中间除加结果进行舎入操作,获得所述目标除加结果。
11.一种浮点运算处理器,其特征在于,包括:
输入/输出接口,用于获取除加融合运算指令;以及,基于所述除加融合运算指令,获取浮点除加运算的浮点被除数、浮点除数和浮点加数;其中,所述浮点融合运算指令为将浮点除运算指令和浮点加运算指令融合得到的指令;
浮点除法器,用于基于所述运算次数,对所述浮点被除数的尾数和所述浮点除数的尾数进行浮点除法运算,获得浮点商和浮点余数;
浮点加法器,用于将所述浮点商和所述浮点加数的尾数,输入到第一进位传递加法器中进行浮点加法运算,获得初始除加结果;
舎入单元,用于基于所述浮点余数对所述初始除加结果进行舎入操作,获得目标除加结果。
12.一种电子设备,其特征在于,其包括浮点运算处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述浮点运算处理器执行权利要求1-10中任一所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1-10中任一所述方法的步骤。
14.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的浮点运算处理器从所述计算机可读存储介质读取所述计算机程序时,所述浮点运算处理器执行所述计算机程序,使得所述电子设备执行权利要求1-10中任一所述方法的步骤。
CN202310552164.4A 2023-05-16 2023-05-16 一种浮点运算方法、处理器、电子设备及存储介质 Pending CN117215646A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310552164.4A CN117215646A (zh) 2023-05-16 2023-05-16 一种浮点运算方法、处理器、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310552164.4A CN117215646A (zh) 2023-05-16 2023-05-16 一种浮点运算方法、处理器、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117215646A true CN117215646A (zh) 2023-12-12

Family

ID=89044960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310552164.4A Pending CN117215646A (zh) 2023-05-16 2023-05-16 一种浮点运算方法、处理器、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117215646A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785117A (zh) * 2023-12-26 2024-03-29 合芯科技(苏州)有限公司 基于srt4实现srt16的除法运算电路
CN117827145A (zh) * 2024-03-04 2024-04-05 浪潮(北京)电子信息产业有限公司 浮点运算装置及其处理方法、信息处理***、硬件加速器
CN117971162A (zh) * 2024-04-02 2024-05-03 坎德拉(深圳)新能源科技有限公司 应用于磁轴承控制的预测模型的数据处理方法及相关设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785117A (zh) * 2023-12-26 2024-03-29 合芯科技(苏州)有限公司 基于srt4实现srt16的除法运算电路
CN117827145A (zh) * 2024-03-04 2024-04-05 浪潮(北京)电子信息产业有限公司 浮点运算装置及其处理方法、信息处理***、硬件加速器
CN117827145B (zh) * 2024-03-04 2024-05-03 浪潮(北京)电子信息产业有限公司 浮点运算装置及其处理方法、信息处理***、硬件加速器
CN117971162A (zh) * 2024-04-02 2024-05-03 坎德拉(深圳)新能源科技有限公司 应用于磁轴承控制的预测模型的数据处理方法及相关设备
CN117971162B (zh) * 2024-04-02 2024-07-12 坎德拉(深圳)新能源科技有限公司 应用于磁轴承控制的预测模型的数据处理方法及相关设备

Similar Documents

Publication Publication Date Title
CN111476309B (zh) 图像处理方法、模型训练方法、装置、设备及可读介质
CN117215646A (zh) 一种浮点运算方法、处理器、电子设备及存储介质
EP3674883B1 (en) Multiplication circuit, system on chip, and electronic device
CN111967467B (zh) 图像目标检测方法、装置、电子设备和计算机可读介质
CN112650790B (zh) 目标点云平面确定方法,装置,电子设备及存储介质
US11704543B2 (en) Neural network hardware acceleration with stochastic adaptive resource allocation
CN111339737B (zh) 实体链接方法、装置、设备及存储介质
CN113721884B (zh) 运算方法、装置、芯片、电子装置及存储介质
CN110826706A (zh) 用于神经网络的数据处理方法和装置
CN117648959B (zh) 支持神经网络运算的多精度操作数运算装置
CN110337636A (zh) 数据转换方法和装置
WO2024120249A1 (zh) 数据处理方法、装置、设备及存储介质
WO2022012178A1 (zh) 用于生成目标函数的方法、装置、电子设备和计算机可读介质
CN111583102B (zh) 人脸图像处理方法、装置、电子设备及计算机存储介质
CN114282587A (zh) 数据处理方法、装置、计算机设备及存储介质
CN117420982A (zh) 包括融合乘累加器的芯片、设备及数据运算的控制方法
CN110619602B (zh) 一种图像生成方法、装置、电子设备及存储介质
CN115880719A (zh) 手势深度信息生成方法、装置、设备和计算机可读介质
CN116798027A (zh) 基于多尺度特征提取的三维点云实时云匹配方法及装置
CN111104566B (zh) 特征索引编码方法、装置、电子设备及存储介质
CN115272760A (zh) 适用于森林火灾烟雾检测的小样本烟雾图像细分类方法
CN109558109B (zh) 数据运算装置及相关产品
CN109582279B (zh) 数据运算装置及相关产品
CN116467153A (zh) 数据处理方法、装置、计算机设备及存储介质
CN110222777B (zh) 图像特征的处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication