论文部分内容阅读
过去几十年编译器的优化主要使用的是人工调优的方法。随着计算机体系结构的不断发展,编译器的优化变得更加复杂。编译器人工调优的方法将会耗费编译器开发者大量的时间,而且调优的结果难以适应计算机体系结构的不断变化。本文以Open64编译器为平台,研究基于机器学习的编译器自动调优技术。本文改进了现有的ICI和FCO自动迭代工具,用以收集机器学习的训练数据。并使用基于实例的学习方法和决策树方法自动调优软件流水、循环展开、区域构造这几个Open64编译器的优化阶段,以及使用遗传编程方法自动调优条件转换。最后对基于实例的学习方法、决策树方法和遗传编程方法这三种机器学习方法进行了比较。实验数据表明,基于机器学习的编译自动调优技术对已知实例能得到比手工调优更好的性能,而对未知实例的预测能力也能达到跟手工调优接近的水平。