[发明专利]基于实例的迭代编译方法及编译装置有效
| 申请号: | 201010523297.1 | 申请日: | 2010-10-27 |
| 公开(公告)号: | CN102455897A | 公开(公告)日: | 2012-05-16 |
| 发明(设计)人: | 白书敬;马晓东;漆锋滨;尉红梅;李中升;姜军 | 申请(专利权)人: | 无锡江南计算技术研究所 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 骆苏华 |
| 地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 实例 编译 方法 装置 | ||
技术领域
本发明涉及编译方法,特别涉及一种对迭代编译进行优化的编译方法及编译装置。
背景技术
在使用编译器时,通常有大量可选的编译优化选项和参数。随着硬件平台的体系结构的不断复杂,应用程序的持续性能与硬件平台峰值性能差距的不断扩大,如何选择最好的优化,提高程序在给定硬件平台上的性能是一个困难的问题。传统的编译器利用对体系结构和程序特征的静态建模来决定如何对程序进行优化,这难以适应日趋复杂的硬件平台和应用程序。
为应对日趋复杂的硬件平台和应用程序,迭代编译是一种有效的方法。具有迭代编译功能的编译器采用某种搜索策略,自动地对程序进行多次编译和执行,在优化空间寻找最优或者较优的点。
目前,这种迭代编译技术在很多编译器中已经出现。例如,PathScale编译器中的工具PathOpt2,可以通过多次的编译执行,在一定的优化空间中选择最好的优化。并且,在迭代的过程中,前期编译执行的结果可被用来指导后继的编译执行,指示搜索方向,尽可能的压缩搜索范围,提高搜索效率。
PathScale编译器的这种迭代编译的方法也被Grigori Fursin等人引入了Open64、GCC等编译器中。这些编译器内增加了一系列支持迭代编译的接口,通过调用这些接口,可以实现各种搜索策略,包括随机式搜索、穷尽式搜索、爬山式搜索和启发式搜索等。
然而,上述举例的编译器主要着力于在优化空间中采用何种搜索策略。在实际应用中,每次搜索都需要对程序重新进行编译和执行,因而迭代编译常常需要消耗大量的时间。如何充分利用搜索的结果,在编译新程序时尽可能避免迭代,是一个亟待解决的问题。
发明内容
本发明要解决的问题是提供一种结合机器学习和迭代编译的编译方法和编译装置,以减少迭代编译,并且在编译器的性能和效率之间获得较佳平衡。
为解决上述问题,本发明提供一种基于实例的迭代编译方法,包括:
在获得待编译的目标程序后,根据编译操作参数确定对目标程序执行更新操作或应用操作;
当确定对目标程序执行更新操作时,对所述目标程序进行迭代编译,获得经编译优化的目标程序,将经编译优化的目标程序中的特征值及其对应的特征值分类作为新实例;
对于每个新实例,若编译器实例库中没有至少k1个实例,则将所述新实例直接添加至编译器实例库中;
对于每个新实例,若编译器实例库中有至少k1个实例,从编译器实例库中查找k1个实例,所述k1个实例中的特征值与所述新实例中特征值最相似;以所述k1个实例对所述新实例进行预测,在预测结果为错误时,将所述新实例添加至所述编译器实例库中;
当确定对目标程序执行应用操作时,获取目标程序中的特征值;
对目标程序中的每个特征值,从所述编译器实例库中查找k2个实例,所述k2个实例中的特征值与所述特征值的当前值最相似,并以所述k2个实例中出现频率最高的特征值分类作为所述特征值的当前值对应的分类;
依据各特征值对应的分类对目标程序进行编译优化。
本发明还提供一种基于实例的迭代编译装置,包括:
编译参数设置单元、解析单元、实例库、优化单元、实例搜索单元、实例添加单元、实例分析单元及代码生成单元,其中,
编译参数设置单元,根据命令行参数或实例库实例数设置编译参数,并将经设置的编译参数发送至解析单元及优化单元;所述实例库实例数为根据解析单元发送的特征值所获得的对应实例库实例数;
解析单元,对所获得的目标程序进行解析获得目标程序中的各特征值;在所获得的编译参数指示应用操作时,将所获得的特征值发送至实例搜索单元;
优化单元,在所获得的编译参数指示更新操作时,对经解析单元解析的目标程序中的各特征值进行优化以获得对应的特征值分类,将特征值及对应的特征值分类发送至实例搜索单元;在所获得的编译参数指示应用操作时,依据所获得的实例分析单元发送的特征值分类后对所获得的经解析单元解析的目标程序中的各相应特征值进行优化;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010523297.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种三指七自由度构型机器人手爪
- 下一篇:一种活动调节板材卡爪





