CN113407185B - 基于贝叶斯优化的编译器优化选项推荐方法 - Google Patents

基于贝叶斯优化的编译器优化选项推荐方法 Download PDF

Info

Publication number
CN113407185B
CN113407185B CN202110260487.7A CN202110260487A CN113407185B CN 113407185 B CN113407185 B CN 113407185B CN 202110260487 A CN202110260487 A CN 202110260487A CN 113407185 B CN113407185 B CN 113407185B
Authority
CN
China
Prior art keywords
optimization
sequence
training set
option
options
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.)
Active
Application number
CN202110260487.7A
Other languages
English (en)
Other versions
CN113407185A (zh
Inventor
陈俊洁
许宁馨
陈沛圻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN202110260487.7A priority Critical patent/CN113407185B/zh
Publication of CN113407185A publication Critical patent/CN113407185A/zh
Application granted granted Critical
Publication of CN113407185B publication Critical patent/CN113407185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种基于贝叶斯优化的编译器优化选项推荐方法,在每次迭代中,依序实现了(1)建立预测模型;(2)选取候选优化序列;(3)根据一个获取函数,在这些候选优化序列中选择最优的序列,然后对该序列进行评估,并用于更新预测模型,最终输出最终的优化序列。本发明比现有的贝叶斯优化方法性能更好,并且能够更加有效地实现编译器优化选项推荐。

Description

基于贝叶斯优化的编译器优化选项推荐方法
技术领域
本发明涉及编译器优化技术领域,特别是涉及一种编译器优化选项推荐方法。
背景技术
编译器是一种将程序转化为语义等价、执行更快且使用更少资源的程序。一个典型的编译器往往具有大量优化选项,每个选项有打开和关闭两种状态。因为优化选项数量太多,编译器的使用者无法做到理解每一个优化选项的功能,也无法判断一个优化选项应当打开还是关闭,以使得被编译的代码具有更短的执行时间、更小的代码体积或更少的能源消耗。因而,编译器优化选项推荐问题中存在的大量高维数据是传统的贝叶斯优化不能承受的。这也导致在贝叶斯优化中需要预测大量的优化序列,一个优化序列指的是一组打开的优化选项。为了解决这个问题,引入编译器的优化级别,设定每一个优化级别会打开特定的优化选项,来达到某一个优化目标。但是,这些优化级别并不能让每一个程序在每一个平台上都能有足够好的性能。甚至在某些平台上,优化级别所能达到的性能与程序的最优性能之间差异巨大。因此,除了使用既定的优化级别之外,有必要在特定平台针对特定程序进行进一步的优化选项推荐,使被编译的程序达到足够好的性能。
现有的编译器优化选项推荐方法有两大类:基于离线学习的推荐方法和基于在线学习的推荐方法。最新的基于在线学习的推荐方法包括随机优化选项推荐方法(在每次迭代中,随机地把每一个优化选项打开或者关闭,然后在该优化选项组合下评估程序的性能,记作RIO)、基于遗传算法的优化选项推荐方法(首先生成一个初始优化选项组合的集合,随后,在每次迭代中,集合里的优化选项组合将被视为染色体并且做交叉和编译,记作GA)、基于IRace的优化选项推荐方法(学习迭代过程中每个优化选项的采样分布,用于决定每个优化选项是打开还是关闭,记作IRace)等。尽管以上在线学习方法已被证明是有效的,而且不依赖于大量的训练数据,但它们依然存在着低效率的问题。
贝叶斯优化是一种优化目标函数的方法,而得到这个目标函数的结果往往需要很高的代价。贝叶斯优化的核心思想是利用搜索空间中已知区域所积累的知识来指导选择剩余区域中的样本,以便更有效地找到最优样本。更具体地说,它是一个迭代过程,包括两个主要步骤:第一,建立一个基于已测量样本的目标函数的预测模型;第二,由预测模型指导基于预测模型和获取函数的进一步采样。在传统的贝叶斯优化中,高斯过程被用于建立预测模型,它提供了一个贝叶斯后验概率分布来描述候选样本的目标函数输出。一个获取函数可以决定下一步在哪里采样,以便在当前最佳观测的基础上对采样的效果进行改进。广泛使用的获取函数包括Expected Improvement、Maximum Variance和Maximum Mean。
发明内容
本发明旨在提出一种基于贝叶斯优化的编译器优化选项推荐方法,为待编译程序推荐一组新的更优的编译器优化选项推荐方法(BOCA),通过在贝叶斯优化的框架中提出了一种新的优化选项搜索策略,并且加入了衰减函数来平衡对未知优化空间的探索和对已知优化空间的利用来实现编译器优化选项推荐方法的创新。
本发明为解决上述问题而采取的技术方案如下:
一种基于贝叶斯优化的编译器优化选项推荐方法,该方法包括以下步骤
步骤1:随机生成优化序列并测量在采用该优化序列编译后的执行时间来构造初始训练集,在生成初始的训练集后,依照贝叶斯优化的框架实现基于此初始训练集的迭代;每一次迭代应基于现有的训练集,在每一次迭代中,执行步骤2至步骤6;
步骤2:通过随机森林的训练算法建立一个预测模型;该预测模型所完成的处理包括:利用随机森林训练算法每个决策树对构成训练集的给定优化序列进行预测,得到每个决策树所做的预测值;然后,在随机森林训练算法中合并多个决策树,从而在每个决策树所做的所有这些预测值的基础上获得预测值的均值和标准差;
步骤3:通过对重要性进行排序来获得重要优化选项,而将剩余的优化选项随机设置为不重要优化选项;具体操作为:
基于一个训练好的随机森林模型来计算每个优化选项的重要性,如下式所示:
Figure GDA0003849574850000031
其中,u表示在节点上使用优化选项o进行拆分的决策树的总数,t表示决策树的总数,而dj表示在第j决策树中使用o进行拆分的节点;
步骤4:通过列举所有由重要优化选项组成的组合从而获得重要优化选项组合;以及通过高斯衰减函数辅助确定对应一个固定的重要优化选项组合的由不重要优化选项组成的非重复组合的具体数量,由此获得候选优化序列集合;
利用高斯衰减函数计算C(x),如下式所示:
Figure GDA0003849574850000032
其中,C1表示每个重要优化选项组合的不重要优化选项组合的数目,x表示迭代次数,C(x)表示在x迭代中重要优化选项组合的数目,offset、scale和decay表示控制高斯衰减函数的衰减形状的三个参数;
步骤5:使用所构建的预测模型预测每个候选优化序列的性能,并获得每个预测的平均值和标准偏差,用于计算每个候选优化序列的EI值;
步骤6:更新训练集,具体操作包括:获得在所有候选优化序列中具有最大EI值且不在训练集中的优化序列,然后测量该优化序列所导致的程序执行时间,并将该优化序列及其执行时间添加到训练集中以进行下一次迭代;如果未达到终止条件,则进入下一次迭代,再次从步骤2开始执行;
步骤7:在达到终止条件时输出最终的优化序列。
与现有技术相比,本发明能够达成以下有益技术效果:
比现有的贝叶斯优化方法性能更好,能够更加有效地实现编译器优化选项推荐。
附图说明
图1为本发明的基于贝叶斯优化的编译器优化选项推荐方法整体流程图;
图2为本发明的基于贝叶斯优化的编译器优化选项推荐方法实施过程示例图;
图3为本发明所使用的衰减函数示意图;
图4为K值的影响曲线示意图;
图5为scale值的影响曲线示意图;
图6为本发明与ε-PAL和FLASH的对比结果。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步详细描述。
本发明的基于贝叶斯优化的编译器优化选项推荐方法(BOCA),整个方法采用Python语言实现,并调用了现有的Python语言的第三方库scikit learn和numpy。其中,涉及机器学习模型的部分直接使用了scikit learn中提供的随机森林及其默认参数设置。将BOCA中的K,offset,decay,scale分别设置为8,20,0.5和10。除此之外,将初始集大小设置为2,而默认迭代总数则被设置为60。本发明采取的是在线学习的方法。
在每次迭代中,BOCA技术方案归纳为三个方面:(1)建立预测模型;(2)选取候选优化序列;(3)根据一个获取函数,在这些候选优化序列中选择最优的序列,然后对该序列进行评估,并用于更新预测模型。其中,(1)和(2)是本发明的创新点。
如图1所示,为本发明的基于贝叶斯优化的编译器优化选项推荐方法整体流程图。
该方法具体实施过程如下:
步骤1:随机生成优化序列并测量程序在采用该优化序列编译后的执行时间来构造初始训练集,在生成初始训练集后,依照贝叶斯优化的框架实现基于此初始训练集的迭代;每一次迭代应基于现有的训练集,在每一次迭代中,执行步骤2至步骤6;
步骤2:通过随机森林的训练算法建立一个预测模型;
该预测模型所完成的处理包括:利用随机森林训练算法每个决策树对构成训练集的给定优化序列进行预测,得到每个决策树所做的预测值;然后,在随机森林训练算法中合并多个决策树,从而在每个决策树所做的所有这些预测值的基础上获得预测值的均值和标准差;
建立预测模型需要明确训练集和模型训练算法。训练集中的训练实例是优化序列,且对应着在该优化序列下给定程序被编译后的执行时间。训练集中的训练实例有两个来源,即包括:(1)随机选取优化序列并评估它们,得到相应的程序执行时间,作为初始训练集;(2)在随后的每一次迭代中,根据获取函数从优化空间中的未知部分选择最佳优化序列,并评估最佳优化序列下的程序执行时间,将其作为实例加入到训练集中。
本步骤在传统的贝叶斯优化中使用随机森林代替高斯过程建立预测模型。用随机森林代替高斯过程的原因是:高斯过程不能扩展到高维数据(也就是数量庞大的优化选项)。本发明方法(BOCA)采用Expected Improvement(EI)作为获取函数,因为它在确定要测量的下一个优化序列时同时考虑了对未知优化空间的探索(通过预测的标准差来衡量)和对已知优化空间的利用(通过预测的平均值来衡量)。在高斯过程中,预测的均值和标准差可以直接输出,而本发明在随机森林中合并多个决策树,从而在每个决策树的预测基础上获得预测值的均值和标准差。在给定优化序列的情况下,随机森林的每个决策树将对其进行预测,然后根据决策树所做的所有这些预测值计算平均值和标准差。
步骤3:通过对重要性进行排序来获得一定数量的重要优化选项,而将剩余的优化选项视为不重要的优化选项;具体操作为:
利用公式(1)(2)(3)基于一个训练好的随机森林模型来计算每个优化选项的重要性,具体包括以下的计算过程:
节点d的Gini重要度的计算如下式所示:
Figure GDA0003849574850000051
其中,I()表示节点的Gini纯度,ωleft、ωright表示从节点d***到左节点的优化序列的比例、从节点d***到右节点的优化序列的比例,nd表示节点d中的优化序列数,N表示整个训练集中的优化序列总数。
计算节点d的Gini纯度,如下式所示:
Figure GDA0003849574850000052
其中,c表示集合中不同标签的总数,而pi表示如果从集合中随机选取优化序列,选取的优化序列的标签为i的可能性。虽然目标是通过随机森林构建一个回归模型,但在训练期间,每个决策树实际上都将整个范围分到几个区间中,新区间将作为新标签,从而能够计算Gini纯度。
在获得每个决策树中每个优化的Gini纯度之后,通过合并所有这些决策树进一步计算优化选项的重要性,如下式所示:
Figure GDA0003849574850000061
其中,u表示在节点上使用优化选项o进行拆分的决策树的总数,t表示决策树的总数,而dj表示在第j决策树中使用o进行拆分的节点;
通过对重要性进行排序来获得一定数量的重要优化选项,而将剩余的优化选项视为不重要的优化选项,具体操作为:按重要性的降序排列优化选项,将排在最前面的K个优化选项标识为重要优化选项。重要优化选项可能对给定程序的执行时间有很大的影响。在这里,列举出这些重要优化选项组成的所有优化选项组合。为避免列举所有组合消耗巨大成本,K应尽量小。
除了设置这些重要优化选项,要获得一个完成的优化序列,其余的优化选项也要设置。本发明的做法是,对于设置重要优化选项所得到的固定组合,随机设置剩余优化选项以形成一个优化序列,原因是剩余优化选项对给定程序的执行时间影响较小。然而,任何机器学习技术,都很难保证精确地预测出每个优化选项的重要性,特别是当训练集不是很大时。因此,重要优化选项之外的优化选项中也可能包含真正重要的优化选项。基于这样的原因,本发明又进一步探索了重要优化选项之外的优化选项的组合。由于不可能探索所有的组合,因此随机选择一定数量的组合进行探索。随机探索的另一个好处是避免局部最优。
第一次迭代中训练集的大小相对较小,更有可能对重要优化选项进行不准确识别,因此衰减在开始时应当很慢,衰减的是对应一个重要优化的组合,为将其扩展成完整的优化序列,需要探索的剩余优化选项组合的数量。随后,训练集变得越来越大,不准确性也随之减小,因此可以使衰减加速。基于这种设想,在每个迭代中,使用高斯衰减函数来确定,为将重要优化选项的固定组合扩展成为一个完整的优化序列,所需要探索的剩余优化选项组合的数量。利用高斯衰减函数计算C(x),如下式所示:
Figure GDA0003849574850000062
其中,C1表示每个重要优化选项组合的不重要优化选项组合的数目,x表示迭代次数,C(x)表示在x迭代中重要优化选项组合的数目,offset、scale和decay表示控制高斯衰减函数的衰减形状的三个参数。
如图2所示,为本发明的基于贝叶斯优化的编译器优化选项推荐方法实施过程示例图。
如图3所示,显示了BOCA的衰减过程以及offset、scale和decay的具体含义。根据计算出的组合的数量,BOCA随机生成每个重要优化选项组合扩展成完整优化选项组合时,所需要补全的不重要的优化选项的组合。基于以上内容得出,在每次迭代中,选候选优化序列的总数为C(x)*2k。通过使用预测模型计算这些候选优化序列的EI值,选择EI值最大的优化序列作为集合中的最优序列,然后测量给定程序在其下编译后的执行时间,并将其添加到训练集以供下一次迭代时更新预测模型。
因此,本发明结合随机森林技术并提出一种新的候选优化序列的选择策略以克服高代价的问题。本发明的选择策略旨在选择未评估优化序列的一个子集,该子集尽可能包含最优序列。本发明通过预测该子集而不是预测所有未评估的优化序列来更高效地找到最优优化序列。
由于剩余的优化空间中存在着极多的未知优化序列,利用预测模型来预测所有剩余优化序列以寻找最优优化序列的代价是非常昂贵的。因此,为了克服该问题,本发明选择了很可能包含最优序列的未知优化序列的子集作为候选优化序列集合。如前文所述,本发明的选择策略旨在选择未评估优化序列的一个子集,该子集尽可能包含最优序列。本发明通过预测该子集而不是预测所有未评估的优化序列来更高效地找到最优优化序列。因此,本发明不保证找到的自子集一定保证包含最优序列。然而,由于待搜索的优化空间非常大,选择这样一个子集的候选优化序列也很困难。为了解决这一问题,本发明设计了一种选择策略:对于给定的程序,只有少量的优化选项才能对给定程序的执行时间产生很大的影响(称为重要优化选项),充分利用这些重要优化选项更有可能找到最优解。然而,一般很难准确地确定众多优化选项中哪些是重要优化选项。在这里,通过平衡对已知优化空间的开发和对未知优化空间的探索,基于本发明设计的选择策略,选择了一个很可能包含最优序列的候选优化序列子集。
依赖于多个决策树和基于树的集成机器学习技术来进行特征选择,而本发明所使用的决策树根据Gini纯度来进行叶节点的***。在决策树中,每个节点都有Gini重要性,它对应着使用一个特征(在编译器调优中,一个特征对应于一个优化选项)进行叶节点的***时节点中Gini纯度的减少量。这里,节点中的Gini纯度对应从节点中的优化序列集合中随机选出的优化序列被打上错误标签的可能性。在编译器优化的问题中,每个特征实际上只有两个可选值,即0和1,因此一个特征在决策树中最多可以用于拆分一个节点。因此,一个节点的Gini纯度等同于此节点上用于拆分的特征的Gini纯度。
步骤4:通过列举所有由重要优化选项组成的组合从而获得重要优化选项组合;以及通过高斯衰减函数辅助确定不重要优化选项组成的非重复组合的具体数量,由此获得候选优化序列集合;
本步骤的目的是充分探索这些重要优化选项。除了设置重要优化选项,要获得一个完整的优化序列,还需设置不重要的优化选项组合。一个完整的优化选项组合由重要优化选项的组合以及不重要优化选项的组合组成。而不重要优化选项的设置通过随机生成优化选项的打开或关闭的状态来完成。对应每个重要优化选项组合生成由不重要优化选项组成的非重复组合,不重要优化选项组成的非重复组合的具体数量通过高斯衰减函数辅助确定。
步骤5:预测优化序列性能,具体为:使用所构建的预测模型预测每个候选优化序列的性能,并获得每个预测的平均值和标准偏差,用于计算每个候选优化序列的EI值;
步骤6:更新训练集,具体为获得在所有候选优化序列中具有最大EI值且不在训练集中的优化序列,然后测量该优化序列所导致的程序执行时间,并将该优化序列及其执行时间添加到训练集中以进行下一次迭代;如果未达到终止条件,则进入下一次迭代,再次从步骤2开始执行;
步骤7,在达到终止条件时输出最终的优化序列。
本发明还研究了BOCA中主要参数的影响,包括K(即已识别的重要优化选项的数量)和scale(用于控制衰减速度)。实验结果如图4和图5所示,图4为K值的影响曲线示意图,图5为scale值的影响曲线示意图。其中x轴表示参数值,y轴表示达到默认参数值下BOCA在60次迭代中达到的加速比所花费的平均时间。从图中可以发现本文的默认值(即8)表现最好。当将设置为16时,BOCA无法在给定的时间段内完成实验,因为枚举16个重要优化选项的所有组合是非常耗时的。这也证明了设定适当的K值的重要性。从图中,可以发现scale的小值(即5和10)比大值(即15和20)表现得更好,这表明相对快速的衰减有助于提高编译器自动调整的效率。而且,本发明当前的scale值(即10)表现最好。综上所述,BOCA中的主要参数确实对BOCA的有效性有一定的影响,并且本发明当前的参数设置是较优的选择,可以作为BOCA后续使用中的默认设置。
本发明考虑了三类比较方法。第一类是现有的编译器优化选项推荐方法,包括RIO、GA和IRace。第二类是现有的贝叶斯优化方法,包括传统的贝叶斯优化方法(ε-PAL)、最新被用于配置软件***的贝叶斯优化方法(FLASH)和先进的通用贝叶斯优化方法(TPE)。本发明在GCC和LLVM上比较各种编译器优化选项推荐方法和BOCA时,比较的是它们在优化级别O3上取得的加速比,并基于此加速比计算BOCA相对其他方法所取得的提升。实验中使用了20个来自Polybench和cBench的程序。
首先将BOCA与其他编译器优化选项推荐方法,即RIO、GA和IRace,进行对比,结果如表1、2所示。本发明还将这些方法中的初始集合大小设置得与BOCA相同以进行公平比较,但GA除外。由于遗传算法中的交叉机制,对于GA,实验不能将初始集大小设置为2,因此本发明将其设置为最接近的偶数值4。在已有的文献中,遗传算法的初始集大小被设置为100,但在本发明的实验中,评测100个优化序列需要的代价非常高,特别是当程序的编译和执行时间较长时。因此,本发明没有采用这种设置。为了研究初始值较大的GA的有效性,本发明还尝试了初始集大小为10的GA。本发明分别将这两个GA实现称为GA4和GA10。本发明首先统计各个对比方法达到BOCA在其第30次、40次、50次、60次迭代所达到的加速比所花费的时间。然后,对于第30次、40次、50次、60次迭代,如表1所示为BOCA相对其他编译器优化选项推荐方法在GCC上的提升(%),如表2所示为BOCA相对其他编译器优化选项推荐方法在LLVM上的提升(%)。表1、2中的每列展示BOCA在达到该迭代次数所对应的加速比时,花费时间相对于对比方法缩短的比例。
表1
Figure GDA0003849574850000091
表2
Figure GDA0003849574850000092
Figure GDA0003849574850000101
从表1、表2中可以看出,BOCA在所有情况下花费时间的提升效果从42.30%到78.04%不等,这证实了BOCA能够显著提高编译器优化选项推荐的效果。
再将本发明方法(BOCA)与其他贝叶斯优化方法,即TPE、ε-PAL和FLASH,进行对比。在上面的两张表中,在所有情况中,BOCA所花费的时间相对于TPE的平均提升比例从43.01%到71.06%不等。由于ε-PAL和FLASH在每次迭代中都需要枚举和预测所有的优化序列,而在本发明的研究中,优化选项的数量很多,因此这两种贝叶斯优化方法不能在可接受的时间内得出结果。因此,本发明无法在全部优化选项上直接比较BOCA与ε-PAL和FLASH,而是尝试通过使用一组数量较少的优化选项来进行对比试验。这里本发明随机选择了20个优化选项分别用于GCC和LLVM编译器的优化选项推荐,并随机选择了4个程序作为代表,来进行实验。
如图6所示,为本发明方法(BOCA)与ε-PAL和FLASH的对比实验结果示意图。其中x轴表示BOCA对应迭代次数下的取样加速比,y轴表示达到对应加速比所花费的时间。可以发现,尽管本发明使用了一组数量较少的优化选项,BOCA仍然比ε-PAL和FLASH花费更少的时间来达到给定加速比。这里的实验结果证实BOCA确实比现有的贝叶斯优化方法性能更好,能够更加有效地实现编译器优化选项推荐。

Claims (2)

1.一种基于贝叶斯优化的编译器优化选项推荐方法,其特征在于,该方法包括以下步骤:
步骤1:随机生成优化序列并测量程序在采用该优化序列编译后的执行时间来构造初始训练集,在生成初始的训练集后,依照贝叶斯优化的框架实现基于此初始训练集的迭代;每一次迭代应基于现有的训练集,在每一次迭代中,执行步骤2至步骤6;
步骤2:通过随机森林的训练算法建立一个预测模型;该预测模型所完成的处理包括:利用随机森林训练算法每个决策树对构成训练集的给定优化序列进行预测,得到每个决策树所做的预测值;然后,在随机森林训练算法中合并多个决策树,从而在每个决策树所做的所有这些预测值的基础上获得预测值的均值和标准差;
步骤3:通过对重要性进行排序来获得重要优化选项,而将剩余的优化选项随机设置为不重要优化选项;具体操作为:
基于一个训练好的随机森林模型来计算每个优化选项的重要性,如下式所示:
Figure FDA0003849574840000011
其中,u表示在节点上使用优化选项o进行拆分的决策树的总数,t表示决策树的总数,而dj表示在第j决策树中使用o进行拆分的节点,G(dj)表示第j决策树中节点d的Gini重要度;
步骤4:通过列举所有由重要优化选项组成的组合从而获得重要优化选项组合;以及通过高斯衰减函数辅助确定对应一个固定的重要优化选项组合的由不重要优化选项组成的非重复组合的具体数量,由此获得候选优化序列集合;
利用高斯衰减函数计算C(x),如下式所示:
Figure FDA0003849574840000012
其中,C1表示对应重要优化选项组合的不重要优化选项组合的数目,x表示迭代次数,C(x)表示在x次迭代时不重要优化选项组合的数目,offset、scale和decay表示控制高斯衰减函数的衰减形状的三个参数;
步骤5:使用所构建的预测模型预测每个候选优化序列的性能,并获得每个预测的平均值和标准偏差,用于计算每个候选优化序列的EI值;
步骤6:更新训练集,具体操作包括:获得在所有候选优化序列中具有最大EI值且不在训练集中的优化序列,然后测量该优化序列所导致的程序执行时间,并将该优化序列及其执行时间添加到训练集中以进行下一次迭代;如果未达到终止条件,则进入下一次迭代,再次从步骤2开始执行;
步骤7:在达到终止条件时输出最终的优化序列。
2.如权利要求1所述的基于贝叶斯优化的编译器优化选项推荐方法,其特征在于,所述训练集中的训练实例有两个来源,即(1)随机选取优化序列并评估它们,得到相应的程序执行时间,作为初始训练集;(2)在随后的每一次迭代中,根据获取函数从优化空间中的未知部分选择最佳优化序列,并评估最佳优化序列下的程序执行时间,将其作为实例加入到所述训练集中。
CN202110260487.7A 2021-03-10 2021-03-10 基于贝叶斯优化的编译器优化选项推荐方法 Active CN113407185B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110260487.7A CN113407185B (zh) 2021-03-10 2021-03-10 基于贝叶斯优化的编译器优化选项推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110260487.7A CN113407185B (zh) 2021-03-10 2021-03-10 基于贝叶斯优化的编译器优化选项推荐方法

Publications (2)

Publication Number Publication Date
CN113407185A CN113407185A (zh) 2021-09-17
CN113407185B true CN113407185B (zh) 2023-01-06

Family

ID=77691422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110260487.7A Active CN113407185B (zh) 2021-03-10 2021-03-10 基于贝叶斯优化的编译器优化选项推荐方法

Country Status (1)

Country Link
CN (1) CN113407185B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115469851A (zh) * 2022-10-20 2022-12-13 晞德软件(北京)有限公司 一种编译器自动调参方法
CN116521176B (zh) * 2023-05-06 2023-12-29 东莞理工学院 一种编译优化选项优化方法、装置、智能终端及存储介质
CN116860259B (zh) * 2023-09-05 2023-12-19 之江实验室 一种模型训练和编译器自动调优的方法、装置及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704993A (zh) * 2017-09-01 2018-02-16 北京猿圈科技有限责任公司 一种基于用户行为的编程能力评估方法
RO132451A0 (ro) * 2017-08-16 2018-03-30 Academia De Studii Economice Din Bucureşti Metodă şi sistem informatic inteligent pentru predicţia, analiza şi monitorizarea producţiei şi consumului energiei electrice provenite de la fermele eoliene
CN108876038A (zh) * 2018-06-19 2018-11-23 中国原子能科学研究院 大数据、人工智能、超算协同的材料性能预测方法
CN109344195A (zh) * 2018-10-25 2019-02-15 电子科技大学 基于hmm模型的管道安全事件识别及知识挖掘方法
CN109933834A (zh) * 2018-12-26 2019-06-25 阿里巴巴集团控股有限公司 一种时序数据预测的模型创建方法及装置
CN110750948A (zh) * 2018-07-06 2020-02-04 复旦大学 一种基于多目标获取函数集成并行贝叶斯优化的模拟电路优化算法
AU2020102515A4 (en) * 2020-09-30 2020-11-19 Cao, Zhi Mr A method of financial default prediction based on Python data analysis
CN112035116A (zh) * 2020-08-26 2020-12-04 大连理工大学 多目标编译优化序列选择的代理建模方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106204567B (zh) * 2016-07-05 2019-01-29 华南理工大学 一种自然背景视频抠图方法
CN106991323A (zh) * 2017-03-10 2017-07-28 中时瑞安(北京)网络科技有限责任公司 一种检测Android应用程序广告插件的模型和方法
CN107577942B (zh) * 2017-08-22 2020-09-15 中国民航大学 一种用于Android恶意软件检测的混合特征筛选方法
US20190318248A1 (en) * 2018-04-13 2019-10-17 NEC Laboratories Europe GmbH Automated feature generation, selection and hyperparameter tuning from structured data for supervised learning problems
WO2019203946A1 (en) * 2018-04-17 2019-10-24 Hrl Laboratories, Llc Programming model for a bayesian neuromorphic compiler
US10498888B1 (en) * 2018-05-30 2019-12-03 Upcall Inc. Automatic call classification using machine learning
CN110321116B (zh) * 2019-06-17 2021-04-20 大连理工大学 一种面向编译优化中计算代价约束问题的高效优化方法
CN110751658A (zh) * 2019-09-27 2020-02-04 山东工商学院 一种基于互信息和点扩散函数的抠图方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RO132451A0 (ro) * 2017-08-16 2018-03-30 Academia De Studii Economice Din Bucureşti Metodă şi sistem informatic inteligent pentru predicţia, analiza şi monitorizarea producţiei şi consumului energiei electrice provenite de la fermele eoliene
CN107704993A (zh) * 2017-09-01 2018-02-16 北京猿圈科技有限责任公司 一种基于用户行为的编程能力评估方法
CN108876038A (zh) * 2018-06-19 2018-11-23 中国原子能科学研究院 大数据、人工智能、超算协同的材料性能预测方法
CN110750948A (zh) * 2018-07-06 2020-02-04 复旦大学 一种基于多目标获取函数集成并行贝叶斯优化的模拟电路优化算法
CN109344195A (zh) * 2018-10-25 2019-02-15 电子科技大学 基于hmm模型的管道安全事件识别及知识挖掘方法
CN109933834A (zh) * 2018-12-26 2019-06-25 阿里巴巴集团控股有限公司 一种时序数据预测的模型创建方法及装置
CN112035116A (zh) * 2020-08-26 2020-12-04 大连理工大学 多目标编译优化序列选择的代理建模方法
AU2020102515A4 (en) * 2020-09-30 2020-11-19 Cao, Zhi Mr A method of financial default prediction based on Python data analysis

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
丁攀."基于贝叶斯网络分类算法的有害信息识别研究".《中国优秀博硕士学位论文全文数据库 信息科技辑》.2020,全文. *
袁彬."基于朴素贝叶斯分类器的嵌入式软件编译测试***的研究和实现".《中国优秀博硕士学位论文全文数据库 信息科技辑》.2021,全文. *

Also Published As

Publication number Publication date
CN113407185A (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
CN113407185B (zh) 基于贝叶斯优化的编译器优化选项推荐方法
He et al. A discrete multi-objective fireworks algorithm for flowshop scheduling with sequence-dependent setup times
CN108509335B (zh) 基于遗传算法优化的软件测试数据生成方法
US8700548B2 (en) Optimization technique using evolutionary algorithms
Pal et al. DECOR: differential evolution using clustering based objective reduction for many-objective optimization
CN105279397B (zh) 一种识别蛋白质相互作用网络中关键蛋白质的方法
CN112540849B (zh) 一种分布式计算作业的参数配置优化方法及***
Bicego et al. Biclustering of expression microarray data with topic models
CN110909787A (zh) 基于聚类的进化算法进行多目标批调度优化的方法和***
CN115469851A (zh) 一种编译器自动调参方法
CN114911844B (zh) 基于机器学习的近似查询优化***
CN116861957A (zh) 一种基于强化学习的算子自动调优方法及相关装置
CN109390032B (zh) 一种基于进化算法在全基因组关联分析的数据中探索与疾病相关的snp组合的方法
CN114627980A (zh) 一种化学逆合成分析方法及***
CN112819062B (zh) 基于混合粒子群和连续投影的荧光光谱二次特征选择方法
CN112990461B (zh) 构建神经网络模型的方法、装置、计算机设备和存储介质
CN116010291A (zh) 基于均衡优化理论与灰色预测模型的多路径覆盖测试方法
CN110069347A (zh) 一种基于过程重要度的线程划分方法
CN113554144A (zh) 用于多目标进化特征选择算法的自适应种群初始化方法和存储设备
CN115344046A (zh) 一种基于改进深度q网络算法的移动机器人路径规划
CN115035304A (zh) 一种基于课程学习的图像描述生成方法及***
CN114282497A (zh) 文本转sql方法及***
CN110782950A (zh) 基于偏好网格和莱维飞行的多目标粒子群算法的肿瘤关键基因识别方法
CN112926611A (zh) 特征提取方法、装置及计算机可读存储介质
CN117041073B (zh) 网络行为预测方法、***、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant