Skip to main content
QUICK REVIEW

[論文レビュー] Learning to superoptimize programs

Rudy Bunel, Alban Desmaison|arXiv (Cornell University)|Nov 6, 2016
Software Engineering Research参考文献 17被引用数 17
ひとこと要約

本稿では、強化学習を用いて適応的提案分布を学習することで、確率的探索を改善する学習ベースのコードスーパー最適化手法を提案する。期待改善度に基づいて提案分布を最適化するためのREINFORCEアルゴリズムを活用することで、Stokeのような最先端手法を著しく上回り、Hacker’s Delightおよび自動生成されたベンチマークの両方で、より少ない反復回数で高い最適化品質を達成する。

ABSTRACT

Code super-optimization is the task of transforming any given program to a more efficient version while preserving its input-output behaviour. In some sense, it is similar to the paraphrase problem from natural language processing where the intention is to change the syntax of an utterance without changing its semantics. Code-optimization has been the subject of years of research that has resulted in the development of rule-based transformation strategies that are used by compilers. More recently, however, a class of stochastic search based methods have been shown to outperform these strategies. This approach involves repeated sampling of modifications to the program from a proposal distribution, which are accepted or rejected based on whether they preserve correctness, and the improvement they achieve. These methods, however, neither learn from past behaviour nor do they try to leverage the semantics of the program under consideration. Motivated by this observation, we present a novel learning based approach for code super-optimization. Intuitively, our method works by learning the proposal distribution using unbiased estimators of the gradient of the expected improvement. Experiments on benchmarks comprising of automatically generated as well as existing ("Hacker's Delight") programs show that the proposed method is able to significantly outperform state of the art approaches for code super-optimization.

研究の動機と目的

  • Stokeフレームワークなどで見られる、固定で非適応的な提案分布の制限を解消すること。
  • 入力プログラムの意味的・構造的特徴に応じて適応する提案分布を学習することで、スーパー最適化の効率性と品質を向上させること。
  • 学習された提案分布が、一様分布やルールベースの戦略よりも速く、より優れた最適化結果を達成できることを示すこと。
  • 手動で選別された'Hacker’s Delight'のプログラムと、構造的多様性の高い自動生成プログラムを含む多様なベンチマークで、手法の有効性を評価すること。

提案手法

  • スーパー最適化を、プログラム効率の期待改善度を最大化する提案分布を学ぶ強化学習問題として定式化する。
  • 期待改善度の勾配を提案分布パラメータに関して推定するため、REINFORCEアルゴリズムを用いることで、エンドツーエンドの学習が可能になる。
  • 提案分布は、プログラムの特徴に条件付けられたニューラルネットワーク(または単純なバイアス)としてモデル化され、入力プログラムの構文的・意味的構造に応じて適応的に変化する。
  • 提案されたプログラム変換は、改善度と正しさに基づいて受容または却下されるマルコフ連鎖モンテカルロ(MCMC)サンプリング手順を採用する。
  • 訓練データは、入力プログラムとその最適化トレースから構成され、教師あり事前学習や繰り返しMCMCサンプリングによる自己教師学習が可能になる。
  • プログラム効率を測るコスト関数を用い、ベースライン手法との相対的スコア向上を指標として性能を追跡する。

実験結果

リサーチクエスチョン

  • RQ1学習された提案分布は、固定で非適応的な提案分布よりも、確率的コードスーパー最適化において優れているか?
  • RQ2プログラム特徴に条件付けられた提案分布は、収束速度の向上とより高品質な最適化をもたらすか?
  • RQ3多様なプログラムベンチマークにおいて、Stokeのような最先端のスーパー最適化ツールと比較して、学習手法の性能はどの程度か?
  • RQ4構造的多様性が限られたプログラムと、高い構造的変動を示すプログラムの両方に対して、この手法は一般化可能か?

主な発見

  • Hacker’s Delightベンチマークでは、条件付けられていないバイアスモデルでさえ、Stokeで用いられる一様分布提案よりも優れた結果を示し、平均相対スコア63.56%を達成したのに対し、ベースラインは78.15%であった。
  • より複雑な自動生成ベンチマークでは、プログラム特徴に条件付けられた多層パーセプトロン(MLP)が、78.15%のベースラインに対して平均相対スコア62.27%を達成し、顕著な改善を示した。
  • わずか100回の反復で、学習された提案分布は、400回の反復を要する一様分布よりも優れた結果を達成した。これは収束の高速化を示している。
  • 複数回の最適化実行にわたり、学習された提案分布は一様ベースラインよりも、より強固で一貫した形でプログラムコストを低減した。
  • 学習された提案分布では、1秒間に20,000回の処理が可能であったのに対し、一様ベースラインは60,000回であった。これは、速度と品質の間で妥当なトレードオフを示している。
  • 結果から、提案分布の学習は実現可能で効果的であり、特にプログラム構造に条件付けられたモデルでは、優れた最適化結果が得られることを示している。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。