CN110058881B - 一种定点累加运算的处理方法、装置和电子设备 - Google Patents

一种定点累加运算的处理方法、装置和电子设备 Download PDF

Info

Publication number
CN110058881B
CN110058881B CN201910131371.6A CN201910131371A CN110058881B CN 110058881 B CN110058881 B CN 110058881B CN 201910131371 A CN201910131371 A CN 201910131371A CN 110058881 B CN110058881 B CN 110058881B
Authority
CN
China
Prior art keywords
fixed
point accumulation
bit number
bit
data register
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.)
Active
Application number
CN201910131371.6A
Other languages
English (en)
Other versions
CN110058881A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910131371.6A priority Critical patent/CN110058881B/zh
Publication of CN110058881A publication Critical patent/CN110058881A/zh
Application granted granted Critical
Publication of CN110058881B publication Critical patent/CN110058881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本说明书实施例公开了一种定点累加运算的处理方法、装置及电子设备,所述方法包括:将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;基于第一比特位数执行定点累加运算,并将定点累加结果存放至第一比特位数对应的第一数据寄存器中,其中,当第一数据寄存器中定点累加结果发生饱和溢出时状态寄存器的指定标志位被置为预设值;读取所述指定标志位;如果指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至第二比特位数对应的第二数据寄存器中;其中,所述第一比特位数少于所述第二比特位数。

Description

