摘 要: | 针对常用多面体编译器Pluto默认循环调度和分块大小性能欠佳的问题,提出了一种为其调度计算多种合法置换,根据置换和分块大小构成的配置空间为循环程序自动调优的方法。通过对定义循环融合的标量维度的处理,实现了非完美嵌套循环块间和块内的同时置换。构建了4种机器学习驱动的自动调优策略,为循环程序在指定问题规模下寻找优化的置换序和分块大小组合。默认分块大小下,扩展后的Pluto编译器并行环境下生成的最佳置换相较于Pluto的默认调度取得了最高4.02和几何平均2.12的加速比。通过进一步搜索更优的置换序和分块大小组合,最好的自动调优策略在并行环境下相较于Pluto的默认优化取得了最高5.48和几何平均2.86的加速比。此外,指定问题规模下,自动调优得到的最佳配置和学习模型应用于相似问题规模时,相较于Pluto的默认优化也取得了不同程度的性能提升。
|