虽然多面体编译器在实现高级代码转换方面取得了成功,但它们仍然面临着选择最有利的转换以实现最佳加速的挑战。这促使使用机器学习构建成本模型来指导多面体优化的搜索。最先进的多面体编译器已经展示了这种方法的可行性。虽然这种方法已经显示出了前景,但它仍然存在重大限制。使用深度学习成本模型的最先进的多面体编译器仅支持少量的仿射变换,限制了它们应用复杂代码转换的能力。它们还仅支持具有单个循环嵌套和矩形迭代域的简单程序,限制了它们适用于许多程序。这些限制显着影响了这些编译器和自动调度程序的普适性,并对整个方法提出了质疑。在本文中,我们介绍了LOOPer,这是第一个使用基于深度学习的成本模型并覆盖大量仿射变换和程序的多面体自动调度程序。它支持探索大量的仿射变换,允许应用复杂的多面体转换序列。它还支持优化具有多个循环嵌套和矩形和非矩形迭代域的程序,从而可以优化广泛的程序集。我们实现和评估了LOOPer,并展示了它在超越最先进技术方面的加速效果。在Polybench基准测试中,LOOPer相对于Tiramisu实现了1.59倍的几何平均加速比。LOOPer还实现了与Pluto竞争性的加速,其几何平均加速比为1.34倍,Pluto是一种不使用基于机器学习的成本模型的最先进的多面体编译器。
提问交流