使用贝叶斯优化通过 LLVM Clang/Polly 循环优化编译指示自动调优 PolyBench 基准测试(扩展版)
机器学习
2021-04-28 v1 性能
摘要
在本文中,我们开发了 ytopt 自动调优框架,利用贝叶斯优化探索参数空间搜索,并比较贝叶斯优化中四种不同的监督学习方法并评估其有效性。我们选取六个最复杂的 PolyBench 基准测试,将新开发的 LLVM Clang/Polly 循环优化编译指示应用于这些基准测试以优化它们。随后使用自动调优框架优化编译指示参数以提升其性能。实验结果表明,我们的自动调优方法优于其他编译方法,在 200 次代码评估中为 syr2k、3mm、heat-3d、lu 和 covariance 基准测试提供了最小执行时间,两个大型数据集有效搜索了多达 170,368 种不同配置的参空间。我们发现 Floyd-Warshall 基准测试未从自动调优中获益,因为 Polly 使用启发式方法优化该基准测试使其运行慢得多。为应对此问题,我们提供一些编译器选项解决方案以提升性能。随后我们提出使用简单 mctree 自动调优框架在无需用户知识的情况下进行循环自动调优,以进一步提升 Floyd-Warshall 基准测试的性能。我们还将 ytopt 自动调优框架扩展至调优一个深度学习应用。
引用
@article{arxiv.2104.13242,
title = {Autotuning PolyBench Benchmarks with LLVM Clang/Polly Loop Optimization Pragmas Using Bayesian Optimization (extended version)},
author = {Xingfu Wu and Michael Kruse and Prasanna Balaprakash and Hal Finkel and Paul Hovland and Valerie Taylor and Mary Hall},
journal= {arXiv preprint arXiv:2104.13242},
year = {2021}
}
备注
Submitted to CCPE journal. arXiv admin note: substantial text overlap with arXiv:2010.08040