【技术实现步骤摘要】
一种基于遗传算法的编译器参数自动调优方法
[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)将当前...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。