一种定点累加运算的处理方法、装置和电子设备
技术领域
本说明书涉及计算机软件技术领域,尤其涉及一种定点累加运算的处理方法、装置和电子设备。
背景技术
目前,在执行定点累加运算过程中,可以采用数据寄存器来存放每次累加运算结果,直至定点累加运算全部完成。
在定点累加运算过程中,尤其是数据寄存器存放累加运算结果时,一方面,数据寄存器会由于位数过少而存在数据饱和溢出风险,另一方面,数据寄存器也会由于位数过多而增加运行指令计算量的问题,从而降低定点累加运算处理性能。
发明内容
本说明书实施例的目的是提供一种定点累加运算的处理方法、装置和电子设备,以有效提升定点累加运算处理性能。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种定点累加运算的处理方法,包括:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
第二方面,提出了一种定点累加运算的处理装置,包括:
重置模块,将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
第一处理模块,基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取模块,读取所述指定标志位;
第二处理模块,如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
由本说明书实施例提供的以上技术方案可见,在进行定点累加运算处理时,可以先将状态寄存器的指定标志位重置,然后,基于比特位数较少的第一比特位数执行定点累加运算处理,并将定点累加结果存放在第一比特位数对应的第一数据寄存器中,保证在处理相同数据时,相比于以第二比特位数执行定点累加运算而言,可减少计算量,提升处理性能。在定点累加运算处理过程中,如果状态寄存器的指定标志位被置为预设值,则可以基于比特位数较多的第二比特位数执行定点累加运算处理,并将定点累加结果存放在第二比特位数对应的第二数据寄存器中,避免定点累加运算过程中饱和溢出影响最终定点累加结果。进而,在计算性能和饱和溢出两方面至少可以兼顾一项,灵活性较高,从整体上提升定点累加运算处理性能。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书的一个实施例提供的定点累加运算的处理方法步骤示意图;
图2是本说明书的一个实施例提供的定点累加运算的处理流程示意图;
图3是本说明书的一个实施例提供的电子设备的结构示意图;
图4是本说明书的一个实施例提供的定点累加运算的处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
参照图1所示,为本说明书实施例提供的定点累加运算的处理方法步骤示意图,该处理方法的执行主体可以是定点累加运算处理装置,例如,可以是:手机、计算机、平板电脑等具备计算存储功能的电子设备。
该处理方法可以包括以下步骤:
步骤102:将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出。
具体地,将指定标志位重置可以为该指定标志位设置一取值,以表征第一数据寄存器中数据未发生饱和溢出,从而可以保证每次定点累加运算之前第一数据寄存器中没有饱和溢出,使得本次定点累加运算可以优先以比特位数较少的第一比特位数执行定点累加运算。
步骤104:基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值。
应理解,由于浮点类的运算并不涉及饱和溢出的问题,因此,本说明书实施例中的累加运算是定点累加运算。
本说明书实施例中,在执行定点累加运算时,输入数据的数据类型并不作限定,一般情况下,输入数据的比特位数不多于第一比特位数。输出数据,即定点累加结果。在执行定点累加运算时,可以将定点累加运算的每一次累加结果存放在第一数据寄存器中。
应理解,第一数据寄存器中存放的累加结果是每次累加更新后的累加结果。在累加运算过程中,所述第一数据寄存器中存放的数据,即定点累加结果可能会由于第一数据寄存器的位数限制而发生饱和溢出。而当第一数据寄存器中定点累加结果发生饱和溢出时,状态寄存器的指定标志位会被置为预设值。
其中,所述预设值可以是0或1。应理解,该预设值与状态寄存器重置后指定标志位的取值不同。
在本说明书实施例中,状态寄存器的指定标志位可以是饱和标志位,所述饱和标志位的具体位数位置可以根据系统设计进行定义。
例如,针对ARM处理器中CPU上的单指令多数据流(Single Instruction MultipleData,SIMD)的扩展结构NEON,可以定义状态寄存器的第27位作为饱和标志位。
步骤106:读取所述指定标志位。
在每次定点累加结果存放至第一数据寄存器后,都可以读取指定标志位的取值,以判断第一数据寄存器是否发生饱和溢出。具体读取操作可以按照现有的读取操作执行。
步骤108:如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;其中,所述第一比特位数少于所述第二比特位数。
如果读取到的指定标志位的取值为预设值,则确定第一数据寄存器发生饱和溢出,无论该饱和溢出是基于哪一次定点累加结果导致的,都可以基于第二比特位数重新执行本次的定点累加运算处理,并将定点累加结果存放至第二比特位数对应的第二数据寄存器中。
应理解,上述所涉及的第一比特位数少于所述第二比特位数。
通过上述技术方案,在进行定点累加运算处理时,可以先将状态寄存器的指定标志位重置,然后,基于比特位数较少的第一比特位数执行定点累加运算处理,并将定点累加结果存放在第一比特位数对应的第一数据寄存器中,保证在处理相同数据时,相比于以第二比特位数执行定点累加运算而言,可减少计算量,提升处理性能。在定点累加运算处理过程中,如果状态寄存器的指定标志位被置为预设值,则可以基于比特位数较多的第二比特位数执行定点累加运算处理,并将定点累加结果存放在第二比特位数对应的第二数据寄存器中,避免定点累加运算过程中饱和溢出影响最终定点累加结果。进而,在计算性能和饱和溢出两方面至少可以兼顾一项,灵活性较高,从整体上提升定点累加运算处理性能。
应理解,步骤102在每次定点累加运算的处理方案开始之前执行,可以保证每次定点累加运算之前数据寄存器中没有饱和溢出,避免上一次定点累加运算处理过程中由于饱和溢出而导致的指定标志位修改对本次定点累加运算造成影响,使得本次定点累加运算可以优先以比特位数较少的第一比特位数执行定点累加运算。
需要说明的是,在本说明书实施例中,一次定点累加运算处理可以理解为按照步骤102-步骤108执行完成的过程。而一次定点累加运算可以理解为步骤104中单次的定点累加过程,或是步骤108中单次的定点累加过程。
可选地,在本说明书实施例中,将所述状态寄存器的指定标志位重置,可具体包括以下两种方式:
1、将所述状态寄存器的指定标志位设置为0。
2、将所述状态寄存器的指定标志位设置为1。
在具体实现时,可以根据设置需求,将状态寄存器中表示饱和标志位的指定标志位设置为0或设置为1。如果重置时将状态寄存器的指定标志位设置为0,则表示第一数据寄存器中数据未发生饱和溢出,而当第一数据寄存器中数据发生饱和溢出时,状态寄存器的指定标志位发生变化,被设置为1。如果重置时将状态寄存器的指定标志位设置为1,则表示第一数据寄存器中数据未发生饱和溢出,而当第一数据寄存器中数据发生饱和溢出时,状态寄存器的指定标志位发生变化,被设置为0。
可选地,在本说明书实施例中,所述第二比特位数是所述第一比特位数的2倍。
进一步,所述第一比特位数的数据类型包括:16bit位数的short;所述第二比特位数的数据类型包括:32bit位数的int。
其实,也不排除:所述第一比特位数的数据类型包括:32bit位数的int;所述第二比特位数的数据类型包括:64bit位数的long。
可选地,在本说明书实施例中,所涉及的定点累加运算可以为定点卷积运算,换言之,可以是对定点卷积中相乘累加运算的处理。其实,也可以是其它形式的定点累加运算,例如,相减累加运算、相除累加运算等。
可选地,本说明书实施例所涉及的定点卷积运算处理方案可以应用于深度学习引擎中,例如,可基于深度学习进行图像识别、语音识别、文本识别等领域研究时所涉及的定点卷积运算。
下面以ARM处理器中NEON这一加速指令为例对本说明书上述定点累加运算的处理方案进行详述,其中,第一数据寄存器可以为16bit的short,第二数据寄存器可以为32bit的int。
应理解,本说明书实施例中,所涉及的数据(输入数据、输出数据)主要以向量指令形式为例进行说明,但是,也不排除对标量指令实施本说明书方案的情况。
参照图2所示,该定点累加运算的处理流程可以包括:
步骤202:将状态寄存器的饱和标志位重置。
具体实现时,可以将状态寄存器的饱和标志位重置为0,相应地,如果第一数据寄存器发生饱和溢出,则该状态寄存器的饱和标志位设置为1。
例如,可以通过将状态寄存器的饱和标志位[27]设置为0,以实现饱和标志位的重置。这样,使得每次进入定点累加运算的处理时,都可以保证当前第一数据寄存器是未发生饱和溢出的,避免由于前一次定点累加运算的处理使饱和标志位修改而对本次定点累加运算处理造成影响,使得本次定点累加运算处理可以优先以位数较低的16bit的short来执行,进而保证执行效率,减少运算量。
步骤204:基于16bit的short执行定点累加运算,并将定点累加结果存放至16bit的short对应的第一数据寄存器中。
在定点累加运算的循环中,可以使用NEON指令vqaddq_s16计算2个矢量寄存器(即输入数据)之和,如果在累加计算过程中第一数据寄存器有饱和溢出发生,则状态寄存器的饱和标志位[27]被修改为1。
步骤206:读取状态寄存器的饱和标志位。如果读取到饱和标志位为0,则跳转回步骤204,如果读取到饱和标志位为1,则执行步骤208。
步骤208:基于32bit的int重新执行所述定点累加运算,并将定点累加结果存放至32bit的int对应的第二数据寄存器中。
如果状态寄存器的饱和标志位[27]为1,则说明定点累加运算过程中第一数据寄存器存在饱和溢出,需要进行回弹操作,即可以用32bit的int重新执行定点累加运算。
由上述方案可知,在进行定点累加运算处理时,可先将状态寄存器的饱和标志位重置,进而可以优先基于16bit的short执行累加运算,并将累加结果存放在16bit对应的第一数据寄存器中,这样,16bit的比特位数相对较少,处理相同指令所耗费的计算量较小,可在一定程度上提升计算性能。在定点累加运算过程中,一旦第一数据寄存器发生饱和溢出,就可以基于比特位数较多的32bit的int来重新执行定点累加运算处理,并将累加结果存放在32bit对应的第二数据寄存器中。由于32bit对应的第二数据寄存器的位数相对较多,因此,在计算量并不是特别大,数据容量有限的情况下,可以减少甚至避免饱和溢出。从而,保证定点累加运算处理可以正常执行,提升处理性能。
图3是本说明书的一个实施例电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
上述如本说明书图1-图2所示实施例揭示的定点累加运算处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现定点累加运算处理装置在图1-图2所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
通过本说明书技术方案,在进行定点累加运算处理时,可以先将状态寄存器的指定标志位重置,然后,基于比特位数较少的第一比特位数执行定点累加运算处理,并将定点累加结果存放在第一比特位数对应的第一数据寄存器中,保证在处理相同数据时,相比于以第二比特位数执行定点累加运算而言,可减少计算量,提升处理性能。在定点累加运算处理过程中,如果状态寄存器的指定标志位被置为预设值,则可以基于比特位数较多的第二比特位数执行定点累加运算处理,并将定点累加结果存放在第二比特位数对应的第二数据寄存器中,避免定点累加运算过程中饱和溢出影响最终定点累加结果。进而,在计算性能和饱和溢出两方面至少可以兼顾一项,灵活性较高,从整体上提升定点累加运算处理性能。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
通过本说明书技术方案,在进行定点累加运算处理时,可以先将状态寄存器的指定标志位重置,然后,基于比特位数较少的第一比特位数执行定点累加运算处理,并将定点累加结果存放在第一比特位数对应的第一数据寄存器中,保证在处理相同数据时,相比于以第二比特位数执行定点累加运算而言,可减少计算量,提升处理性能。在定点累加运算处理过程中,如果状态寄存器的指定标志位被置为预设值,则可以基于比特位数较多的第二比特位数执行定点累加运算处理,并将定点累加结果存放在第二比特位数对应的第二数据寄存器中,避免定点累加运算过程中饱和溢出影响最终定点累加结果。进而,在计算性能和饱和溢出两方面至少可以兼顾一项,灵活性较高,从整体上提升定点累加运算处理性能。
图4为本说明书的一个实施例提供的定点累加运算的处理装置400的结构示意图。请参考图4,在一种软件实施方式中,定点累加运算的处理装置400可包括:
重置模块402,将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
第一处理模块404,基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取模块406,读取所述指定标志位;
第二处理模块408,如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
通过本说明书技术方案,在进行定点累加运算处理时,可以先将状态寄存器的指定标志位重置,然后,基于比特位数较少的第一比特位数执行定点累加运算处理,并将定点累加结果存放在第一比特位数对应的第一数据寄存器中,保证在处理相同数据时,相比于以第二比特位数执行定点累加运算而言,可减少计算量,提升处理性能。在定点累加运算处理过程中,如果状态寄存器的指定标志位被置为预设值,则可以基于比特位数较多的第二比特位数执行定点累加运算处理,并将定点累加结果存放在第二比特位数对应的第二数据寄存器中,避免定点累加运算过程中饱和溢出影响最终定点累加结果。进而,在计算性能和饱和溢出两方面至少可以兼顾一项,灵活性较高,从整体上提升定点累加运算处理性能。
在本说明书实施例的一种具体实现方式中,所述重置模块402在将所述状态寄存器的指定标志位重置时,可具体用于:
将所述状态寄存器的指定标志位设置为0;或者,
将所述状态寄存器的指定标志位设置为1。
在本说明书实施例的一种具体实现方式中,所述第二比特位数是所述第一比特位数的2倍。
在本说明书实施例的一种具体实现方式中,所述第一比特位数的数据类型包括:16bit位数的short;所述第二比特位数的数据类型包括:32bit位数的int。
在本说明书实施例的一种具体实现方式中,所述第一比特位数的数据类型包括:32bit位数的int;所述第二比特位数的数据类型包括:64bit位数的long。
在本说明书实施例的一种具体实现方式中,所述定点累加运算为定点卷积运算。
应理解,本说明书实施例的定点累加运算的处理装置还可执行图1-图2中定点累加运算的处理装置(或设备)执行的方法,并实现定点累加运算的处理装置(或设备)在图1-图2所示实施例的功能,在此不再赘述。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (10)

