一种基于遗传算法的编译器参数自动调优方法技术

技术编号:37774098 阅读:24 留言:0更新日期:2023-06-06 13:41
本发明专利技术提供了一种基于遗传算法的编译器参数自动调优方法,涉及计算机编译器。本发明专利技术方法包括:通过修改调优选项配置文件,记录用户要进行调优的编译选项集合;编写编译运行脚本文件,读取要调优的编译选项集合,运行输出程序性能数据;在要调优的编译选项组合构成的搜索空间中进行迭代编译,获取最优编译选项组合,其中每次迭代训练基于Xgboost的成本模型,并利用该模型进行程序性能数据预测。本发明专利技术能在用户给出的编译选项集合中选出能够使得程序性能达到最佳的编译选项组合,超过编译器默认提供的编译选项组合,无需修改用户程序代码和编译器代码,具有较好的通用性和适配性。具有较好的通用性和适配性。具有较好的通用性和适配性。

【技术实现步骤摘要】
一种基于遗传算法的编译器参数自动调优方法


[0001]本专利技术属于计算机
,具体涉及一种基于遗传算法的编译器参数自动调优方法。

技术介绍

[0002]GCC(GNU编译器套件)和LLVM(构建编译器的框架系统)等通用编译器都有着数百甚至更多的编译优化选项,面向不同类型的体系结构,以及不同领域的应用程序,如果选择了不同的优化选项或者参数,最终得到的目标代码性能也各不相同,但是这些优化选项和参数的组合极其庞大复杂,采用传统的基于经验的人工筛选方式,很难获得满意和有说服力的结果。一般来说,编译器开发人员会为用户提供多组优化选项组合,例如GCC默认提供的编译选项组合包括

O1,

O2,

O3和

Os等,前三个组合采用的优化算法复杂度和编译时间依次递增。经过开发人员的实验,这些优化选项组合在一组基准应用程序上可以取得较好的性能。但是由于目标平台、程序行为、数据和代码分布不同的影响,预定义的优化选项组合往往达不到目标应用程序的最佳性能。
专利
技术实现思路

[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于遗传算法的编译器参数自动调优方法,其特征在于,包括如下步骤:步骤1,修改调优选项配置文件,记录用户要进行调优的编译选项集合;步骤2,编写编译运行脚本文件,该脚本文件对所要调优的程序进行编译和运行,从所述配置文件中读取当前要进行调优的编译选项集合替换到编译指令中,运行后输出测试的程序性能数据到文件performance.txt中;步骤3,在用户要调优的编译选项组合构成的搜索空间中进行迭代编译,获取最优编译选项组合;在迭代编译过程中,建立基于Xgboost的成本模型,该模型的输入是用户要调优的所有编译选项构成的特征向量,输出为被调优程序的性能数据,通过该模型确定最优编译选项组合。2.根据权利要求1所述的方法,其特征在于,所述的步骤1中,调优选项配置文件中包含的编译选项分为三种类型:1代表由用户指定必须选择的编译选项;2代表0/1型编译选型,即对编译选项的开关进行调优;4代表数值型编译选项,即对编译选项的取值进行调优,数值型编译选项中给出默认值、最小值和最大值。3.根据权利要求1或2所述的方法,其特征在于,所述的步骤3进行迭代编译包括如下:(1)从用户要调优的编译选项组合构成的搜索空间中不重复的挑选出100个配置config,形成初始种群;(2)将当前...

【专利技术属性】
技术研发人员:史晓华黄达
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1