定点化处理方法及其装置制造方法及图纸

技术编号:11201361 阅读:66 留言:0更新日期:2015-03-26 08:57
本发明专利技术提供一种定点化处理方法及其装置。其中,该方法包括:确定不包含复杂运算的浮点代码中的浮点变量的数值范围;分析对该浮点变量进行定点化处理的目标平台处理器,以获得该目标平台处理器的擅长运算,根据分析结果确定定点化策略;根据该浮点变量的数值范围和该定点化策略,或者根据该浮点变量的数值范围、该定点化策略以及预定的总体定点化精度,确定每个浮点变量的定点方式;根据该定点方式对该浮点变量进行定点化处理,生成定点化代码;使用测试数据对该定点化代码进行总体精度测试;在该定点化代码通过了该总体精度测试时,对该定点化代码进行目标平台性能测试;在通过了该性能测试的情况下,结束该定点化处理。该方法可有效的提升定点化代码的运行效率。

【技术实现步骤摘要】
定点化处理方法及其装置
本专利技术涉及数据处理领域,特别涉及一种定点化处理方法及其装置。
技术介绍
出于低功耗、低成本以及设计简便的考虑,许多处理器并不支持浮点操作。因为操作数必须是整数,同时限制了处理器能够承担的运算。如果源操作数是浮点数,需要进行定点化处理。其解决方案也根据不同的数值特点而有所不同。现有定点化处理方式在定点化时往往不考虑目标平台特点而只仅仅考虑整体定点化精度,对于不同平台,其定点化方式几乎相同,无法做到对特定平台进行特定优化定点方式处理。并且通常的定点方式,在数值范围较窄,运算比较规则的情况下,先对数据进行向左移位,将其放大,进行运算后再进行向右移位,缩小到正确的数量级。这种情况最为常见,在处理器上运行具有较快的速度。但是在大数值范围等非正常情况则显得力不从心。应该注意,上面对技术背景的介绍只是为了方便对本专利技术的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本专利技术的
技术介绍
部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
技术实现思路
对于相对复杂的非正常情况,比如原始浮点数具有相当大的动态范围等等,这时,简单的对数据进行向左移位处理,数据溢出及精度控制之间的矛盾将无法调和。为了满足精度要求,可以采用伪浮点方法(模拟浮点格式,采用两个变量分别存储指数和尾数)。这种方法,实际上就是用软件的方法模拟了浮点运算,可以达到浮点运算相似的精度。但是这种方法,往往具有很慢的运算速度,在很多运算速度要求高的情况,显然不合适。另外,由于不同目标平台对于不同的操作指令具有不同的处理能力,例如高级RISC微处理器ARM(AdvancedRISCMicroprocessor)基础核平台,对于整数乘及长整型移位具有较弱的处理能力;而对于某些特殊的数字信号处理器(DSP,DigitalSignalProcessor)则最怕跳转指令破坏流水线等。因此,在进行定点化处理时,如果不考虑目标平台的差异,则定点化后的定点化代码很难在目标平台上有最佳的运行效率。本专利技术实施例的目的在于提供一种定点化处理方法及其装置,结合了目标平台处理器的处理能力进行定点化处理,提升了定点化代码在目标平台处理器上的运行效率。本专利技术实施例的第一方面提供了一种定点化处理方法,该方法包括:确定不包含复杂运算的浮点代码中的浮点变量的数值范围;分析对该浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;根据该浮点变量的数值范围和所述定点化策略,或者根据该浮点变量的数值范围、该定点化策略以及预定的总体定点化精度,确定每个浮点变量的定点方式;根据该定点方式对该浮点变量进行定点化处理,生成定点化代码;使用测试数据对该定点化代码进行总体精度测试;在该定点化代码通过了该总体精度测试时,对该定点化代码进行目标平台性能测试;在通过了该性能测试的情况下,结束该定点化处理。本专利技术实施例的第二方面提供了一种定点化处理装置,其中,该装置包括:第一计算单元,该第一计算单元用于确定不包含复杂运算的浮点代码中的浮点变量的数值范围;第一分析单元,该第一分析单元用于分析对该浮点变量进行定点化处理的目标平台处理器,以获得该目标平台处理器的擅长运算,根据分析结果确定定点化策略;第一确定单元,该第一确定单元用于根据所述第一计算单元确定的浮点变量的数值范围和该第一分析单元确定的该定点化策略,或者根据该第一计算单元确定的浮点变量的数值范围、该第一分析单元确定的该定点化策略以及预定的总体定点化精度,确定每个浮点变量的定点方式;第一生成单元,该第一生成单元用于根据该第一确定单元该定点方式对该浮点变量进行定点化处理,生成定点化代码;第一测试单元,该第一测试单元用于使用测试数据对该第一生成单元生成的该定点化代码进行总体精度测试;第二测试单元,该第二测试单元用于在该定点化代码通过了该第一测试单元所述总体精度测试时,对该第一生成单元生成的定点化代码进行目标平台性能测试。本专利技术实施例的有益效果在于:在定点化处理过程中,结合目标处理器平台的特点,在满足了定点化精度要求的基础上,有效的提升定点化代码的运行效率。参照后文的说明和附图,详细公开了本专利技术的特定实施方式,指明了本专利技术的原理可以被采用的方式。应该理解,本专利技术的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本专利技术的实施方式包括许多改变、修改和等同。针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。附图说明从以下结合附图的详细描述中,本专利技术实施例的上述以及其他目的、特征和优点将变得更加显而易见,在附图中:图1是本专利技术实施例1的定点化处理方法流程图;图2是本专利技术实施例2的定点化处理方法流程图;图3是本专利技术实施例5的定点化处理装置的构成示意图;图4是本专利技术实施例5中第一计算单元401的构成示意图;图5是本专利技术实施例6的定点化处理装置的构成示意图;具体实施方式下面结合附图对本专利技术的各种实施方式进行说明。这些实施方式只是示例性的,不是对本专利技术的限制,应了解的是,本专利技术不限于以下所描述的实施方式。下面参照附图对本专利技术的优选实施方式进行说明。实施例1图1是本专利技术实施例1的定点化处理方法流程图,如图1所示,该方法包括步骤101,确定不包含复杂运算的浮点代码中的浮点变量的数值范围;步骤102,分析对该浮点变量进行定点化处理的目标平台处理器,以获得该目标平台处理器的擅长运算,根据分析结果确定定点化策略;步骤103,根据该浮点变量的数值范围和该定点化策略,或者根据该浮点变量的数值范围、该定点化策略以及预定的总体定点化精度,确定每个该浮点变量的定点方式;步骤104,根据该定点方式对该浮点变量进行定点化处理,生成定点化代码;步骤105,使用测试数据对该定点化代码进行总体精度测试;步骤106,判断该定点化代码是否通过了该总体精度测试,在判断结果为是时,执行步骤108,否则执行步骤107;步骤107,在步骤106中的判断结果为否时调整所述定点方式,重新生成定点化代码,并返回至步骤105;步骤108,在步骤106中的判断结果为是时,对该定点化代码进行目标平台性能测试;步骤109,在通过了性能测试的情况下,结束所述定点化处理;在本实施例中,在定点化之前必须首先准备一版参考浮点代码,这版代码不包含任何难以定点化的复杂运算(比如说平方根、正余弦运算等,不过由于基2的指数运算在定点化代码中可表现为数据移位,所以排除在外),另外还需要准备测试数据码流库。除了参考浮点代码外,还需要准备测试数据码流,确定目标平台处理器以及最终定点化代码的总体精度要求。在步骤101中,通过以下方式来确定不包含复杂运算的浮点代码中的浮点变量的数据范围:通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;在该理论范围存在且该理论范围是具有实际使用价值的数值时,确定该理论范围是该不包含复杂运算的浮点变量的数值范围;在无法确定理论范围或者理论范围是不具本文档来自技高网...
定点化处理方法及其装置

