论文标题
用于自动调整编译器优化的协作过滤方法
A Collaborative Filtering Approach for the Automatic Tuning of Compiler Optimisations
论文作者
论文摘要
选择正确的编译器优化对程序的性能有严重影响。尽管如此,可用的优化仍在增加,它们的效果取决于特定程序,这使得人类棘手的任务。研究人员提出了几种在编译器优化空间中进行搜索的技术。一些方法着眼于寻找更好的搜索算法,而另一些方法则试图通过利用先前收集的知识来加快搜索的速度。有效重复使用先前的汇编结果的可能性激发了我们对推荐系统领域得出的技术的研究。所提出的方法利用了先前收集的知识并随着时间的推移提高了其表征。与当前的最新解决方案不同,我们的方法不是基于性能计数器,而是依赖于反应匹配,该算法能够表征程序,以了解其对不同优化集的反应。提出的方法已使用两种广泛使用的基准套件(包括54个不同的程序)进行了验证。我们的解决方案平均在当前最新解决方案之前提取了可用绩效改进的90%的10次迭代,该迭代对应于较少的汇编和执行性能测试的40%。
Selecting the right compiler optimisations has a severe impact on programs' performance. Still, the available optimisations keep increasing, and their effect depends on the specific program, making the task human intractable. Researchers proposed several techniques to search in the space of compiler optimisations. Some approaches focus on finding better search algorithms, while others try to speed up the search by leveraging previously collected knowledge. The possibility to effectively reuse previous compilation results inspired us toward the investigation of techniques derived from the Recommender Systems field. The proposed approach exploits previously collected knowledge and improves its characterisation over time. Differently from current state-of-the-art solutions, our approach is not based on performance counters but relies on Reaction Matching, an algorithm able to characterise programs looking at how they react to different optimisation sets. The proposed approach has been validated using two widely used benchmark suites, cBench and PolyBench, including 54 different programs. Our solution, on average, extracted 90% of the available performance improvement 10 iterations before current state-of-the-art solutions, which corresponds to 40% fewer compilations and performance tests to perform.