1.一种定点累加运算的处理方法,包括:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,所述第一数据寄存器中存放的累加结果是每次累加更新后的累加结果,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
2.如权利要求1所述的处理方法,将所述状态寄存器的指定标志位重置,包括:
将所述状态寄存器的指定标志位设置为0;或者,
将所述状态寄存器的指定标志位设置为1。
3.如权利要求1或2所述的处理方法,所述第二比特位数是所述第一比特位数的2倍。
4.如权利要求3所述的处理方法,所述第一比特位数的数据类型包括:16bit位数的short;所述第二比特位数的数据类型包括:32bit位数的int。
5.如权利要求3所述的处理方法,所述第一比特位数的数据类型包括:32bit位数的int;所述第二比特位数的数据类型包括:64bit位数的long。
6.如权利要求1所述的处理方法,所述定点累加运算为定点卷积运算。
7.如权利要求6所述的处理方法,所述定点卷积运算应用于深度学习引擎中,所述深度学习引擎至少包括以下内容之一或组合:基于深度学习的图像识别、语音识别、文本识别。
8.一种定点累加运算的处理装置,包括:
重置模块,将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
第一处理模块,基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,所述第一数据寄存器中存放的累加结果是每次累加更新后的累加结果,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取模块,读取所述指定标志位;
第二处理模块,如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,所述第一数据寄存器中存放的累加结果是每次累加更新后的累加结果,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
将状态寄存器的指定标志位重置,其中,重置后指定标志位的取值用于表征第一数据寄存器中数据未发生饱和溢出;
基于第一比特位数执行定点累加运算,并将定点累加结果存放至所述第一比特位数对应的第一数据寄存器中,其中,所述第一数据寄存器中存放的累加结果是每次累加更新后的累加结果,当所述第一数据寄存器中定点累加结果发生饱和溢出时所述状态寄存器的指定标志位被置为预设值;
读取所述指定标志位;
如果所述指定标志位为所述预设值,则基于第二比特位数重新执行所述定点累加运算,并将定点累加结果存放至所述第二比特位数对应的第二数据寄存器中;
其中,所述第一比特位数少于所述第二比特位数。
CN201910131371.6A 2019-02-22 2019-02-22 一种定点累加运算的处理方法、装置和电子设备 Active CN110058881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910131371.6A CN110058881B (zh) 2019-02-22 2019-02-22 一种定点累加运算的处理方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910131371.6A CN110058881B (zh) 2019-02-22 2019-02-22 一种定点累加运算的处理方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN110058881A CN110058881A (zh) 2019-07-26
CN110058881B true CN110058881B (zh) 2023-06-27

