CN113031914A - 浮点舍入模式的控制方法、装置、设备及存储介质 - Google Patents
浮点舍入模式的控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113031914A CN113031914A CN201911346274.5A CN201911346274A CN113031914A CN 113031914 A CN113031914 A CN 113031914A CN 201911346274 A CN201911346274 A CN 201911346274A CN 113031914 A CN113031914 A CN 113031914A
- Authority
- CN
- China
- Prior art keywords
- instruction
- rounding
- rounding mode
- mode
- common
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种浮点舍入模式的控制方法、装置、设备及存储介质。其中,控制方法包括:获取指示处理器执行至少两次舍入运算的指令,根据指令确定该指令对应的常用舍入模式,常用舍入模式为执行指令时运算次数最多的舍入模式,将该常用舍入模式设置为指令的默认舍入模式。通过上述方法设置的默认舍入模式,其执行次数最多,因此能够有效减少在运行指令过程中频繁设置当前舍入模式的次数,提升处理器的运算速率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种浮点舍入模式的控制方法、装置、设备及存储介质。
背景技术
处理器对数据执行各种各样的数据运算,数据可能属于不同的类型,例如具有不同精度的整数值和浮点值。当处理浮点值时,数学运算比如乘法或加法的结果有可能产生需要将其转换为较低精度格式的结果。相应地,可以执行舍入运算以将该浮点值结果进行舍入。
舍入模式用来指示处理器在浮点数据运算期间的浮点值的舍入,目前IEEE-754浮点运算规定了四种舍入模式。当执行某一数学运算时,根据算法和精度要求需要设置对应的舍入模式。通常在处理器执行舍入模式设置时,处理器需要清空内部流水线,在处理器执行的数学运算量较大时,频繁的设置舍入模式会带来严重的性能下降。
发明内容
本发明提供一种浮点舍入模式的控制方法、装置、设备及存储介质,减小设定舍入模式的频率,提升处理器运算速率。
本发明的第一方面提供一种浮点舍入模式的控制方法,包括:
获取用于处理器执行至少两次舍入运算的指令;
根据所述指令确定所述指令对应的常用舍入模式,所述常用舍入模式为执行所述指令时运算次数最多的舍入模式;
将所述常用舍入模式设置为所述指令的默认舍入模式。
在一种可能的实现方式中,所述根据所述指令确定所述指令对应的常用舍入模式,包括:
判断所述指令是否存在条件字段,所述条件字段用于指示所述指令包括至少两个可执行路径;
若所述指令存在所述条件字段,则通过动态获取方式确定所述指令对应的常用舍入模式;或者
若所述指令不存在所述条件字段,则通过静态获取方式确定所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述通过动态获取方式确定所述指令对应的常用舍入模式,包括:
通过预执行所述指令确定所述指令中不同类型的舍入模式的运算次数;
将所述运算次数最多的舍入模式作为所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述预执行所述指令包括以下的任意一项:
二进制插桩,模拟器模拟,硬件辅助计数。
可选的,所述指令包括一个或多个舍入字段,不同舍入字段指示相同或不同的舍入模式。
在一种可能的实现方式中,所述通过静态获取方式确定所述指令对应的常用舍入模式,包括:
解析所述指令的各舍入字段,确定所述指令中各舍入字段的舍入模式的类型;
统计不同类型的舍入模式的指示次数;
将指示次数最多的舍入模式作为所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述将所述常用舍入模式设置为所述指令的默认舍入模式之后,还包括:
将指示所述默认舍入模式的字段加入至所述指令的头部。
在一种可能的实现方式中,在执行所述指令的过程中,所述方法还包括:
确定当前舍入字段指示的第一舍入模式是否与所述默认舍入模式相同;
若所述第一舍入模式与所述默认舍入模式不同,将当前舍入模式设置为所述第一舍入模式,在当前舍入字段执行完毕后,将所述当前舍入模式重新设置为所述默认舍入模式。
本发明的第二方面提供一种浮点舍入模式的控制装置,包括:
获取模块,用于获取指示处理器执行至少两次舍入运算的指令;
处理模块,用于根据所述指令确定所述指令对应的常用舍入模式,所述常用舍入模式为执行所述指令时运算次数最多的舍入模式;
所述处理模块,还用于将所述常用舍入模式设置为所述指令的默认舍入模式。
在一种可能的实现方式中,所述处理模块,具体用于:
判断所述指令是否存在条件字段,所述条件字段用于指示所述指令包括至少两个可执行路径;
若所述指令存在所述条件字段,则通过动态获取方式确定所述指令对应的常用舍入模式;或者
若所述指令不存在所述条件字段,则通过静态获取方式确定所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述处理模块,具体用于:
通过预执行所述指令确定所述指令中不同类型的舍入模式的运算次数;
将所述运算次数最多的舍入模式作为所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述预执行所述指令包括以下的任意一项:
二进制插桩,模拟器模拟,硬件辅助计数。
可选的,所述指令包括一个或多个舍入字段,不同舍入字段指示相同或不同的舍入模式。
在一种可能的实现方式中,所述处理模块,具体用于:
解析所述指令的各舍入字段,确定所述指令中各舍入字段的舍入模式的类型;
统计不同类型的舍入模式的指示次数;
将指示次数最多的舍入模式作为所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述处理模块将所述常用舍入模式设置为所述指令的默认舍入模式之后,还用于:
将指示所述默认舍入模式的字段加入至所述指令的头部。
在一种可能的实现方式中,所述处理模块,还用于:
在执行所述指令的过程中,确定当前舍入字段指示的第一舍入模式是否与所述默认舍入模式相同;
若所述第一舍入模式与所述默认舍入模式不同,将当前舍入模式设置为所述第一舍入模式,在当前舍入字段执行完毕后,将所述当前舍入模式重新设置为所述默认舍入模式。
本发明的第三方面提供一种电子设备,包括:存储器及处理器;
所述处理器中集成有本发明第二方面任一项所述的浮点舍入模式的控制装置;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如本发明第一方面任一项所述的浮点舍入模式的控制方法。
本发明的第四方面提供一种存储介质,包括:可读存储介质和计算机执行指令,所述计算机执行指令用于实现本发明第一方面任一项所述的浮点舍入模式的控制方法。
本发明提供一种浮点舍入模式的控制方法、装置、设备及存储介质。其中,控制方法包括:获取指示处理器执行至少两次舍入运算的指令,根据指令确定该指令对应的常用舍入模式,常用舍入模式为执行指令时运算次数最多的舍入模式,将该常用舍入模式设置为指令的默认舍入模式。通过上述方法设置的默认舍入模式,其执行次数最多,因此能够有效减少在运行指令过程中频繁设置当前舍入模式的次数,提升处理器的运算速率。
附图说明
图1为本发明一实施例提供的浮点舍入模式的控制方法的流程图;
图2为本发明另一实施例提供的浮点舍入模式的控制方法的流程图;
图3为本发明又一实施例提供的浮点舍入模式的控制方法的流程图;
图4为本发明一实施例提供的浮点舍入模式的控制装置的结构示意图;
图5为本发明一实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明的说明书中通篇提到的“一实施例”或“另一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一实施例中”或“本实施例中”未必一定指相同的实施例。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
IEEE-754是由电子与电气工业协会制定的一整套浮点数表示的标准,该标准中规定了四种舍入模式,将一个数字舍入到其最接近的整数,分别是:向偶数舍入、向下舍入、向上舍入以及向0舍入。其中,向偶数舍入也称为最近舍入(Round to Nearest),它与四舍五入只有一点不同,对0.5的舍入上,采用取偶数的方式,例如最近舍入模式:Round(0.5)=0,Round(1.5)=2,Round(2.5)=3,四舍五入模式:Round(0.5)=1,Round(1.5)=2,Round(2.5)=3。向下舍入也称为向负无穷大舍入,例如Floor(1.751)=1,Floor(-1.751)=-2。向上舍入也称为向正无穷大舍入,例如Ceil(1.751)=2,Ceil(-1.751)=-1。向0舍入也称为截断舍入,例如Int(1.751)=1,Int(-1.751)=-1。
目前,处理器在执行指令中的舍入运算时,会根据指令中舍入字段确定采用上述的哪一种舍入模式。通常在处理器执行每一次舍入运算时,需要先设置当前的舍入模式,此时会清空流水线,让之前的指令运算完毕,后续的指令等待执行。例如,处理器读取当前舍入字段的舍入模式为向上舍入模式,则需要先设置当前的舍入模式为向下舍入模式,在舍入运算执行完毕后,处理器执行下一舍入运算时,处理器需要重复上述设置过程,读取新的舍入字段,重新设置当前的舍入模式。如此一来,若执行指令中的舍入运算次数较多时,设置舍入模式的次数较多,极大地降低了处理器的运算速率,影响处理器的整体性能。
基于上述问题,本发明提供一种浮点舍入模式的控制方法,通过动态或者静态获取方式确定指令的常用舍入模式,该常用舍入模式为执行指令时运算次数最多的舍入模式,将常用舍入模式设置为该指令的默认舍入模式,能够有效减小在运行指令过程中频繁设置舍入模式的次数,提升处理器的运算速率。在执行指令过程中,如果当前的舍入模式与默认舍入模式不同,需要重新设置当前的舍入模式,在本次运算执行完毕后,再重新设置当前的舍入模式为默认舍入模式。由于默认舍入模式为该指令执行次数最多的舍入模式,因此能够有效减小舍入模式的设置次数,提升指令的运行速度。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明一实施例提供的浮点舍入模式的控制方法的流程图。本实施例的控制方法可以由任意执行浮点舍入模式的控制装置来执行,该装置可以通过软件和/或硬件实现。
如图1所示,本实施例提供的控制方法,具体包括以下步骤:
S101、获取指示处理器执行至少两次舍入运算的指令。
在本实施例中,指令包括一个或多个舍入字段,不同舍入字段指示相同或不同的舍入模式。处理器根据指令中的舍入字段,对源操作数执行舍入运算,源操作数为浮点数。其中,舍入运算的舍入模式包括:向偶数舍入、向下舍入、向上舍入、向0舍入或者其他舍入模式,其他舍入模式可以是用户自定义的任意舍入模式,本实施例对指令的舍入模式不作任何限制。
示例性的,指令包括3个舍入字段,分别指示处理器对源操作数a执行向偶数舍入,对源操作数b执行向下舍入,对源操作数c执行向0舍入,其中,操作数a、b、c均为浮点数。示例性的,指令包括5个舍入字段,分别指示处理器对源操作数a-e执行向0舍入。
S102、根据指令确定指令对应的常用舍入模式,常用舍入模式为执行指令时运算次数最多的舍入模式。
在本实施例中,根据指令确定指令对应的常用舍入模式包括以下两种可能的实现方式:
在一种可能的实现方式中,根据指令通过动态获取方式确定指令对应的常用舍入模式。具体的,通过预执行指令确定指令中不同类型的舍入模式的运算次数,将运算次数最多的舍入模式作为指令对应的常用舍入模式。上述预执行指令包括以下的任意一项:二进制插桩,模拟器模拟,硬件辅助计数。
二进制插桩可以与任何软件应用程序一起使用,又被称为动态二进制插桩或者动态二进制修改(Dynamic Binary Modification)。在本实施例中,二进制插桩是将插桩代码注入预执行的指令中,其目的是获取指令在预执行过程中的不同类型的舍入模式的实际运算次数,从而确定运算次数最多的舍入模式的类型。
模拟器模拟是指通过模拟器预执行指令,获取模拟器输出的模拟结果,该模拟结果包括预执行过程中的不同类型舍入模式的运算次数,从而确定运算次数最多的舍入模式的类型。
硬件辅助计数是指在预执行指令的过程中,通过与处理器连接的外部计数器统计指令中不同类型舍入模式的运算次数,从而确定运算次数最多的舍入模式的类型。
在一种可能的实现方式中,根据指令通过静态获取方式确定指令对应的常用舍入模式。具体的,解析指令的各舍入字段,确定指令中各舍入字段的舍入模式的类型,统计不同类型的舍入模式的指示次数,将指示次数最多的舍入模式作为指令对应的常用舍入模式。
需要说明的是,对于某一类型的舍入模式,该舍入模式的指示次数不同于上述动态获取方式统计的该舍入模式的运算次数。通常情况下,指示次数大于或者等于运算次数,这是由于指令中可能存在多个执行路径,指示次数统计的是指令中各个执行路径上的某一舍入模式的总次数,运算次数统计的是实际执行指令时的某一执行路径上的某一舍入模式的总次数。
综上可知,上述两种实现方式中,相对于静态获取方式确定的指令对应的常用舍入模式,动态获取方式确定的指令对应的常用舍入模式的准确性更高,更加接近指令在实际运算的情况。
S103、将常用舍入模式设置为指令的默认舍入模式。
作为一种示例,在将常用舍入模式设置为指令的默认舍入模式之后,还可以包括如下步骤:
将指示默认舍入模式的字段加入至指令的头部。即在确定指令的默认舍入模式之后,对指令进行重新编译,设定该指令的默认舍入模式,将指示默认舍入模式的字段加入至指令的头部,以便处理器在执行该指令时,将该指令中运算次数最多的舍入模式设定为默认的舍入模式,从而减小处理器设置舍入模式的次数,提升处理器的运算速率。
本实施例提供的浮点舍入模式的控制方法,通过获取指令,根据指令确定该指令对应的常用舍入模式,常用舍入模式为执行指令时运算次数最多的舍入模式,将该常用舍入模式设置为指令的默认舍入模式。其中,指令用于指示处理器执行至少两次舍入运算。通过上述方法设置的默认舍入模式,器执行次数最多,因此能够有效减少在运行指令过程中频繁设置当前舍入模式的次数,提升处理器的运算速率。
图2为本发明另一实施例提供的浮点舍入模式的控制方法的流程图。如图2所示,本实施例提供的方法包括如下步骤:
S201、获取指示处理器执行至少两次舍入运算的指令。
本实施例的S201同上述实施例的S101,具体可参见上述实施例,此处不再赘述。
S202、判断指令是否存在条件字段,条件字段用于指示指令包括至少两个可执行路径。若指令存在条件字段,则执行S203;若指令不存在条件字段,则执行S204。
在本实施例中,条件字段可以用于指示指令包括两个可执行路径,示例性的,条件字段包括if else字段,如果运算结果满足if条件则执行路径1,如果运算结果不满足if条件则执行路径2。其中,执行路径1和执行路径2上可能存在舍入运算,执行路径1和执行路径2上的舍入运算的舍入模式可能相同也可能不同。假设指令显式的舍入运算次数为5次,其中的2次舍入运算分别设置在if else字段的两个不同执行路径上,那么在执行该指令时,实际的舍入运算次数为4次,而不是显式的5次。由此可以,采用静态获取方式获取的各个舍入模式的运算次数可能并不准确。为了避免上述情况,可以采用动态获取方式获取各个舍入模式的运算次数,通过该方式获取的统计结果更加准确。
在一些实施例中,条件字段还可以用于指示指令包括至少一次循环路径,示例性的,条件字段包括while或者for字段,如果运算结果满足循环条件,则执行循环路径,如果运算结果不满足循环条件则跳出该循环。循环路径上可能存在舍入运算,循环次数可能是一次、二次或者更多次。假设指令显式的舍入运算次数为3次,其中包括循环路径上的1次舍入运算,在执行该指令时,实际的舍入运算次数可能大于3次,因此,采用静态获取方式获取的各个舍入模式的运算次数也可能不准确。
综上,若指令中存在条件字段,舍入运算的总的运算次数可能增加也可能减小。例如,条件字段包括while字段,舍入运算的总的运算次数可能增加;条件字段包括if else字段,舍入运算的总的运算次数可能减小。若指令中不存在条件字段,那么指令中显式的舍入字段的总次数就是实际指令执行时舍入运算的总次数。
S203、通过动态获取方式确定指令对应的常用舍入模式。
S204、通过静态获取方式确定指令对应的常用舍入模式。
本实施例的S203和S204同上述实施例的S102,具体可参见上述实施例,此处不再赘述。
S205、将常用舍入模式设置为指令的默认舍入模式。
本实施例的S205同上述实施例的S103,具体可参见上述实施例,此处不再赘述。
本实施例提供的浮点舍入模式的控制方法,通过获取指示处理器执行至少两次舍入运算的指令,判断指令是否存在条件字段,条件字段用于指示指令包括至少两个可执行路径,若指令存在条件字段,则通过动态获取方式确定指令对应的常用舍入模式;若指令不存在条件字段,则通过静态获取方式确定指令对应的常用舍入模式。将该常用舍入模式设置为指令的默认舍入模式。通过上述方法设置的默认舍入模式,其执行次数最多,因此能够有效减少在运行指令过程中频繁设置当前舍入模式的次数,提升处理器的运算速率。
图3为本发明又一实施例提供的浮点舍入模式的控制方法的流程图。如图3所示,在设定常用舍入模式设置为指令的默认舍入模式之后,在实际应用中,处理器运行指令时,包括以下步骤:
S301、获取指示处理器执行至少两次舍入运算的指令。
S302、读取指令的头部,将当前舍入模式设置为指令的默认舍入模式。
S303、依次执行指令的各个字段。
S304、若当前字段指示的舍入模式并非默认舍入模式,将默认舍入模式保存,并将舍入模式设置为当前字段指示的舍入模式。
S305、在当前字段执行完毕后,将舍入模式重新设置为默认舍入模式。
本实施例提供的舍入模式控制方法,在读取指令的默认舍入模式后,将当前舍入模式设置为默认舍入模式,在执行指令过程中,如果读取到与默认舍入模式不同的舍入模式时,进行舍入模式切换,执行完当前舍入运算后,恢复默认舍入模式。默认舍入模式是执行指令时运算次数最多的舍入模式,上述实现过程能够有效减小设定舍入模式的频率,提升处理器的运算速率。
图4为本发明一实施例提供的浮点舍入模式的控制装置的结构示意图。如图4所示,该控制装置400,包括:
获取模块401,用于获取指示处理器执行至少两次舍入运算的指令;
处理模块402,用于根据所述指令确定所述指令对应的常用舍入模式,所述常用舍入模式为执行所述指令时运算次数最多的舍入模式;
所述处理模块402,还用于将所述常用舍入模式设置为所述指令的默认舍入模式。
在一种可能的实现方式中,所述处理模块402,具体用于:
判断所述指令是否存在条件字段,所述条件字段用于指示所述指令包括至少两个可执行路径;
若所述指令存在所述条件字段,则通过动态获取方式确定所述指令对应的常用舍入模式;或者
若所述指令不存在所述条件字段,则通过静态获取方式确定所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述处理模块402,具体用于:
通过预执行所述指令确定所述指令中不同类型的舍入模式的运算次数;
将所述运算次数最多的舍入模式作为所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述预执行所述指令包括以下的任意一项:
二进制插桩,模拟器模拟,硬件辅助计数。
可选的,所述指令包括一个或多个舍入字段,不同舍入字段指示相同或不同的舍入模式。
在一种可能的实现方式中,所述处理模块402,具体用于:
解析所述指令的各舍入字段,确定所述指令中各舍入字段的舍入模式的类型;
统计不同类型的舍入模式的指示次数;
将指示次数最多的舍入模式作为所述指令对应的常用舍入模式。
在一种可能的实现方式中,所述处理模块402将所述常用舍入模式设置为所述指令的默认舍入模式之后,还用于:
将指示所述默认舍入模式的字段加入至所述指令的头部。
在一种可能的实现方式中,处理模块402,还用于:
在执行所述指令的过程中,确定当前舍入字段指示的第一舍入模式是否与所述默认舍入模式相同;
若所述第一舍入模式与所述默认舍入模式不同,将当前舍入模式设置为所述第一舍入模式,在当前舍入字段执行完毕后,将所述当前舍入模式重新设置为所述默认舍入模式。
本实施例提供的浮点舍入模式的控制装置,可以执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图5为本发明一实施例提供的电子设备的硬件结构示意图。如图5所示,本实施例提供的电子设备500可以包括:存储器501、处理器502;可选的,电子设备500还可以包括总线503。其中,总线503用于实现各元件之间的连接。
所述处理器502中集成有图4所示实施例提供的浮点舍入模式的控制装置400;
所述存储器501存储计算机执行指令;
所述处理器502执行所述存储器501存储的计算机执行指令,使得所述处理器执行前述任一项实施例提供的浮点舍入模式的控制方法。
作为一种示例,本实施例的电子设备可以是编译器,编译器包括存储器、处理器。
其中,存储器501和处理器502之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线503连接。存储器501中存储有实现浮点舍入模式的控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器501中的软件功能模块,处理器502通过运行存储在存储器501内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器501可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器501用于存储程序,处理器502在接收到执行指令后,执行程序。进一步地,上述存储器501内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器502可以是一种集成电路芯片,具有信号的处理能力。上述的处理器502可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(Network Processor,简称:NP)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以理解,图5的结构仅为示意,还可以包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件和/或软件实现。
本发明实施例还提供一种存储介质,包括:可读存储介质和计算机执行指令,所述计算机执行指令用于实现上述任一方法实施例提供的浮点舍入模式的控制方法。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种浮点舍入模式的控制方法,其特征在于,包括:
获取指示处理器执行至少两次舍入运算的指令;
根据所述指令确定所述指令对应的常用舍入模式,所述常用舍入模式为执行所述指令时运算次数最多的舍入模式;
将所述常用舍入模式设置为所述指令的默认舍入模式。
2.根据权利要求1所述的方法,其特征在于,所述根据所述指令确定所述指令对应的常用舍入模式,包括:
判断所述指令是否存在条件字段,所述条件字段用于指示所述指令包括至少两个可执行路径;
若所述指令存在所述条件字段,则通过动态获取方式确定所述指令对应的常用舍入模式;或者
若所述指令不存在所述条件字段,则通过静态获取方式确定所述指令对应的常用舍入模式。
3.根据权利要求2所述的方法,其特征在于,所述通过动态获取方式确定所述指令对应的常用舍入模式,包括:
通过预执行所述指令确定所述指令中不同类型的舍入模式的运算次数;
将所述运算次数最多的舍入模式作为所述指令对应的常用舍入模式。
4.根据权利要求3所述的方法,其特征在于,所述预执行所述指令包括以下的任意一项:
二进制插桩,模拟器模拟,硬件辅助计数。
5.根据权利要求2所述的方法,其特征在于,所述指令包括一个或多个舍入字段,不同舍入字段指示相同或不同的舍入模式;所述通过静态获取方式确定所述指令对应的常用舍入模式,包括:
解析所述指令的各舍入字段,确定所述指令中各舍入字段的舍入模式的类型;
统计不同类型的舍入模式的指示次数;
将指示次数最多的舍入模式作为所述指令对应的常用舍入模式。
6.根据权利要求1所述的方法,其特征在于,所述将所述常用舍入模式设置为所述指令的默认舍入模式之后,还包括:
将指示所述默认舍入模式的字段加入至所述指令的头部。
7.根据权利要求1-6中任一项所述的方法,其特征在于,在执行所述指令的过程中,所述方法还包括:
确定当前舍入字段指示的第一舍入模式是否与所述默认舍入模式相同;
若所述第一舍入模式与所述默认舍入模式不同,将当前舍入模式设置为所述第一舍入模式,在当前舍入字段执行完毕后,将所述当前舍入模式重新设置为所述默认舍入模式。
8.一种浮点舍入模式的控制装置,其特征在于,包括:
获取模块,用于获取指示处理器执行至少两次舍入运算的指令;
处理模块,用于根据所述指令确定所述指令对应的常用舍入模式,所述常用舍入模式为执行所述指令时运算次数最多的舍入模式;
所述处理模块,还用于将所述常用舍入模式设置为所述指令的默认舍入模式。
9.根据权利要求8所述的装置,其特征在于,所述处理模块,具体用于:
判断所述指令是否存在条件字段,所述条件字段用于指示所述指令包括至少两个可执行路径;
若所述指令存在所述条件字段,则通过动态获取方式确定所述指令对应的常用舍入模式;或者
若所述指令不存在所述条件字段,则通过静态获取方式确定所述指令对应的常用舍入模式。
10.根据权利要求9所述的装置,其特征在于,所述处理模块,具体用于:
通过预执行所述指令确定所述指令中不同类型的舍入模式的运算次数;
将所述运算次数最多的舍入模式作为所述指令对应的常用舍入模式。
11.根据权利要求10所述的装置,其特征在于,所述预执行所述指令包括以下的任意一项:
二进制插桩,模拟器模拟,硬件辅助计数。
12.根据权利要求9所述的装置,其特征在于,所述指令包括一个或多个舍入字段,不同舍入字段指示相同或不同的舍入模式;所述处理模块,具体用于:
解析所述指令的各舍入字段,确定所述指令中各舍入字段的舍入模式的类型;
统计不同类型的舍入模式的指示次数;
将指示次数最多的舍入模式作为所述指令对应的常用舍入模式。
13.根据权利要求8所述的装置,其特征在于,所述处理模块将所述常用舍入模式设置为所述指令的默认舍入模式之后,还用于:
将指示所述默认舍入模式的字段加入至所述指令的头部。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述处理模块,还用于:
在执行所述指令的过程中,确定当前舍入字段指示的第一舍入模式是否与所述默认舍入模式相同;
若所述第一舍入模式与所述默认舍入模式不同,将当前舍入模式设置为所述第一舍入模式,在当前舍入字段执行完毕后,将所述当前舍入模式重新设置为所述默认舍入模式。
15.一种电子设备,其特征在于,包括:存储器及处理器;
所述处理器中集成有权利要求8至14任一项所述的浮点舍入模式的控制装置;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至7任一项所述的浮点舍入模式的控制方法。
16.一种存储介质,其特征在于,包括:可读存储介质和计算机执行指令,所述计算机执行指令用于实现权利要求1至7任一项所述的浮点舍入模式的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346274.5A CN113031914B (zh) | 2019-12-24 | 2019-12-24 | 浮点舍入模式的控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346274.5A CN113031914B (zh) | 2019-12-24 | 2019-12-24 | 浮点舍入模式的控制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113031914A true CN113031914A (zh) | 2021-06-25 |
CN113031914B CN113031914B (zh) | 2023-05-16 |
Family
ID=76451714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911346274.5A Active CN113031914B (zh) | 2019-12-24 | 2019-12-24 | 浮点舍入模式的控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113031914B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5612909A (en) * | 1994-09-29 | 1997-03-18 | Intel Corporation | Method and apparatus for rounding operands using previous rounding history |
US6058410A (en) * | 1996-12-02 | 2000-05-02 | Intel Corporation | Method and apparatus for selecting a rounding mode for a numeric operation |
CN101882064A (zh) * | 2006-09-22 | 2010-11-10 | 英特尔公司 | 响应指令执行舍入运算 |
-
2019
- 2019-12-24 CN CN201911346274.5A patent/CN113031914B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5612909A (en) * | 1994-09-29 | 1997-03-18 | Intel Corporation | Method and apparatus for rounding operands using previous rounding history |
US6058410A (en) * | 1996-12-02 | 2000-05-02 | Intel Corporation | Method and apparatus for selecting a rounding mode for a numeric operation |
CN101882064A (zh) * | 2006-09-22 | 2010-11-10 | 英特尔公司 | 响应指令执行舍入运算 |
Also Published As
Publication number | Publication date |
---|---|
CN113031914B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210216314A1 (en) | Performing Rounding Operations Responsive To An Instruction | |
EP3719639A2 (en) | Systems and methods to perform floating-point addition with selected rounding | |
US20190095175A1 (en) | Arithmetic processing device and arithmetic processing method | |
US20230084523A1 (en) | Data Processing Method and Device, and Storage Medium | |
US20170192760A1 (en) | Behavior based code recompilation triggering scheme | |
US20220121727A1 (en) | Apparatus and method for vector computing incorporating with matrix multiply and accumulation calculation | |
CN107851007B (zh) | 宽数据类型的比较的方法和装置 | |
US8707013B2 (en) | On-demand predicate registers | |
WO2022057418A1 (zh) | 应用程序运行的方法、装置、终端设备及存储介质 | |
CN110377339B (zh) | 长延时指令处理装置、方法以及设备、可读存储介质 | |
US20140282616A1 (en) | Bidirectional counting of dual outcome events | |
US7219117B2 (en) | Methods and systems for computing floating-point intervals | |
CN113031914B (zh) | 浮点舍入模式的控制方法、装置、设备及存储介质 | |
CN107544896B (zh) | 一种函数调用次数的统计方法、存储介质及终端设备 | |
US9990203B2 (en) | Hardware accuracy counters for application precision and quality feedback | |
US7281122B2 (en) | Method and apparatus for nested control flow of instructions using context information and instructions having extra bits | |
US20150095393A1 (en) | Method and device for generating floating-point values | |
CN118069224B (zh) | 地址生成方法、装置、计算机设备和存储介质 | |
CN107562442B (zh) | 一种读取数据的方法和装置 | |
US12112164B2 (en) | Machine code instruction | |
WO2024169618A1 (zh) | 一种代码编译方法及电子设备 | |
CN115981660A (zh) | 代码性能的分析方法、处理设备和存储介质 | |
CN114385474A (zh) | 针对gpu计算核进行性能统计分析的方法、装置及介质 | |
CN118796322A (zh) | 界面加载方法、装置、电子设备和可读存储介质 | |
CN113296735A (zh) | 一种浮点数处理方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |