arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2010.08040cs.PFcs.LGcs.PL
收藏

使用贝叶斯优化通过LLVM Clang/Polly循环优化规则自动调整PolyBench基准

Autotuning PolyBench Benchmarks with LLVM Clang/Polly Loop Optimization Pragmas Using Bayesian Optimization

Argonne National Laboratory(阿贡国家实验室);University of Utah(犹他大学)

Xingfu Wu, Michael Kruse, Prasanna Balaprakash, Hal Finkel, Paul Hovland, Valerie Taylor, Mary Hall

摘要:

自动调整是一种方法,其通过选择和评估目标平台上的实现/配置的子集和/或使用模型来识别高性能实现/配置,来探索内核或应用的可能实现/配置的搜索空间。在本文中,我们开发了一个自动调整框架,利用贝叶斯优化来探索参数空间搜索。我们从PolyBench基准测试的应用领域中选择了六个最复杂的基准测试(syr 2k、3 mm、heat-3d、lu、covariance和Floyd-Warshall),并将新开发的LLVM Clang/Polly循环优化杂注应用于基准测试以优化它们。然后,我们使用自动调优框架来优化杂注参数,以提高其性能。实验结果表明,我们的自动调优方法优于其他编译方法,在200个代码评估中为基准测试提供了最短的执行时间,其中包括两个大型数据集,3 mm,heat-3d,lu和协方差,用于有效搜索多达170,368种不同配置的参数空间。我们比较了贝叶斯优化中四种不同的监督学习方法,并评估了它们的有效性。我们发现,Floor-Warshall基准测试并没有从自动调优中受益,因为Polly使用了自动调优来优化基准测试,使其运行得更慢。为了解决这个问题,我们提供了一些编译器选项的解决方案,以提高性能。

英文摘要:

An autotuning is an approach that explores a search space of possible implementations/configurations of a kernel or an application by selecting and evaluating a subset of implementations/configurations on a target platform and/or use models to identify a high performance implementation/configuration. In this paper, we develop an autotuning framework that leverages Bayesian optimization to explore the parameter space search. We select six of the most complex benchmarks from the application domains of the PolyBench benchmarks (syr2k, 3mm, heat-3d, lu, covariance, and Floyd-Warshall) and apply the newly developed LLVM Clang/Polly loop optimization pragmas to the benchmarks to optimize them. We then use the autotuning framework to optimize the pragma parameters to improve their performance. The experimental results show that our autotuning approach outperforms the other compiling methods to provide the smallest execution time for the benchmarks syr2k, 3mm, heat-3d, lu, and covariance with two large datasets in 200 code evaluations for effectively searching the parameter spaces with up to 170,368 different configurations. We compare four different supervised learning methods within Bayesian optimization and evaluate their effectiveness. We find that the Floyd-Warshall benchmark did not benefit from autotuning because Polly uses heuristics to optimize the benchmark to make it run much slower. To cope with this issue, we provide some compiler option solutions to improve the performance.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