一种基于机器学习的编译优化方法、系统及装置
- 国知局
- 2024-08-05 12:07:17
本发明涉及编译处理领域,尤其涉及一种基于机器学习的编译优化方法、系统及装置。
背景技术:
1、随着计算机技术的发展,人们的工作和生活都发生了非常大的变化。与此同时,对于计算机性能的要求也越来越高,编译器是一个用于将编程语言翻译成机器语言的工具,一个优秀的编译器能够生成高效的可执行程序,充分地发挥计算机性能,满足人们对性能的要求。为了提高可执行文件的性能,编译器采取了多种编译技术对程序进行优化。在其中,对于循环的优化是一种重要的编译优化技术,能够较大地提高程序的性能,循环展开是优化循环的主要方法之一。通过循环展开技术,能够按照给定的循环展开因子,将代码中的循环复制展开,能够有效地减少循环控制语句的开销,减少了分支预测的失败,有利于指令流水线的调度,不同的循环展开因子会较大地影响循环展开的效果,因此需要设计相对应的策略来预测合适的循环展开因子。
2、循环展开因子是一个重要的编译参数,现有的编译器中,大多使用启发式方法来确定循环展开因子,启发式方法即通过设置一系列规则,根据代码特征来确定循环展开因子。启发式方法需要人为地设计规则来计算循环展开因子,实现复杂且难度大,因为很难知道合适的循环展开因子与哪些属性相关,所以很难挑选一个合适的规则,且通常情况下,启发式方法的效果较差,距离最优情况还有较大差距,基于此循环展开因子所编译得到的代码的表现也是较差。
技术实现思路
1、有鉴于此,为了解决现有编译优化方法中根据属性关联来确定循环展开因子,进而导致其编译得到的代码表现较差的技术问题,本发明提出一种基于机器学习的编译优化方法,所述方法包括以下步骤:
2、离线阶段,获取训练集中的特征和循环展开因子作为标签;基于所述标签训练机器学习模型,得到训练完成的预测模型;
3、在线阶段,获取源程序并收集特征;将所述源程序的特征输入至训练完成的预测模型,生成预测循环展开因子;将所述预测循环展开因子写入循环的元数据中,得到带元数据的ir;对所述带元数据的ir进行编译,得到可执行程序。
4、在一些实施例中,所述特征包括选择指令数量、phi指令数量、调用指令数量、加载指令数量、存储指令数量、分支指令数量、指令的使用数、操作数数量、前缀基本块数量、后继基本块数量、不可达基本块数量、以返回指令结尾的基本块数量、以分支指令结尾的基本块数量、以条件分支指令结尾的基本块数量、循环深度、循环基本块数量和估计循环执行次数。
5、在一些实施例中,所述机器学习模型为xgboost决策森林。
6、在一些实施例中,所述获取训练集中的特征和循环展开因子作为标签这一步骤,其具体包括:
7、将收集函数封装为优化遍并部署在llvm框架;
8、基于llvm框架编译训练集,在编译程序过程中,收集特征和循环展开因子。
9、在一些实施例中,在训练过程中,还包括:
10、通过pgo技术收集循环的运行次数作为模型训练的特征。
11、在一些实施例中,还包括:
12、将训练完成的预测模型部署在llvm框架中。
13、本发明还提出了一种基于机器学习的编译优化系统,所述系统包括:
14、训练模块,用于离线阶段,获取训练集中的特征和循环展开因子作为标签;基于所述标签训练机器学习模型,得到训练完成的预测模型;
15、测试模块,用于在线阶段,获取源程序并收集特征;将所述源程序的特征输入至训练完成的预测模型,生成预测循环展开因子;将所述预测循环展开因子写入循环的元数据中,得到带元数据的ir;对所述带元数据的ir进行编译,得到可执行程序。
16、本发明还提出了一种基于机器学习的编译优化装置,包括:
17、至少一个处理器;
18、至少一个存储器,用于存储至少一个程序;
19、当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种基于机器学习的编译优化方法。
20、基于上述方案,本发明提供了一种基于机器学习的编译优化方法、系统及装置,相比于启发式方法,本发明不需要人为设定规则,而是通过机器学习模型去发现规则,且其可以学习到一些不易被察觉的规则,因此适用范围更广,可拓展性更强。通过使用更合适的循环展开因子来训练机器学习模型,则可以达到比启发式方法更好的效果,基于该优化得到的可执行程序在运行速度上具有更好的表现。
技术特征:1.一种基于机器学习的编译优化方法,其特征在于,包括:
2.根据权利要求1所述一种基于机器学习的编译优化方法,其特征在于,所述特征包括选择指令数量、phi指令数量、调用指令数量、加载指令数量、存储指令数量、分支指令数量、指令的使用数、操作数数量、前缀基本块数量、后继基本块数量、不可达基本块数量、以返回指令结尾的基本块数量、以分支指令结尾的基本块数量、以条件分支指令结尾的基本块数量、循环深度、循环基本块数量和估计循环执行次数。
3.根据权利要求1所述一种基于机器学习的编译优化方法,其特征在于,所述机器学习模型为xgboost决策森林。
4.根据权利要求1所述一种基于机器学习的编译优化方法,其特征在于,所述获取训练集中的特征和循环展开因子作为标签这一步骤,其具体包括:
5.根据权利要求1所述一种基于机器学习的编译优化方法,其特征在于,在训练过程中,还包括:
6.根据权利要求1所述一种基于机器学习的编译优化方法,其特征在于,还包括:
7.一种基于机器学习的编译优化系统,其特征在于,包括:
8.一种基于机器学习的编译优化装置,其特征在于,包括:
技术总结本发明公开了一种基于机器学习的编译优化方法、系统及装置,该方法包括:离线阶段,获取训练集中的特征和循环展开因子作为标签;基于所述标签训练机器学习模型,得到训练完成的预测模型;在线阶段,获取源程序并收集特征;将所述源程序的特征输入至训练完成的预测模型,生成预测循环展开因子;将所述预测循环展开因子写入循环的元数据中,得到带元数据的IR;编译得到可执行程序。该系统包括:训练模块和测试模块。该装置包括存储器以及用于执行上述基于机器学习的编译优化方法的处理器。本发明通过机器学习模型去发现规则,构建更合适的循环展开因子,以此使得优化后的可执行程序更加高效。本发明可广泛应用于编译处理领域。技术研发人员:张献伟,郑中淳,张天祎,陈冠一,孙高锦受保护的技术使用者:中山大学技术研发日:技术公布日:2024/8/1本文地址:https://www.jishuxx.com/zhuanli/20240802/261165.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。