Family

ID=67316594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910131371.6A Active CN110058881B (zh) 2019-02-22 2019-02-22 一种定点累加运算的处理方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN110058881B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112433914B (zh) * 2020-11-26 2023-06-13 成都海光集成电路设计有限公司 获取并行计算任务进度的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1058185A1 (en) * 1999-05-31 2000-12-06 Motorola, Inc. A multiply and accumulate apparatus and a method thereof
TW200513960A (en) * 2003-10-02 2005-04-16 Magima Digital Information Co Ltd System and method for controlling latch accumulators
CN108540264A (zh) * 2018-03-20 2018-09-14 深圳市中科汉天下电子有限公司 一种维特比译码路径度量防溢出方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232249A (ja) * 1998-02-16 1999-08-27 Matsushita Electric Ind Co Ltd 積和演算処理装置および積和演算処理方法
CN101330620B (zh) * 2008-08-05 2011-04-13 北京海尔集成电路设计有限公司 一种音视频数据编解码的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1058185A1 (en) * 1999-05-31 2000-12-06 Motorola, Inc. A multiply and accumulate apparatus and a method thereof
TW200513960A (en) * 2003-10-02 2005-04-16 Magima Digital Information Co Ltd System and method for controlling latch accumulators
CN108540264A (zh) * 2018-03-20 2018-09-14 深圳市中科汉天下电子有限公司 一种维特比译码路径度量防溢出方法及装置

