BenchDirect:一种面向编译器基准测试的有向语言模型
摘要
硬件—软件复杂性的指数级增长使得编译器工程师不可能手动找到正确的优化启发式方法。预测模型已被证明能以极少的人力找到接近最优的启发式方法,但它们受限于严重缺乏多样化的基准来进行训练。研究人员已使用生成式人工智能将基准合成到现有数据集中。然而,这些合成程序很短、极其简单且其特征缺乏多样性。我们开发了 BenchPress,这是首个可在源代码特征表示中被引导的机器学习编译器基准生成器。BenchPress 通过基于程序左右上下文条件填充代码来合成可执行函数。BenchPress 使用主动学习将具有未见特征的新基准引入 Grewe 等人的 CPU 与 GPU 启发式数据集,使其所获性能提升 50%。BenchPress 瞄准其他合成器无法达到的特征。在 3 个特征空间中,我们在瞄准 Rodinia 基准特征方面优于来自 GitHub 的人工编写代码、CLgen、CLSmith 以及 SRCIROR 变异器。BenchPress 通过对特征无关的语言模型进行束搜索来引导生成。我们对此进行了改进,提出 BenchDirect,它利用有向语言模型(directed LM),通过联合观察源代码上下文与目标编译器特征来填充程序。BenchDirect 在瞄准 Rodinia 基准特征方面实现了高达 36% 的更好准确率,其给出精确匹配的可能性高出 1.8 倍,并且与 BenchPress 相比将执行时间加快至多 72%。我们的两种模型生成的代码都难以与人工编写的代码区分。我们进行了图灵测试,结果表明我们的模型合成基准被标记为“人工编写”的频率与来自 GitHub 的人工编写代码一样高。
引用
@article{arxiv.2303.01557,
title = {BenchDirect: A Directed Language Model for Compiler Benchmarks},
author = {Foivos Tsimpourlas and Pavlos Petoumenos and Min Xu and Chris Cummins and Kim Hazelwood and Ajitha Rajan and Hugh Leather},
journal= {arXiv preprint arXiv:2303.01557},
year = {2023}
}
备注
arXiv admin note: substantial text overlap with arXiv:2208.06555