CN104461459B - 定点化处理方法及其装置 - Google Patents
定点化处理方法及其装置 Download PDFInfo
- Publication number
- CN104461459B CN104461459B CN201310435542.7A CN201310435542A CN104461459B CN 104461459 B CN104461459 B CN 104461459B CN 201310435542 A CN201310435542 A CN 201310435542A CN 104461459 B CN104461459 B CN 104461459B
- Authority
- CN
- China
- Prior art keywords
- floating
- point
- fixed point
- code
- test
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种定点化处理方法及其装置。其中,该方法包括:确定不包含复杂运算的浮点代码中的浮点变量的数值范围;分析对该浮点变量进行定点化处理的目标平台处理器,以获得该目标平台处理器的擅长运算,根据分析结果确定定点化策略;根据该浮点变量的数值范围和该定点化策略,或者根据该浮点变量的数值范围、该定点化策略以及预定的总体定点化精度,确定每个浮点变量的定点方式;根据该定点方式对该浮点变量进行定点化处理,生成定点化代码;使用测试数据对该定点化代码进行总体精度测试;在该定点化代码通过了该总体精度测试时,对该定点化代码进行目标平台性能测试;在通过了该性能测试的情况下,结束该定点化处理。该方法可有效的提升定点化代码的运行效率。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种定点化处理方法及其装置。
背景技术
出于低功耗、低成本以及设计简便的考虑,许多处理器并不支持浮点操作。因为操作数必须是整数,同时限制了处理器能够承担的运算。如果源操作数是浮点数,需要进行定点化处理。其解决方案也根据不同的数值特点而有所不同。
现有定点化处理方式在定点化时往往不考虑目标平台特点而只仅仅考虑整体定点化精度,对于不同平台,其定点化方式几乎相同,无法做到对特定平台进行特定优化定点方式处理。并且通常的定点方式,在数值范围较窄,运算比较规则的情况下,先对数据进行向左移位,将其放大,进行运算后再进行向右移位,缩小到正确的数量级。这种情况最为常见,在处理器上运行具有较快的速度。但是在大数值范围等非正常情况则显得力不从心。
应该注意,上面对技术背景的介绍只是为了方便对本发明的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本发明的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
发明内容
对于相对复杂的非正常情况,比如原始浮点数具有相当大的动态范围等等,这时,简单的对数据进行向左移位处理,数据溢出及精度控制之间的矛盾将无法调和。为了满足精度要求,可以采用伪浮点方法(模拟浮点格式,采用两个变量分别存储指数和尾数)。这种方法,实际上就是用软件的方法模拟了浮点运算,可以达到浮点运算相似的精度。但是这种方法,往往具有很慢的运算速度,在很多运算速度要求高的情况,显然不合适。
另外,由于不同目标平台对于不同的操作指令具有不同的处理能力,例如高级RISC微处理器ARM(Advanced RISC Microprocessor)基础核平台,对于整数乘及长整型移位具有较弱的处理能力;而对于某些特殊的数字信号处理器(DSP,Digital SignalProcessor)则最怕跳转指令破坏流水线等。因此,在进行定点化处理时,如果不考虑目标平台的差异,则定点化后的定点化代码很难在目标平台上有最佳的运行效率。
本发明实施例的目的在于提供一种定点化处理方法及其装置,结合了目标平台处理器的处理能力进行定点化处理,提升了定点化代码在目标平台处理器上的运行效率。
本发明实施例的第一方面提供了一种定点化处理方法,该方法包括:
确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
分析对该浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;
根据该浮点变量的数值范围和所述定点化策略,或者根据该浮点变量的数值范围、该定点化策略以及预定的总体定点化精度,确定每个浮点变量的定点方式;
根据该定点方式对该浮点变量进行定点化处理,生成定点化代码;
使用测试数据对该定点化代码进行总体精度测试;
在该定点化代码通过了该总体精度测试时,对该定点化代码进行目标平台性能测试;
在通过了该性能测试的情况下,结束该定点化处理。
本发明实施例的第二方面提供了一种定点化处理装置,其中,该装置包括:
第一计算单元,该第一计算单元用于确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
第一分析单元,该第一分析单元用于分析对该浮点变量进行定点化处理的目标平台处理器,以获得该目标平台处理器的擅长运算,根据分析结果确定定点化策略;
第一确定单元,该第一确定单元用于根据所述第一计算单元确定的浮点变量的数值范围和该第一分析单元确定的该定点化策略,或者根据该第一计算单元确定的浮点变量的数值范围、该第一分析单元确定的该定点化策略以及预定的总体定点化精度,确定每个浮点变量的定点方式;
第一生成单元,该第一生成单元用于根据该第一确定单元该定点方式对该浮点变量进行定点化处理,生成定点化代码;
第一测试单元,该第一测试单元用于使用测试数据对该第一生成单元生成的该定点化代码进行总体精度测试;
第二测试单元,该第二测试单元用于在该定点化代码通过了该第一测试单元所述总体精度测试时,对该第一生成单元生成的定点化代码进行目标平台性能测试。
本发明实施例的有益效果在于:在定点化处理过程中,结合目标处理器平台的特点,在满足了定点化精度要求的基础上,有效的提升定点化代码的运行效率。
参照后文的说明和附图,详细公开了本发明的特定实施方式,指明了本发明的原理可以被采用的方式。应该理解,本发明的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本发明的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
从以下结合附图的详细描述中,本发明实施例的上述以及其他目的、特征和优点将变得更加显而易见,在附图中:
图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中,通过以下方式来确定不包含复杂运算的浮点代码中的浮点变量的数据范围:
通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;在该理论范围存在且该理论范围是具有实际使用价值的数值时,确定该理论范围是该不包含复杂运算的浮点变量的数值范围;在无法确定理论范围或者理论范围是不具有实际应用价值的数值时,修改浮点代码,使用测试数据测试该浮点变量的动态范围,并确定该动态范围是不包含复杂运算的浮点代码中的浮点变量的数值范围。
其中,上述提到的数值范围是指在运行时可能达到的绝对最大值与绝对最小值,绝对值的幅度决定了定点化代码整数部分位数多少。
由于工程开发前准备的测试数据往往能够覆盖到各种可能的情况,包括错误情况等,由此得到的动态范围在大部分情况下完全可以代替理论范围。
以下举例说明上述确定数值范围的方法。
例如,在步骤101中,对于不包含复杂运算的浮点代码,通过理论分析得出浮点值的理论的数值范围,如:
a=b+c,其中,如果输入b和c数值范围是[0,2N],则可确定a的数值范围为[0,2N+1];
例如,16点FFT运算,如果输入数据的数值范围为[0,2N],则根据帕斯维尔Parseval能量守恒定律,可确定输出数据的数值范围为[0,2N+4]。
由上述可知,通过理论分析可获得该浮点变量的数值范围。
此外,在获得的理论范围是远大于实际应用价值的数值时,还可通过测试的方式来确定浮点变量的数值范围。例如,使用所用测试数据码流进行测试,找到每个浮点值在所有运行时的动态范围,如果该测试数据码流足够完备,获得的动态范围与理论范围很接近,其中关于通过测试的方式确定浮点变量的数值范围如实施例4中举例说明,此处不再赘述。
由上述实施例可知,在实际的定点化设计中,通过采用上述两种方式结合来确定浮点变量的数值范围,能够达到相当好的结果。
在本实施例中,在步骤101中确定了浮点变量的数值范围后,在步骤102中,可根据该目标平台处理器的性能特点分析该目标平台处理器的擅长运算,从而根据分析结果确定定点化策略。其中,该定点化策略可包括该目标平台处理器具有的指令集,各指令所对应的处理时间,流水线情况等信息,这样,可根据该处理时间确定该目标平台处理器最擅长的运算方法。
例如,目标平台处理器为ARM9处理器,通过对其性能分析可知,该ARM9处理器最擅长32位数据处理,其次为64位整型数据处理,然后是伪浮点处理;例如,目标平台处理器为专用的DSP处理器时,经分析可知,有些专用的DSP处理器最怕跳转指令破坏流水线。这样,通过分析不同处理器的特点,得到不同运算指令的处理时间(如时钟周期),确定不同的定点化策略,其中该指令运算可包括不同位数的加法指令、移位指令、除法指令、条件执行指令,但并不仅限于以上所述。关于定点化策略的确定如实施例4中举例说明,此处不再赘述。另外目标平台处理器也并不仅限于以上举例说明的处理器。
在本实施例中,在步骤103中,确定的定点方式可包括定点化策略和定点精度。其中定点方式的确定如实施例4中举例说明,此处不再赘述。
在本实施例中,在步骤104中,进行定点化处理时,在选择所使用的定点化方式时,可先选择该目标平台处理器擅长的运算进行定点化,即选择处理时间短的运算进行定点化,但也可以采用其他方式,此处不再赘述。
在本实施例中,在步骤105至步骤109中,使用测试数据对该定点化代码进行总体精度测试;在该定点化代码通过了该总体精度测试时,对该定点化代码进行目标平台性能测试;在通过了该性能测试的情况下,结束该定点化处理。其中,在使用测试数据对该定点化代码进行总体精度测试时,可以使用所有测试数据对该定点化代码进行总体精度测试,为了进一步提高测试开发速度,也可以先使用部分测试数据对该定点化代码进行总体精度测试,再使用所有测试数据对该定点化代码进行总体精度测试。另外,总体精度和性能要求均根据不同的应用在定点化开始前确定,对于某一个目标处理器平台,在满足不超过目标平台存储使用空间且总体精度满足要求的情况下,性能测试要求,即运行速度测试要求,其中所用的时钟周期越少,运行速度越快,即定点化代码在目标平台上运行速度不能慢于所提出的整体性能要求速度,具体的实施过程可采用现有技术,此处不再赘述。
由上述实施例可知,通过对目标平台处理器的性能进行分析来确定定点化策略,且根据该定点化策略、浮点变量值范围/总体精度来选择定点方式,在满足了定点化精度要求的基础上,有效的提升定点化代码的运行效率,所产生的定点化代码的效果比采用现有技术产生的定点化代码的效果好。
实施例2
在上述实施例1中,上述定点化处理方法解决了定点精度的问题,提升了运行效率。此外,在有些情况下,在目标平台处理器上对测试码进行大规模测试时,有些关键运算时间较长,成为整个定点化代码的瓶颈。例如,ARM9处理器的定点化代码,有些关键运算由于浮点变量值范围过大而采用了64位长整型数据处理甚至伪浮点处理,由于这些关键运算在原始浮点代码中就占据大部分的运算时间,定点化后,运算时间更长,已经成为整个定点化代码的速度瓶颈,在本实施例2中的定点化处理方法可解决上述问题。
图2是本发明实施例2的定点化处理方法流程图,如图2所示,该方法包括
步骤201~步骤208的执行过程与实施例1中的步骤101~步骤108类似,此处不再赘述。
在本实施例中,该方法还包括
步骤209,判断该定点化代码是否通过性能测试,在判断结果为是时,结束定点化处理过程;在判断结果为否时,执行步骤210。
步骤210,在步骤209中的判断结果为该定点化代码没有通过该目标平台性能测试时,分析影响性能的瓶颈运算;
步骤211,判断影响性能的瓶颈运算是否由定点方式不当导致,判断结果为是,则执行步骤212;
步骤212,在步骤211中,在该瓶颈运算由该定点方式不适当导致时,使用测试数据测试该瓶颈运算,确定与该瓶颈运算相关的浮点变量的数值范围分布统计情况;
步骤213,根据与该瓶颈运算相关的浮点变量的数值范围分布统计情况和该定点化策略修改瓶颈运算,以获得修改后的定点化代码;并返回至步骤205,以对修改后的定点化代码进行精度测试和目标平台性能。
在本实施例中,在步骤211中,如果在该瓶颈运算不是由定点方式不适当引起的情况下,结束该定点化处理。一般来说,可以采用较简单的方式来判断是否定点方式不当,比如发现瓶颈运算是由于瓶颈处大量采用了目标处理器最不擅长的操作(如ARM9大量采用长整型移位),则可初步判断为定点方式不当,产生这种情况可能是数据范围过大等单一或者多种原因。
在本实施例中,在步骤212中,通过以下方式确定与该瓶颈运算相关的浮点变量的数值范围分布统计情况:
修改浮点代码,对瓶颈运算;使用测试数据码流测试得到与该瓶颈运算相关的浮点变量的数值范围分布统计结果。
在本实施例中,可以使用所有测试数据码流测试得到与该瓶颈运算相关的浮点变量的数值范围分布统计结果,另外为了进一步提高测试开发速度,还可以根据需要选择一部分测试数据码流测试得到与该瓶颈运算相关的浮点变量的数值范围分布统计结果。例如,某个关键运算中的某个浮点变量在所有码流测试中总共测试到了10000次,其动态范围为[0,280],插入动态范围分布统计测试语句后,测得实际浮点变量取值分布统计情况如下表1所示:
表1
浮点变量数值范围 | 在当前数值范围中的测试个数 | 定点化修改方案 |
20~231 | 9950 | 32位定点处理 |
231~263 | 45 | 63位长整型处理 |
263~280 | 5 | 伪浮点处理 |
在本实施例中,在步骤213中,根据与该瓶颈运算相关的浮点变量的数值范围分布统计情况和该定点化策略修改瓶颈运算;上述例子中,如果简单的根据动态范围来确定定点方式,必然需要采用伪浮点,从而使得所有运行情况下都是伪浮点运算,其运行效率必定很低,如果确定了浮点变量的数值范围分布统计情况,可以根据定点化策略使用条件跳转方式,将同一个变量分成三段(在实际应用中,还可以采用其它定点化策略,其中定点化策略的确定与上述实施例1中采用的方式相同,此处不再赘述),这样每段采用不同的定点方式,在实际的运行中,运行效率大大提高,同时,计算精度也得到的保证,此种修改方式仅仅是示例,在实际应用中设计者需要根据目标处理器的特点、代码特点等确定最高效的定点化策略。
由上述实施例可知,通过对目标平台处理器的性能进行分析来确定定点化策略,且根据该定点化策略、浮点变量值范围/总体精度来选择定点方式,并且还可找出影响运行效率的瓶颈运算,在满足了定点化精度要求的基础上,有效的提升定点化代码的运行效率,所产生的定点化代码的效果比采用现有技术产生的定点化代码的效果好。
实施例3
本发明实施例3还提供一种定点化处理方法。基于实施例2中,在实施例中,在步骤213获得修改后的定点化代码后,对修改后的定点化代码进行精度和性能测试。
在本实施例中,与实施例2的不同之处在于,在根据与该瓶颈运算相关的浮点变量的数值范围分布统计情况和该定点化策略修改瓶颈运算,获得修改后的定点化代码后,先使用测试数据对定点化代码的修改部分的代码进行精度测试和目标平台性能测试,即先使用测试数据对存在瓶颈的定点化代码进行精度测试和目标平台性能测试,其中精度测试的精度要求可以与总体精度测试要求一致,也可以根据需要设定一个更高的定点精度,当定点化代码的修改部分的代码(瓶颈运算)通过测试后,再使用测试数据对整个修改后的定点化代码进行总体精度测试和目标平台测试,这样,可以进一步节省测试时间,提高测试效率。
在本实施例中,步骤201~212的执行过程与实施例2中的类似,此处不再赘述。
在本实施例中,在步骤212后,该方法还包括:
根据与该瓶颈运算相关的浮点变量的数值范围分布统计情况和该定点化策略修改瓶颈运算,以获得修改后的定点化代码;使用测试数据先对该存在瓶颈运算的定点化代码进行精度测试和性能测试;在该存在瓶颈运算的定点化代码通过精度测试和性能测试后,返回至步骤205;否则重新修改瓶颈运算获得修改后的定点化代码,并使用测试数据对该存在瓶颈运算的定点化代码继续进行精度测试和性能测试,直至通过测试后返回至步骤205。
在本实施例中,可以使用所有测试数据码流对瓶颈运算进行精度和性能测试,另外为了进一步提高测试开发速度,还可以根据需要选择一部分测试数据码流对瓶颈运算进行精度和性能测试。
由上述实施例可知,通过对目标平台处理器的性能进行分析来确定定点化策略,且根据该定点化策略、浮点变量值范围/总体精度来选择定点方式;并且还可找出影响运行效率的瓶颈运算,先对影响运行效率的瓶颈运算部分修改后的定点化代码进行精度和性能测试.,这样,可以进一步节省测试时间,提高测试效率,同时在满足了定点化精度要求的基础上,更有效的提升定点化代码的运行效率,所产生的定点化代码的效果比采用现有技术产生的定点化代码的效果好。
实施例4
在本实施例中,以通用处理器ARM9处理器为例来说明整个定点化处理方法。但该实例仅仅是一个示例,此示例中的定点化策略也仅作参考,实际设计时,由于代码特点及平台特点等各种情况不同,定点化策略会有所不同。
例如,下面是待定点化浮点代码示例,其中完备的测试数据已经选定,目标处理器平台为ARM9,并且总体精度要求最终计算结果值定点化代码与浮点代码输出相对误差不超过0.1%;其中待定点化函数一共有三条浮点运算1-3。
在步骤201中,确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
在本实施例中,分别对如何确定不包含复杂运算的浮点代码中浮点变量的理论范围和动态范围进行举例说明,具体的,a,b,c,d由于其数据类型short,通过理论分析确定其理论范围为[0,215),经过取模运算后的exp0理论范围为[0,7];经过取模运算后的exp1理论范围为[0,127];Result由于数据类型int,其理论范围为[0,231);这里由于exp1的理论范围实在太大,没有实际使用价值,所以仍需进行动态范围测试。
对原始浮点代码插入浮点变量的动态范围测试代码,使用所有测试数据进行动态范围测试,得到剩余各浮点变量的动态范围,假设测试得到的浮点变量的动态范围测试结果如下:
取模运算后exp1动态范围为[0,32];tmpa动态范围为[0,220);tmpb动态范围为[0,247);
在步骤202中,分析对该浮点变量进行定点化处理的目标平台处理器,以获得该目标平台处理器的擅长运算,根据分析结果确定定点化策略;
在本实施例中,例如,分析ARM9处理器的特点,得到各运算指令的处理时间以决定定点化策略:
32位定点加法需要1个时钟周期;
64位定点加法需要3个时钟周期;
32位移位需要2个时钟周期;
64位移位需要二三十个时钟周期,视不同的移位值时钟周期不同;
32位除法需要几十个时钟周期,视不同数值时钟周期不同;
64位除法需要几百个时钟周期,视不同数值时钟周期不同;
if()条件执行指令需要5个时钟周期;
因此,定点化策略应尽量多的选择运算速度快的32位指令,尽量避免运算速度慢的64位指令。同时,瓶颈运算修改时可以根据数值大小,使用if()条件执行指令。
在步骤203和204中,根据该浮点变量的数值范围和该定点化策略,或者根据该浮点变量的数值范围、该定点化策略以及预定的总体定点化精度,确定每个该浮点变量的定点方式;根据该定点方式对该浮点变量进行定点化处理,生成定点化代码;在本实施例中,总体精度要求是指process函数输出,对于一个浮点变量,一旦选中一种定点方式,则这个变量的定点精度默认为选中定点方式所能表述的最高精度,或者根据需要而设定的精度。
在本实施例中,根据该浮点变量的数值范围和该定点化策略,或者根据该浮点变量的数值范围、该定点化策略以及预定的总体定点化精度,确定每个该浮点变量的定点方式;根据此定点方式进行定点化的代码如下所示:
由于数值范围的不同,tmpa_fix和tmpb_fix的定点化结果不同。同时,result_fix的计算需要用到64位长整型的除法运算。
在步骤205~208中,使用测试数据对该定点化代码进行总体精度测试;如果没有通过该总体精度测试,则调整所述定点方式,重新生成定点化代码,并重新进行总体精度测试;如果判断该定点化代码通过了该总体精度测试,对该定点化代码进行目标平台性能测试;
在本实施例中,将此定点化代码使用测试数据与原始浮点代码进行总体精度测试,如果浮点代码和定点化代码的result最终输出满足相对误差小于0.1%的满足精度要求;否则重新调整定点方式,并重新进行总体精度测试。接下来在ARM9平台上的进行性能测试。
在步骤209~210中,判断该定点化代码是否通过性能测试,在判断结果为是时,结束定点化处理过程;在判断结果为否时,分析影响性能的瓶颈运算;
在本实施例中,在上述定点化代码通过了性能测试的情况下,结束所述定点化处理;否则在这里根据计算得出整个函数运行需要几百个时钟周期,上述定点化代码存在速度瓶颈。因此,对定点化代码中分多段插入运行速度统计模块以进行更详细的性能测试来发现瓶颈运算,通过进一步性能测试后很容易发现定点运算代码2和3都为瓶颈运算。
在步骤211~212中,判断影响性能的瓶颈运算是否由定点方式不当导致,判断结果为是,使用测试数据测试该瓶颈运算,确定与该瓶颈运算相关的浮点变量的数值范围分布统计情况;否则结束处理。
在本实施例中,在定点化代码中,对所发现的瓶颈运算是由定点方式不适当导致的,则进行更详细的数值范围分布统计分析,使用测试数据对exp1及tmpb_fix进行数值范围分布统计分析,假设结果发现在99%的情况下,exp1的动态范围为[0,10];而对于tmpb_fix,在98%的情况下,tmpb_fix小于0x00400000,如下表2所示:
表2
在步骤213中,根据与该瓶颈运算相关的浮点变量的数值范围分布统计情况和该定点化策略修改瓶颈运算,以获得修改后的定点化代码;并返回至步骤305,以对修改后的定点化代码进行精度测试和目标平台性能。
在一个实施方式中,根据上述分析,对瓶颈运算定点化代码2和3进行修正,修正后的定点化代码如下所示,并重新对修正后的定点化代码1、2、3进行总体精度测试和性能测试,这里在ARM9平台上进行性能测试时,此定点函数的平均运行速度降为二三十个时钟周期,满足要求。运行效率大幅提高。
在另一个实施方式中,也可以使用测试数据针对上述修改过的瓶颈运算定点化代码2和3先进行精度测试和性能测试,在通过上述测试后,再使用测试数据对修改后的完整定点化代码1、2和3,进行总体精度测试和性能测试,以进一步节省测试时间,提高测试效率。
实施例5
图3是本发明实施例5的定点化装置300的构成示意图,如图3所示,该装置300包括:第一计算单元301、第一分析单元302、第一确定单元303、第一生成单元304、第一测试单元305、第二测试单元306;其中
第一计算单元301,该第一计算单元301用于确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
第一分析单元302,该第一分析单元302用于分析对该浮点变量进行定点化处理的目标平台处理器,以获得该目标平台处理器的擅长运算,根据分析结果确定定点化策略;
第一确定单元303,该第一确定单元303用于根据第一计算单元301确定的浮点变量的数值范围和第一分析单元302确定的该定点化策略,或者根据第一计算单元301确定的浮点变量的数值范围、第一分析单元302确定的该定点化策略以及预定的总体定点化精度,确定每个该浮点变量的定点方式;
第一生成单元304,该第一生成单元304用于根据第一确定单元303该定点方式对该浮点变量进行定点化处理,生成定点化代码;
第一测试单元305,该第一测试单元305用于使用测试数据对第一生成单元304生成的该定点化代码进行总体精度测试;
第二测试单元306,该第二测试单元306用于在该定点化代码通过了第一测试单元405中的总体精度测试时,对该第一生成单元304生成的定点化代码进行目标平台性能测试。
在本实施例中,当该定点化代码没有通过第一测试单元305中的总体精度测试时,该定点化装置还可以包括第二调整单元307,该第二调整单元307用于调整所述定点方式,重新生成定点化代码,并再次通过第一测试单元305进行总体精度测试。
在本实施例中,在定点化之前必须首先准备一版参考浮点代码,这版代码不包含任何难以定点化的复杂运算(比如说平方根、正余弦运算等,不过由于基2的指数运算在定点化代码中可表现为数据移位,所以排除在外),另外还需要准备测试数据码流库。
除了参考浮点代码外,还需要准备测试数据码流,确定目标平台处理器以及最终定点化代码的总体精度要求。
图4是本实施例中第一计算单元301的构成示意图,如图4所示,该第一计算单元301还可包括第三分析单元401,第一判断单元402,第三确定单元403,第三测试单元404,其中:
第三分析单元401,该第三分析单元401用于通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;
第一判断单元402,该第一判断单元402用于判断该第三分析单元,401分析该的理论范围是否存在或该理论范围是否具有实际使用价值的数值
第三确定单元403,该第三确定单元403用于在该第一判断单元402判断该理论范围存在且该理论范围是具有实际使用价值的数值时,确定该理论范围是该不包含复杂运算的浮点变量的数值范围;
第三测试单元404,该第三测试单元404用于在该第一判断单元402判断无法确定理论范围或者理论范围是不具有实际应用价值的数值时,修改浮点代码,使用测试数据测试该浮点变量的动态范围,并确定该动态范围是不包含复杂运算的浮点代码中的浮点变量的数值范围。
在上述实施例中,第一计算单元301、第一分析单元302、第一确定单元303、第一生成单元304、第一测试单元305、第二测试单元306、第二调整单元307的工作方式与步骤101~109类似,此处不再赘述。
由上述实施例可知,通过对目标平台处理器的性能进行分析来确定定点化策略,且根据该定点化策略、浮点变量值范围/总体精度来选择定点方式,在满足了定点化精度要求的基础上,有效的提升定点化代码的运行效率,所产生的定点化代码的效果比采用现有技术产生的定点化代码的效果好。
实施例6
图5是本发明实施例6的定点化装置500的构成示意图,如图5所示,该装置500包括:第一计算单元501、第一分析单元502、第一确定单元503、第一生成单元504、第一测试单元505、第二测试单元506;其中第一计算单元501、第一分析单元502、第一确定单元503、第一生成单元504、第一测试单元505、第二测试单元506、第二调整单元507,其作用与实施例5中的第一计算单元301、第一分析单元302、第一确定单元303、第一生成单元304、第一测试单元305、第二测试单元306、第二调整单元307的作用类似,此处不再赘述。
如图5所示,该定点化处理装置还包括,第二分析单元508,第二确定单元509,第一调整单元510,其中;
第二分析单元508,该第二分析单元508用于在该定点化代码没有通过该目标平台性能测试时,分析影响性能的瓶颈运算;
第二确定单元509,该第二确定单元509用于在该第二分析单元508分析的该瓶颈运算由该定点方式不适当导致时,使用测试数据测试该瓶颈运算,确定与该瓶颈运算相关的浮点变量的数值范围分布统计情况;
第一调整单元510,该第一调整单元510用于根据第二确定单元509确定的与该瓶颈运算相关的浮点变量的数值范围分布统计情况和该定点化策略修改瓶颈运算,以获得修改后的定点化代码;
在上述实施例中,第一计算单元501、第一分析单元502、第一确定单元503、第一生成单元504、第一测试单元505、第二测试单元506、第二调整单元507、第二分析单元508,第二确定单元509,第一调整单元510的工作方式与步骤201~213类似,此处不再赘述。
由上述实施例可知,通过对目标平台处理器的性能进行分析来确定定点化策略,且根据该定点化策略、浮点变量值范围/总体精度来选择定点方式,并且还可找出影响运行效率的瓶颈运算,在满足了定点化精度要求的基础上,有效的提升定点化代码的运行效率,所产生的定点化代码的效果比采用现有技术产生的定点化代码的效果好。
实施例7
在本实施例中的定点化装置中第一计算单元501、第一分析单元502、第一确定单元503、第一生成单元504、第一测试单元505、第二测试单元506、第二调整单元507、第二分析单元508,第二确定单元509,第一调整单元510,其工作方式与实施例3步骤201~212类似,此处不再赘述。
在本实施例中,在第一调整单元510根据第二确定单元503确定的与瓶颈运算相关的浮点变量的数值范围分布统计情况和该定点化策略修改瓶颈运算,获得修改后的定点化代码之后,该装置还可以包括:
第四测试单元511(图中未示出),该第四测试单元510用于使用测试数据先对该存在瓶颈运算的定点化代码进行精度测试和性能测试;在该存在瓶颈运算的定点化代码通过精度测试和性能测试后,再使用第一测试单元505进行总体精度测试;否则使用第一调整单元510重新修改瓶颈运算,以获得修改后的定点化代码。
在上述实施例中,第一计算单元501、第一分析单元502、第一确定单元503、第一生成单元504、第一测试单元505、第二测试单元506、第二调整单元507、第二分析单元508,第二确定单元509,第一调整单元510、第四测试单元511的工作方式与实施例3中的步骤类似,此处不再赘述。
由上述实施例可知,通过对目标平台处理器的性能进行分析来确定定点化策略,且根据该定点化策略、浮点变量值范围/总体精度来选择定点方式,并引入了瓶颈运算,在满足了定点化精度要求的基础上,有效的提升定点化代码的运行效率,所产生的定点化代码的效果比采用现有技术产生的定点化代码的效果好。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此所附权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
应当理解,本发明的各部分可以用硬件、软件、固件或者它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可以用本领域共知的下列技术中的任一项或者他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
关于包括以上多个实施例的实施方式,还公开下述的附记。
附记1、一种定点化处理方法,所述方法包括:
确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
分析对所述浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;
根据所述浮点变量的数值范围和所述定点化策略,或者根据所述浮点变量的数值范围、所述定点化策略以及预定的总体定点化精度,确定每个所述浮点变量的定点方式;
根据所述定点方式对所述浮点变量进行定点化处理,生成定点化代码;
使用测试数据对所述定点化代码进行总体精度测试;
在所述定点化代码通过了所述总体精度测试时,对所述定点化代码进行目标平台性能测试;
在通过了所述性能测试的情况下,结束所述定点化处理。
附记2、根据附记1所述的方法,其中,
在所述定点化代码没有通过所述目标平台性能测试时,分析影响性能的瓶颈运算;
在所述瓶颈运算由所述定点方式不适当导致时,使用测试数据测试所述瓶颈运算,确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况;
根据与所述瓶颈运算相关的浮点变量的数值范围分布统计情况和所述定点化策略修改瓶颈运算,以获得修改后的定点化代码;
使用瓶颈数据或测试数据对所述修改后的定点化代码进行总体精度测试和性能测试。
附记3、根据附记1所述的方法,其中,所述确定不包含复杂运算的浮点代码中的浮点变量的数值范围的步骤包括:
通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;
在所述理论范围存在且所述理论范围是具有实际使用价值的数值时,确定所述理论范围是所述不包含复杂运算的浮点变量的数值范围;
在无法确定理论范围或者理论范围是不具有实际应用价值的数值时,修改浮点代码,使用测试数据测试所述浮点变量的动态范围,并确定所述动态范围是不包含复杂运算的浮点代码中的浮点变量的数值范围。
附记4、根据附记1所述的方法,其中,在根据所述定点方式对所述浮点代码中的浮点变量进行定点化处理时,优先选择目标平台处理器最擅长的运算指令进行定点化。
附记5、根据附记1或2所述的方法,其中,在所述定点化代码或者所述修改后的定点化代码没有通过所述总体精度测试的情况下,调整所述定点方式,重新生成定点化代码,并进行所述总体精度测试。
附记6、根据附记2所述的方法,其中,在所述瓶颈运算不是由定点方式不适当引起的情况下,结束所述定点化处理。
附记7、根据附记2所述的方法,其中,所述确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况的步骤包括:
修改浮点代码,对瓶颈运算,使用测试数据码流测试得到与所述瓶颈运算相关的浮点变量的数值范围分布统计结果。
附记8、根据附记1所述的方法,其中,所述定点方式包括定点化策略和定点精度。
附记9、一种定点化处理装置,其中,所述装置包括:
第一计算单元,所述第一计算单元用于确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
第一分析单元,所述第一分析单元用于分析对所述浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;
第一确定单元,所述第一确定单元用于根据所述第一计算单元确定的浮点变量的数值范围和所述第一分析单元确定的所述定点化策略,或者根据所述第一计算单元确定的浮点变量的数值范围、所述第一分析单元确定的所述定点化策略以及预定的总体定点化精度,确定每个所述浮点变量的定点方式;
第一生成单元,所述第一生成单元用于根据所述第一确定单元所述定点方式对所述浮点变量进行定点化处理,生成定点化代码;
第一测试单元,所述第一测试单元用于使用测试数据对所述第一生成单元生成的所述定点化代码进行总体精度测试;
第二测试单元,所述第二测试单元用于在所述定点化代码通过了所述第一测试单元所述总体精度测试时,对所述第一生成单元生成的定点化代码进行目标平台性能测试。
附记10、根据附记9所述的装置,其中所述装置还包括:
第二分析单元,所述第二分析单元用于在所述定点化代码没有通过所述目标平台性能测试时,分析影响性能的瓶颈运算;
第二确定单元,所述第二确定单元用于在所述第二分析单元分析的所述瓶颈运算由所述定点方式不适当导致时,使用测试数据测试所述瓶颈运算,确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况;
第一调整单元,所述第一调整单元用于根据第二确定单元确定的与所述瓶颈运算相关的浮点变量的数值范围分布统计情况和所述定点化策略修改瓶颈运算,以获得修改后的定点化代码。
附记11、根据附记9所述的装置,其中所述第一计算单元还包括:
第三分析单元,所述第三分析单元用于通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;
第一判断单元,所述第一判断单元用于判断所述第三分析单元分析所述的理论范围是否存在或所述理论范围是否具有实际使用价值的数值;
第三确定单元,所述第三确定单元用于在所述第一判断单元判断所述理论范围存在且所述理论范围是具有实际使用价值的数值时,确定所述理论范围是所述不包含复杂运算的浮点变量的数值范围;
第三测试单元,所述第三测试单元用于在所述第一判断单元判断无法确定理论范围或者理论范围是不具有实际应用价值的数值时,修改浮点代码,使用测试数据测试所述浮点变量的动态范围,并确定所述动态范围是不包含复杂运算的浮点代码中的浮点变量的数值范围。
附记12、根据附记9或10所述的装置,其中所述装置还包括:
第二调整单元,所述第二调整单元用于在所述定点化代码或者所述修改后的定点化代码没有通过第一测试单元所述总体精度测试的情况下,调整所述定点方式,重新生成定点化代码,并通过第一测试单元进行所述总体精度测试。
附记13、根据附记9所述的装置,其中,所述第一生成单元,还用于优先选择目标平台处理器最擅长的运算指令进行定点化。
附记14、根据附记10所述的装置,其中,在所述瓶颈运算不是定点方式不适当引起的情况下,结束所述定点化处理。
附记15、根据附记10所述的装置,其中,所述第二确定单元具体用于:
修改浮点代码,对瓶颈运算,使用测试数据码流测试得到与所述瓶颈运算相关的浮点变量的数值范围分布统计结果。
附记16、根据附记9所述的装置,其中,所述定点方式包括定点化策略和定点精度。
Claims (8)
1.一种定点化处理方法,所述方法包括:
确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
分析对所述浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;
根据所述浮点变量的数值范围和所述定点化策略,或者根据所述浮点变量的数值范围、所述定点化策略以及预定的总体定点化精度,确定每个所述浮点变量的定点方式;
根据所述定点方式对所述浮点变量进行定点化处理,生成定点化代码;
使用测试数据对所述定点化代码进行总体精度测试;
在所述定点化代码通过了所述总体精度测试时,对所述定点化代码进行目标平台性能测试;
在通过了所述性能测试的情况下,结束所述定点化处理;
在所述定点化代码没有通过所述目标平台性能测试时,分析影响性能的瓶颈运算;
在所述瓶颈运算由所述定点方式不适当导致时,使用测试数据测试所述瓶颈运算,确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况;
根据与所述瓶颈运算相关的浮点变量的数值范围分布统计情况和所述定点化策略修改瓶颈运算,以获得修改后的定点化代码;
使用测试数据对所述修改后的定点化代码进行总体精度测试和性能测试。
2.根据权利要求1所述的方法,其中,所述确定不包含复杂运算的浮点代码中的浮点变量的数值范围的步骤包括:
通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;
在所述理论范围存在且所述理论范围是具有实际使用价值的数值时,确定所述理论范围是所述不包含复杂运算的浮点代码中的浮点变量的数值范围;
在无法确定理论范围或者理论范围是不具有实际使用价值的数值时,修改浮点代码,使用测试数据测试所述浮点变量的动态范围,并确定所述动态范围是不包含复杂运算的浮点代码中的浮点变量的数值范围。
3.根据权利要求1所述的方法,其中,在根据所述定点方式对所述浮点代码中的浮点变量进行定点化处理时,选择目标平台处理器最擅长的运算指令进行定点化。
4.根据权利要求1所述的方法,其中,所述确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况的步骤包括:
修改浮点代码,对瓶颈运算使用测试数据码流测试得到与所述瓶颈运算相关的浮点变量的数值范围分布统计结果。
5.根据权利要求1所述的方法,其中,所述定点方式包括定点化策略和定点精度。
6.一种定点化处理装置,其中,所述装置包括:
第一计算单元,所述第一计算单元用于确定不包含复杂运算的浮点代码中的浮点变量的数值范围;
第一分析单元,所述第一分析单元用于分析对所述浮点变量进行定点化处理的目标平台处理器,以获得所述目标平台处理器的擅长运算,根据分析结果确定定点化策略;
第一确定单元,所述第一确定单元用于根据所述第一计算单元确定的浮点变量的数值范围和所述第一分析单元确定的所述定点化策略,或者根据所述第一计算单元确定的浮点变量的数值范围、所述第一分析单元确定的所述定点化策略以及预定的总体定点化精度,确定每个所述浮点变量的定点方式;
第一生成单元,所述第一生成单元用于根据所述第一确定单元所述定点方式对所述浮点变量进行定点化处理,生成定点化代码;
第一测试单元,所述第一测试单元用于使用测试数据对所述第一生成单元生成的所述定点化代码进行总体精度测试;
第二测试单元,所述第二测试单元用于在所述定点化代码通过了所述第一测试单元所述总体精度测试时,对所述第一生成单元生成的定点化代码进行目标平台性能测试;
其中所述装置还包括:
第二分析单元,所述第二分析单元用于在所述定点化代码没有通过所述目标平台性能测试时,分析影响性能的瓶颈运算;
第二确定单元,所述第二确定单元用于在所述第二分析单元分析的所述瓶颈运算由所述定点方式不适当导致时,使用测试数据测试所述瓶颈运算,确定与所述瓶颈运算相关的浮点变量的数值范围分布统计情况;
第一调整单元,所述第一调整单元用于根据第二确定单元确定的与所述瓶颈运算相关的浮点变量的数值范围分布统计情况和所述定点化策略修改瓶颈运算,以获得修改后的定点化代码;
所述第一测试单元和所述第二测试单元使用测试数据对所述修改后的定点化代码进行总体精度测试和性能测试。
7.根据权利要求6所述的装置,其中所述第一计算单元还包括:
第三分析单元,所述第三分析单元用于通过理论分析确定不包含复杂运算的浮点代码中的浮点变量的理论范围;
第一判断单元,所述第一判断单元用于判断所述第三分析单元分析的所述的理论范围是否存在或所述理论范围是否具有实际使用价值的数值;
第三确定单元,所述第三确定单元用于在所述第一判断单元判断所述理论范围存在且所述理论范围是具有实际使用价值的数值时,确定所述理论范围是所述不包含复杂运算的浮点代码中的浮点变量的数值范围;
第三测试单元,所述第三测试单元用于在所述第一判断单元判断无法确定理论范围或者理论范围是不具有实际使用价值的数值时,修改浮点代码,使用测试数据测试所述浮点变量的动态范围,并确定所述动态范围是不包含复杂运算的浮点代码中的浮点变量的数值范围。
8.根据权利要求6所述的装置,其中,所述第一生成单元还用于选择目标平台处理器最擅长的运算指令进行定点化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310435542.7A CN104461459B (zh) | 2013-09-23 | 2013-09-23 | 定点化处理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310435542.7A CN104461459B (zh) | 2013-09-23 | 2013-09-23 | 定点化处理方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461459A CN104461459A (zh) | 2015-03-25 |
CN104461459B true CN104461459B (zh) | 2017-04-19 |
Family
ID=52907580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310435542.7A Expired - Fee Related CN104461459B (zh) | 2013-09-23 | 2013-09-23 | 定点化处理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461459B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788827B (zh) * | 2017-04-01 | 2020-07-03 | 成都国恒空间技术工程有限公司 | 一种通信系统链路级定浮点混合仿真方法 |
CN107292334A (zh) * | 2017-06-08 | 2017-10-24 | 北京深瞐科技有限公司 | 图像识别方法及装置 |
CN107451658B (zh) * | 2017-07-24 | 2020-12-15 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
CN108009393B (zh) * | 2017-10-31 | 2020-12-08 | 深圳市易成自动驾驶技术有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN108596328B (zh) * | 2018-04-26 | 2021-02-02 | 北京市商汤科技开发有限公司 | 一种定点化方法及装置、计算机设备 |
CN109697083B (zh) * | 2018-12-27 | 2021-07-06 | 深圳云天励飞技术有限公司 | 数据的定点化加速方法、装置、电子设备及存储介质 |
JP7294017B2 (ja) * | 2019-09-13 | 2023-06-20 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
CN110727442B (zh) * | 2019-10-11 | 2022-07-08 | 思必驰科技股份有限公司 | 用于嵌入式平台数据存储优化方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6741958B1 (en) * | 1997-06-18 | 2004-05-25 | Anastasios S. Maurudis | Method and apparatus for accurately modeling digital signal processors |
CN101377657A (zh) * | 2007-08-31 | 2009-03-04 | 同济大学 | 具有鲁棒稳定性能的电动助力转向系统 |
US7716655B2 (en) * | 2005-09-13 | 2010-05-11 | Kabushiki Kaisha Toshiba | Computer system for compiling source program |
CN102622207A (zh) * | 2011-01-30 | 2012-08-01 | 中兴通讯股份有限公司 | 定点化处理方法及装置 |
CN103314379A (zh) * | 2010-10-18 | 2013-09-18 | 艾尔葛托奇普股份有限公司 | 定制集成电路所用的架构引导式最佳系统精度定义算法 |
-
2013
- 2013-09-23 CN CN201310435542.7A patent/CN104461459B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6741958B1 (en) * | 1997-06-18 | 2004-05-25 | Anastasios S. Maurudis | Method and apparatus for accurately modeling digital signal processors |
US7716655B2 (en) * | 2005-09-13 | 2010-05-11 | Kabushiki Kaisha Toshiba | Computer system for compiling source program |
CN101377657A (zh) * | 2007-08-31 | 2009-03-04 | 同济大学 | 具有鲁棒稳定性能的电动助力转向系统 |
CN103314379A (zh) * | 2010-10-18 | 2013-09-18 | 艾尔葛托奇普股份有限公司 | 定制集成电路所用的架构引导式最佳系统精度定义算法 |
CN102622207A (zh) * | 2011-01-30 | 2012-08-01 | 中兴通讯股份有限公司 | 定点化处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
若干语音、音频信号处理算法;詹曦;《信息科技辑》;20070430;第I136-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104461459A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461459B (zh) | 定点化处理方法及其装置 | |
CN110263988B (zh) | 一种基于电厂脱硫系统的数据运行优化方法 | |
Poovey et al. | A benchmark characterization of the EEMBC benchmark suite | |
Calotoiu et al. | Using automated performance modeling to find scalability bugs in complex codes | |
Chen et al. | GPU-accelerated sparse LU factorization for circuit simulation with performance modeling | |
Konstantinidis et al. | A practical performance model for compute and memory bound GPU kernels | |
CN109583069B (zh) | 基于时间相关性的风速建模方法 | |
Jeffrey et al. | Experiments with test case prioritization using relevant slices | |
CN103246541A (zh) | 自动并行化多级并行代价评估方法 | |
CN111426804A (zh) | 基于观测数据判断臭氧生成敏感性的方法和装置 | |
CN104615808B (zh) | 一种待测试硬件运算部件的测试方法及参考模型装置 | |
CN108804719A (zh) | 数字电路老化仿真方法及装置 | |
CN116069603B (zh) | 应用的性能测试方法、建立性能测试模型的方法及装置 | |
CN115391069A (zh) | 基于海洋模式roms的并行通讯方法及系统 | |
CN110969565A (zh) | 图像处理的方法和装置 | |
Al-Hayanni et al. | Power and energy normalized speedup models for heterogeneous many core computing | |
CN114169576A (zh) | 风资源计算方法、装置及电子设备 | |
Muttillo et al. | An early-stage statement-level metric for energy characterization of embedded processors | |
Huang et al. | Handling orientation and aspect ratio of modules in electrostatics-based large scale fixed-outline floorplanning | |
JP2016173643A (ja) | 分散処理制御装置 | |
CN108564308B (zh) | 一种光伏电站总辐射变化特征评估方法和装置 | |
CN117974169B (zh) | 一种重点排放行业的减排技术布局方法及装置 | |
CN115796472B (zh) | 能源的计量处理方法、装置、电子设备及可读存储介质 | |
CN101330620B (zh) | 一种音视频数据编解码的方法及装置 | |
Nagy et al. | ENHANCED REGRESSION TESTING EXECUTION PROCESS USING TEST SUITE REDUCTION TECHNIQUES AND PARALLEL EXECUTION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170419 Termination date: 20180923 |