論文の概要: Learning to Superoptimize Real-world Programs
- arxiv url: http://arxiv.org/abs/2109.13498v1
- Date: Tue, 28 Sep 2021 05:33:21 GMT
- ステータス: 処理完了
- システム内更新日: 2021-09-29 14:53:11.774619
- Title: Learning to Superoptimize Real-world Programs
- Title(参考訳): 実世界のプログラムを最適化する学習
- Authors: Alex Shypula, Pengcheng Yin, Jeremy Lacomis, Claire Le Goues, Edward
Schwartz, Graham Neubig
- Abstract要約: 本稿では,ニューラルシークエンス・ツー・シーケンス・モデルを用いて,実世界のプログラムを最適化するフレームワークを提案する。
我々は、x86-64アセンブリでオープンソースプロジェクトから抽出された25万以上の実世界の関数からなるデータセットであるBig Assemblyベンチマークを紹介した。
- 参考スコア(独自算出の注目度): 79.4140991035247
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: 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.
- Abstract(参考訳): プログラム最適化は、より効率的に実行するソフトウェアを修正するプロセスである。
最適なプログラムを見つけることは一般的に決定不可能であるため、現代のコンパイラは通常、専門家によるヒューリスティックな最適化に頼っている。
対照的に、超最適化器はより高価な探索法と制約解法を駆使して最適なプログラムを見つけようとする。
一般に、これらの手法は実際の開発シナリオにおいてプログラムにうまくスケールしないため、結果としてスーパー最適化は主に小規模、ドメイン固有、および/または合成プログラムベンチマークに限られている。
本稿では,ニューラルシーケンス・ツー・シーケンスモデルを用いて,実世界のプログラムを超最適化するフレームワークを提案する。
我々は,x86-64アセンブリのオープンソースプロジェクトから抽出された25万以上の実世界の関数からなるデータセットであるBig Assemblyベンチマークを紹介した。
本稿では,最適化のための自己模倣学習(SILO)を提案する。この手法は,我々のBig Assemblyベンチマークにおいて,標準方針勾配学習アプローチの実装と性能を向上する。
SILOは、gccバージョン10.3コンパイラのアグレッシブな最適化レベル-O3と比較して、テストセットの6.2%をプログラムに最適化する。
また,テストセット上でのSILOの過最適化率は,標準ポリシー勾配手法の5倍以上であり,コンパイラ最適化の実証で事前訓練されたモデルであることが報告された。
関連論文リスト
- Should AI Optimize Your Code? A Comparative Study of Current Large Language Models Versus Classical Optimizing Compilers [0.0]
大規模言語モデル(LLM)は、コード最適化方法論に革命をもたらすAI駆動アプローチの可能性に関する興味深い疑問を提起する。
本稿では、GPT-4.0とCodeLlama-70Bの2つの最先端大言語モデルと従来の最適化コンパイラの比較分析を行う。
論文 参考訳(メタデータ) (2024-06-17T23:26:41Z) - CompilerDream: Learning a Compiler World Model for General Code Optimization [58.87557583347996]
汎用コード最適化のためのモデルベース強化学習手法であるCompilerDreamを紹介する。
最適化パスの固有の特性を正確にシミュレートするコンパイラの世界モデルと、このモデルで訓練されたエージェントから、効率的な最適化戦略を生成する。
さまざまなデータセットを網羅し、LLVMのビルトイン最適化や、値予測とエンドツーエンドコード最適化の両方の設定における最先端メソッドを超越している。
論文 参考訳(メタデータ) (2024-04-24T09:20:33Z) - Localized Zeroth-Order Prompt Optimization [54.964765668688806]
そこで我々は,ZOPO(Localized zeroth-order prompt optimization)という新しいアルゴリズムを提案する。
ZOPOはニューラル・タンジェント・カーネルをベースとしたガウス法を標準ゼロ階次最適化に取り入れ、高速な局所最適探索を高速化する。
注目すべきは、ZOPOは最適化性能とクエリ効率の両方の観点から、既存のベースラインを上回っていることだ。
論文 参考訳(メタデータ) (2024-03-05T14:18:15Z) - Large Language Models for Compiler Optimization [22.52765975286403]
コードサイズに対してLLVMアセンブリを最適化するために,スクラッチからトレーニングしたトランスフォーマーモデルを提案する。
最適化前後の命令数と最適化コード自体を予測する。
提案手法は,コンパイラよりも命令数の削減が3.0%向上する。
論文 参考訳(メタデータ) (2023-09-11T22:11:46Z) - Large Language Models as Optimizers [106.52386531624532]
本稿では,大規模言語モデル (LLM) をプロンプトとして活用するためのシンプルで効果的な手法である Prompting (OPRO) を提案する。
各最適化ステップにおいて、LLMは、前述した値を含むプロンプトから新しい解を生成する。
OPROにより最適化された最良のプロンプトは、GSM8Kで最大8%、Big-Bench Hardタスクで最大50%向上することを示した。
論文 参考訳(メタデータ) (2023-09-07T00:07:15Z) - Learning Performance-Improving Code Edits [107.21538852090208]
本稿では,大規模言語モデル(LLM)を高レベルプログラム最適化に適用するためのフレームワークを提案する。
まず、競争力のある77,000以上のC++プログラミングサブミッションペアによる、人間のプログラマによるパフォーマンス改善編集のデータセットをキュレートする。
提案手法は,検索をベースとした少数ショットプロンプトとチェーン・オブ・シンクレットを提案し,その微調整には,自己再生に基づく性能条件付き生成と合成データ拡張が含まれる。
論文 参考訳(メタデータ) (2023-02-15T18:59:21Z) - Global Optimization of Gaussian processes [52.77024349608834]
少数のデータポイントで学習したガウス過程を訓練した空間定式化を提案する。
このアプローチはまた、より小さく、計算的にもより安価なサブソルバを低いバウンディングに導く。
提案手法の順序の順序による時間収束を,総じて低減する。
論文 参考訳(メタデータ) (2020-05-21T20:59:11Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。