基于人工智能的编译器自动调优方法及装置与流程

文档序号:35829853发布日期:2023-10-25 02:56阅读:26来源:国知局
基于人工智能的编译器自动调优方法及装置与流程

本说明书涉及计算机和人工智能领域,尤其涉及一种基于人工智能的编译器自动调优方法及装置。


背景技术:

1、编译器是一种把高级程序设计语言编写的源程序翻译成等价的机器语言格式的翻译程序。在编译过程中,编译器会对程序进行优化,在保证语义等价性的前提下,使程序执行更快且使用更少的资源。

2、目前,编译器可以提供通用的优化选项组合,选中一个优化选项组合后,编译器执行程序的过程中即可以开启该优化选项组合中的各优化选项,以实现对程序执行的优化。

3、然而,默认提供的优化选项组合往往并不是最优的优化方案,从而使得无法保证编译器通过最优的优化方案来执行程序,进而造成运行效率低和资源浪费。


技术实现思路

1、本说明书实施例提供一种基于人工智能的编译器自动调优方法及装置,以部分解决上述现有技术存在的问题。

2、本说明书实施例采用下述技术方案:

3、本说明书提供的一种基于人工智能的编译器自动调优方法,包括:

4、获取样本程序;

5、将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况;

6、针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间;

7、针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练;

8、获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列;

9、按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。

10、可选地,所述智能体模型包括编码层和解码层;

11、将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,具体包括:

12、针对得到的每个优化序列,将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型通过所述编码层,对所述样本程序对应的程序信息以及预测出的前n-1个优化选项的开关信息进行编码,以得到特征信息,将所述特征信息输入所述解码层中,以通过所述解码层,预测第n个优化选项的开关概率,并根据所述第n个优化选项的开关概率,得到所述第n个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,得到该优化序列,以及根据每个优化选项的开关概率,确定该优化序列的概率,针对每个优化选项,该优化选项的开关概率用于表示该优化选项是否开启的概率,该优化选项的开关信息用于表示该优化选项是否开启,n为不小于1的正整数。

13、可选地,针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练,具体包括:

14、在完成针对所述智能体模型的当前轮次训练后,判断是否到达预设的迭代轮次;

15、若否,则将样本程序输入所述智能体模型中,以使所述智能体模型对所述样本程序特征提取,并基于提取出的特征信息,重新得到各优化序列,以及根据重新得到的各优化序列对应的实际运行时间,对所述智能体模型进行训练,直至达到预设的迭代轮次为止。可选地,将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列,具体包括:

16、在模型训练阶段所使用的训练集中确定出与所述待运行程序属于同一程序类别的样本程序,作为参考程序,并确定所述参考程序在所述训练集中的占比;

17、若确定所述占比低于预设占比,则将所述待运行程序作为样本程序,对所述智能体模型进行训练,并根据经过所述待运行程序训练后的智能体模型,确定所述待运行程序对应的优化序列。

18、本说明书提供的一种基于人工智能的编译器自动调优装置,包括:

19、获取模块,用于获取样本程序;

20、特征提取模块,用于将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况;

21、运行模块,用于针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间;

22、训练模块,用于针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练;

23、应用模块,用于获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列;按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。

24、可选地,所述智能体模型包括编码层和解码层;

25、所述特征提取模块具体用于,针对得到的每个优化序列,将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型通过所述编码层,对所述样本程序对应的程序信息以及预测出的前n-1个优化选项的开关信息进行编码,以得到特征信息,将所述特征信息输入所述解码层中,以通过所述解码层,预测第n个优化选项的开关概率,并根据所述第n个优化选项的开关概率,得到所述第n个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,得到该优化序列,以及根据每个优化选项的开关概率,确定该优化序列的概率,针对每个优化选项,该优化选项的开关概率用于表示该优化选项是否开启的概率,该优化选项的开关信息用于表示该优化选项是否开启,n为不小于1的正整数。

26、可选地,所述训练模块具体用于,针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练,在完成针对所述智能体模型的当前轮次训练后,判断是否到达预设的迭代轮次;

27、若否,则将样本程序输入所述智能体模型中,以使所述智能体模型对所述样本程序特征提取,并基于提取出的特征信息,重新得到各优化序列,以及根据重新得到的各优化序列对应的实际运行时间,对所述智能体模型进行训练,直至达到预设的迭代轮次为止。

28、可选地,所述应用模块具体用于,在模型训练阶段所使用的训练集中确定出与所述待运行程序属于同一程序类别的样本程序,作为参考程序,并确定所述参考程序在所述训练集中的占比;若确定所述占比低于预设占比,则将所述待运行程序作为样本程序,对所述智能体模型进行训练,并根据经过所述待运行程序训练后的智能体模型,确定所述待运行程序对应的优化序列。

29、本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于人工智能的编译器自动调优方法。

30、本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的基于人工智能的编译器自动调优方法。

31、本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

32、本说明书实施例中先将样本程序输入到待训练的智能体模型中,并基于样本程序的特征信息得到各优化序列,针对每个优化序列,编译器对样本程序进行编译运行得到实际运行时间,针对任意两个优化序列,以智能体模型输出对应实际运行时间短的优化序列的概率相比于智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对智能体模型进行训练,得到训练后的智能体模型。在使用智能体模型时,将待运行程序输入到训练后的智能体模型中,以通过训练后的智能体模型输出待运行程序的最优优化序列,编译器通过最优优化序列执行待运行程序。

33、在此方法中,将程序输入到智能体模型中得到各优化序列,编译器根据各优化序列对程序进行编译运行,通过实际运行得到运行时间,来调整智能体模型输出各优化序列所对应的概率,使得智能体模型在训练的过程中能够学习到各种优化序列针对程序的潜在优化能力,从而保证训练后的智能体模型能够根据程序的特征信息得到最优优化序列,而编译器根据最优优化序列执行程序,将最大程度提高程序的运行效率,并显著的减少运行程序时的资源消耗。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1