Also Published As

Publication number Publication date
CN110058881A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
JP5573134B2 (ja) ベクトル型計算機及びベクトル型計算機の命令制御方法
US20130024653A1 (en) Acceleration of string comparisons using vector instructions
CN110648136B (zh) 共识与交易同步的并行处理方法、装置和电子设备
CN109598407B (zh) 一种业务流程的执行方法及装置
US8595467B2 (en) Floating point collect and operate
CN109857984B (zh) 一种锅炉负荷率-效能曲线的回归方法和装置
CN109582398B (zh) 一种状态处理方法、装置及电子设备
CN110334013B (zh) 决策引擎的测试方法、装置及电子设备
CN112506671A (zh) 区块链中的交易处理方法、装置及电子设备
CN115981870A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN110058881B (zh) 一种定点累加运算的处理方法、装置和电子设备
CN111882322A (zh) 一种按顺序打包交易的方法、装置及电子设备
JP6257745B2 (ja) プロセッサにおいてリターン分岐命令を実行する速度を向上させる方法
CN110928574A (zh) 微控制器、中断处理芯片、设备及中断处理方法
CN110648125B (zh) 一种打包交易方法、装置、电子设备及存储介质
CN111709748B (zh) 一种具有业务属性的交易执行方法、装置及电子设备
CN111949297A (zh) 一种区块链智能合约升级方法、装置及电子设备
US8972471B2 (en) Arithmetic module, device and system
CN110599139B (zh) 一种区块链共识算法中的出块方法和装置
CN111522527B (zh) 防止数据寄存器饱和溢出的方法、装置及电子设备
CN110032564B (zh) 一种数据表关联关系的确定方法和装置
CN110458393B (zh) 一种风险识别方案的确定方法、装置及电子设备
CN110059115B (zh) 一种数据读取方法和装置
CN107145334B (zh) 常量获取方法、装置、处理器及计算机可读存储介质
KR102561619B1 (ko) 인접 메모리 어드레스에서의 데이터 저장

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20200923

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant