論文の概要: Learning to Make Compiler Optimizations More Effective
- arxiv url: http://arxiv.org/abs/2102.13514v1
- Date: Wed, 24 Feb 2021 10:42:56 GMT
- ステータス: 処理完了
- システム内更新日: 2021-03-01 13:42:04.557353
- Title: Learning to Make Compiler Optimizations More Effective
- Title(参考訳): コンパイラの最適化をより効果的にする学習
- Authors: Rahim Mammadli, Marija Selakovic, Felix Wolf, Michael Pradel
- Abstract要約: looplearnerは、ループを書く方法が効率的なコンパイルコードにつながると予測する。
各種性能関連ベンチマークから1,895ループのLoopLearnerを評価した。
- 参考スコア(独自算出の注目度): 11.125012960514471
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Because loops execute their body many times, compiler developers place much
emphasis on their optimization. Nevertheless, in view of highly diverse source
code and hardware, compilers still struggle to produce optimal target code. The
sheer number of possible loop optimizations, including their combinations,
exacerbates the problem further. Today's compilers use hard-coded heuristics to
decide when, whether, and which of a limited set of optimizations to apply.
Often, this leads to highly unstable behavior, making the success of compiler
optimizations dependent on the precise way a loop has been written. This paper
presents LoopLearner, which addresses the problem of compiler instability by
predicting which way of writing a loop will lead to efficient compiled code. To
this end, we train a neural network to find semantically invariant source-level
transformations for loops that help the compiler generate more efficient code.
Our model learns to extract useful features from the raw source code and
predicts the speedup that a given transformation is likely to yield. We
evaluate LoopLearner with 1,895 loops from various performance-relevant
benchmarks. Applying the transformations that our model deems most favorable
prior to compilation yields an average speedup of 1.14x. When trying the top-3
suggested transformations, the average speedup even increases to 1.29x.
Comparing the approach with an exhaustive search through all available code
transformations shows that LoopLearner helps to identify the most beneficial
transformations in several orders of magnitude less time.
- Abstract(参考訳): ループは何度もボディを実行するため、コンパイラ開発者は最適化に重点を置いている。
それでも、非常に多様なソースコードとハードウェアの観点から見ると、コンパイラは依然として最適なターゲットコードの生成に苦労している。
それらの組み合わせを含む可能なループ最適化の数は、問題をさらに悪化させます。
今日のコンパイラは、ハードコードされたヒューリスティックを使用して、いつ、いつ、どの最適化を適用するかを決定する。
多くの場合、これは非常に不安定な振る舞いをもたらし、コンパイラの最適化の成功はループの正確な書き方に依存する。
本稿では,ループの書き方が効率的なコンパイルコードにつながるかを予測することで,コンパイラの不安定性の問題に対処したlooplearnerを提案する。
そのために、ニューラルネットワークを訓練して、コンパイラがより効率的なコードを生成するのに役立つループの意味的に不変なソースレベルの変換を見つける。
我々のモデルは、生のソースコードから有用な特徴を抽出し、与えられた変換が得られそうなスピードアップを予測する。
各種性能関連ベンチマークから1,895ループのLoopLearnerを評価した。
我々のモデルがコンパイル前に最も望ましいと考える変換を適用すると、平均速度は1.14倍になる。
トップ3の変換を試すと、平均スピードアップは1.29倍になる。
利用可能なすべてのコード変換を徹底的な検索と比較すると、looplearnerは数桁の時間で最も有益な変換を特定するのに役立ちます。
関連論文リスト
- 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) - Large Language Models for Compiler Optimization [22.52765975286403]
コードサイズに対してLLVMアセンブリを最適化するために,スクラッチからトレーニングしたトランスフォーマーモデルを提案する。
最適化前後の命令数と最適化コード自体を予測する。
提案手法は,コンパイラよりも命令数の削減が3.0%向上する。
論文 参考訳(メタデータ) (2023-09-11T22:11:46Z) - Quantum Circuit Optimization and Transpilation via Parameterized Circuit
Instantiation [0.0]
本稿では,回路最適化とゲートセットトランスパイレーションという2つの一般的なコンパイルステップにおいて,インスタンス化を適用するアルゴリズムについて述べる。
回路最適化アルゴリズムは、他の最適化コンパイラよりも平均13%少ないゲートを持つ回路を生成する。
我々のゲートセットトランスパイレーションアルゴリズムは、任意のゲートセットをターゲットとし、複数の2キュービットゲートをセットし、他のコンパイラよりも平均12%少ない2キュービットゲートの回路を生成する。
論文 参考訳(メタデータ) (2022-06-16T02:22:08Z) - Will Bilevel Optimizers Benefit from Loops [63.22466953441521]
AID-BiOとITD-BiOの2つの一般的な双レベルマトリクスは、自然に1つまたは2つのサブプロブレムを解決する。
AID-BiO と ITD-BiO の両ループ実装選択に適用可能な統合収束解析をまず確立する。
論文 参考訳(メタデータ) (2022-05-27T20:28:52Z) - LoopStack: a Lightweight Tensor Algebra Compiler Stack [61.04098601022665]
LoopStackはテンソル操作のためのドメイン固有のコンパイラスタックである。
最先端の機械学習フレームワークのパフォーマンスにマッチし、頻繁なマシンコードを生成する。
メモリフットプリントは非常に小さく、バイナリサイズは245KBで、30K行未満の効率的なコードによって、モバイルや組み込みデバイスでの使用に適している。
論文 参考訳(メタデータ) (2022-05-02T01:57:58Z) - A Fully Single Loop Algorithm for Bilevel Optimization without Hessian
Inverse [121.54116938140754]
両レベル最適化問題に対して,Hessian 逆フリーな完全単一ループアルゴリズムを提案する。
我々のアルゴリズムは$O(epsilon-2)$と収束することを示す。
論文 参考訳(メタデータ) (2021-12-09T02:27:52Z) - Autotuning Search Space for Loop Transformations [0.03683202928838612]
本稿では,木の形をとるループ変換探索空間を提案する。
検索空間を探索する簡単なオートチューナーを実装し,選択したPolyBenchカーネルに適用した。
論文 参考訳(メタデータ) (2020-10-13T16:26:57Z) - Static Neural Compiler Optimization via Deep Reinforcement Learning [1.458855293397494]
本稿では,位相整合問題に対する深層強化学習手法を用いる。
LLVMのO3シークエンスを構成するサブシーケンスを用いて、エージェントはトレーニングに使用するソースコードのセット上でO3シークエンスより優れていることを学習する。
我々は、我々のアプローチを用いて訓練されたモデルは、ニューラル最適化エージェントとして現代のコンパイラに統合できると考えている。
論文 参考訳(メタデータ) (2020-08-20T13:16:29Z) - Kernel methods through the roof: handling billions of points efficiently [94.31450736250918]
カーネル法は、非パラメトリック学習に対するエレガントで原則化されたアプローチを提供するが、今のところ大規模な問題ではほとんど利用できない。
最近の進歩は、最適化、数値線形代数、ランダム射影など、多くのアルゴリズム的アイデアの利点を示している。
ここでは、これらの取り組みをさらに進めて、GPUハードウェアを最大限に活用する解決器を開発し、テストする。
論文 参考訳(メタデータ) (2020-06-18T08:16:25Z) - PolyDL: Polyhedral Optimizations for Creation of High Performance DL
primitives [55.79741270235602]
本稿では,Deep Learningプリミティブの高性能実装を自動的に生成するコンパイラアルゴリズムを提案する。
我々は多面体モデルを用いた新しいデータ再利用分析アルゴリズムを開発した。
また、このようなハイブリッドコンパイラとライブラリ使用の最小限のアプローチが、最先端のパフォーマンスをもたらすことを示す。
論文 参考訳(メタデータ) (2020-06-02T06:44:09Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。