【技术保护点】
一种定点化处理方法,所述方法包括:确定不包含复杂运算的浮点代码中的浮点变量的数值范围;分析对所述浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;根据所述浮点变量的数值范围和所述定点化策略,或者根据所述浮点变量的数值范围、所述定点化策略以及预定的总体定点化精度,确定每个所述浮点变量的定点方式;根据所述定点方式对所述浮点变量进行定点化处理,生成定点化代码;使用测试数据对所述定点化代码进行总体精度测试;在所述定点化代码通过了所述总体精度测试时,对所述定点化代码进行目标平台性能测试;在通过了所述性能测试的情况下,结束所述定点化处理。

【技术特征摘要】
1.一种定点化处理方法,所述方法包括:确定不包含复杂运算的浮点代码中的浮点变量的数值范围;分析对所述浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;根据所述浮点变量的数值范围和所述定点化策略,或者根据所述浮点变量的数值范围、所述定点化策略以及预定的总体定点化精度,确定每个所述浮点变量的定点方式;根据所述定点方式对所述浮点变量进行定点化处理,生成定点化代码;使用测试数据对所述定点化代码进行总体精度测试;在所述定点化代码通过了所述总体精度测试时,对所述定点化代码进行目标平台性能测试;在通过了所述性能测试的情况下,结束所述定点化处理;在所述定点化代码没有通过所述目标平台性能测试时,分析影响性能的瓶颈运算;在所述瓶颈运算由所述定点方式不适当导致时,使用测试数据测试所述瓶颈运算,确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况;根据与所述瓶颈运算相关的浮点变量的数值范围分布统计情况和所述定点化策略修改瓶颈运算,以获得修改后的定点化代码;使用测试数据对所述修改后的定点化代码进行总体精度测试和性能测试。2.根据权利要求1所述的方法,其中,所述确定不包含复杂运算的浮点代码中的浮点变量的数值范围的步骤包括:通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;在所述理论范围存在且所述理论范围是具有实际使用价值的数值时,确定所述理论范围是所述不包含复杂运算的浮点代码中的浮点变量的数值范围;在无法确定理论范围或者理论范围是不具有实际使用价值的数值时,修改浮点代码,使用测试数据测试所述浮点变量的动态范围,并确定所述动态范围是不包含复杂运算的浮点代码中的浮点变量的数值范围。3.根据权利要求1所述的方法,其中,在根据所述定点方式对所述浮点代码中的浮点变量进行定点化处理时,选择目标平台处理器最擅长的运算指令进行定点化。4.根据权利要求1所述的方法,其中,所述确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况的步骤包括:修改浮点代码,对瓶颈运算使用测试数据码流测试得到与所述瓶颈运算相关的浮点变量的数值范围分布统计结果。5.根据权利要求1所述的方法,其中,所述定点方式包括定点化策略和定点精度。6.一种定点化处理装置,其中,所述装置包括:第一计算单元,所述第一计算单元用于确定不包含复杂运算的浮点代码中的浮点变量的数值范围;第一分析单元,所述第一分析单元用于分析对所述浮点变量进行定点化处理的目标平...

【专利技术属性】
技术研发人员:张国成
申请(专利权)人:富士通株式会社
类型:发明
国别省市:日本;JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1