Program optimization is the process of modifying software to execute more efficiently. Because finding the optimal program is generally undecidable, modern compilers usually resort to expert-written heuristic optimizations. In contrast, superoptimizers attempt to find the optimal program by employing significantly more expensive search and constraint solving techniques. Generally, these methods do not scale well to programs in real development scenarios, and as a result superoptimization has largely been confined to small-scale, domain-specific, and/or synthetic program benchmarks. In this paper, we propose a framework to learn to superoptimize real-world programs by using neural sequence-to-sequence models. We introduce the Big Assembly benchmark, a dataset consisting of over 25K real-world functions mined from open-source projects in x86-64 assembly, which enables experimentation on large-scale optimization of real-world programs. We propose an approach, Self Imitation Learning for Optimization (SILO) that is easy to implement and outperforms a standard policy gradient learning approach on our Big Assembly benchmark. Our method, SILO, superoptimizes programs an expected 6.2% of our test set when compared with the gcc version 10.3 compiler's aggressive optimization level -O3. We also report that SILO's rate of superoptimization on our test set is over five times that of a standard policy gradient approach and a model pre-trained on compiler optimization demonstration.


翻译:程序优化是修改软件以更高效地执行程序的过程。 因为找到最佳程序一般是不可估量的, 现代编译者通常会采用专家编写的超光速优化。 相反, 超优化器试图通过使用昂贵得多的搜索和限制解决技术来找到最佳程序。 一般而言, 这些方法并不适应实际开发情景中的方案, 结果, 超优化主要局限于小规模、 特定域和/ 或合成程序基准 。 由于找到最佳程序一般是不可估量的, 现代编译者通常会采用专家编写的超优化现实世界程序的框架 。 相反, 我们引入大大会基准, 由25K以上真实世界功能组成的数据集, 由x86- 64 组装的开放源项目所采掘的 。 这有利于在大规模优化真实世界程序上进行实验, 结果, 超优化主要限于小规模的、 特定域和/ 合成程序。 我们提出的一个方法, 简单实施和超越大大会基准标准的政策梯度学习方法。 我们的方法, SILO, 超优化的系统, 也比我们的标准标准的S10比标准标准标准标准标准标准的S10 标准的S10比标准标准标准标准标准标准标准的S10标准的S10比标准标准标准标准标准标准标准标准标准标准标准标准标准的S 6.标准标准标准标准的S 6.标准标准的S 6.标准标准标准的S10比标准标准标准标准标准标准标准标准标准标准标准标准标准标准标准标准标准标准标准标准标准的S 6.。

0
下载
关闭预览

相关内容

【伯克利-Ke Li】学习优化,74页ppt,Learning to Optimize
专知会员服务
40+阅读 · 2020年7月23日
【干货书】真实机器学习,264页pdf,Real-World Machine Learning
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
152+阅读 · 2019年10月12日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
无监督元学习表示学习
CreateAMind
27+阅读 · 2019年1月4日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
强化学习族谱
CreateAMind
26+阅读 · 2017年8月2日
强化学习 cartpole_a3c
CreateAMind
9+阅读 · 2017年7月21日
Arxiv
7+阅读 · 2021年10月19日
Arxiv
7+阅读 · 2021年5月25日
Arxiv
6+阅读 · 2019年11月14日
Arxiv
14+阅读 · 2019年9月11日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
Arxiv
3+阅读 · 2016年2月24日
VIP会员
相关VIP内容
【伯克利-Ke Li】学习优化,74页ppt,Learning to Optimize
专知会员服务
40+阅读 · 2020年7月23日
【干货书】真实机器学习,264页pdf,Real-World Machine Learning
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
152+阅读 · 2019年10月12日
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
无监督元学习表示学习
CreateAMind
27+阅读 · 2019年1月4日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
强化学习族谱
CreateAMind
26+阅读 · 2017年8月2日
强化学习 cartpole_a3c
CreateAMind
9+阅读 · 2017年7月21日
相关论文
Arxiv
7+阅读 · 2021年10月19日
Arxiv
7+阅读 · 2021年5月25日
Arxiv
6+阅读 · 2019年11月14日
Arxiv
14+阅读 · 2019年9月11日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
Arxiv
3+阅读 · 2016年2月24日
Top
微信扫码咨询专知VIP会员