LOOPer: A Learned Automatic Code Optimizer For Polyhedral Compilers

2024年03月18日
  • 简介
    虽然多面体编译器在实现高级代码转换方面取得了成功,但它们仍然面临着选择最有利的转换以实现最佳加速的挑战。这促使使用机器学习构建成本模型来指导多面体优化的搜索。最先进的多面体编译器已经展示了这种方法的可行性。虽然这种方法已经显示出了前景,但它仍然存在重大限制。使用深度学习成本模型的最先进的多面体编译器仅支持少量的仿射变换,限制了它们应用复杂代码转换的能力。它们还仅支持具有单个循环嵌套和矩形迭代域的简单程序,限制了它们适用于许多程序。这些限制显着影响了这些编译器和自动调度程序的普适性,并对整个方法提出了质疑。在本文中,我们介绍了LOOPer,这是第一个使用基于深度学习的成本模型并覆盖大量仿射变换和程序的多面体自动调度程序。它支持探索大量的仿射变换,允许应用复杂的多面体转换序列。它还支持优化具有多个循环嵌套和矩形和非矩形迭代域的程序,从而可以优化广泛的程序集。我们实现和评估了LOOPer,并展示了它在超越最先进技术方面的加速效果。在Polybench基准测试中,LOOPer相对于Tiramisu实现了1.59倍的几何平均加速比。LOOPer还实现了与Pluto竞争性的加速,其几何平均加速比为1.34倍,Pluto是一种不使用基于机器学习的成本模型的最先进的多面体编译器。
  • 图表
  • 解决问题
    解决问题:如何使用机器学习来构建成本模型,以指导多面体编译器的搜索和优化过程,以实现更高效的代码转换?
  • 关键思路
    关键思路:使用深度学习成本模型的多面体自动调度器,实现了对大量仿射变换和程序的探索和优化,支持多个循环嵌套和矩形或非矩形迭代域,可以应用于更广泛的程序。
  • 其它亮点
    亮点:LOOPer是第一个使用深度学习成本模型的多面体自动调度器,具有广泛的应用性能力,对Polybench基准测试显示出比Tiramisu和Pluto更高的速度提升,具有很高的实用价值。
  • 相关研究
    相关研究:最近的相关研究包括使用机器学习来指导多面体编译器的搜索和优化过程,但仍存在应用范围受限的问题。其中一些相关的论文包括:“DeepTune: A Learning-based Approach to Compiler Optimization”和“Machine Learning for Compiler Optimization”。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问