論文の概要: Pattern-Based Peephole Optimizations with Java JIT Tests
- arxiv url: http://arxiv.org/abs/2403.11283v1
- Date: Sun, 17 Mar 2024 17:41:01 GMT
- ステータス: 処理完了
- システム内更新日: 2024-03-19 17:36:46.821865
- Title: Pattern-Based Peephole Optimizations with Java JIT Tests
- Title(参考訳): Java JITテストによるパターンベースのピープホール最適化
- Authors: Zhiqiang Zang, Aditya Thimmaiah, Milos Gligoric,
- Abstract要約: JOGを使うことで、開発者は、望まれるコード変換を指定するパターンをJava自身で書くことができる。
JOGは各パターンをC/C++コードに変換し、JIT最適化パスとして統合することができる。
JOGは、最適化のペア間のシャドウ関係を自動的に検出する。
- 参考スコア(独自算出の注目度): 5.438042555846583
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: We present JOG, a framework that facilitates developing Java JIT peephole optimizations alongside JIT tests. JOG enables developers to write a pattern, in Java itself, that specifies desired code transformations by writing code before and after the optimization, as well as any necessary preconditions. Such patterns can be written in the same way that tests of the optimization are already written in OpenJDK. JOG translates each pattern into C/C++ code that can be integrated as a JIT optimization pass. JOG also generates Java tests for optimizations from patterns. Furthermore, JOG can automatically detect possible shadow relation between a pair of optimizations where the effect of the shadowed optimization is overridden by another. Our evaluation shows that JOG makes it easier to write readable JIT optimizations alongside tests without decreasing the effectiveness of JIT optimizations. We wrote 162 patterns, including 68 existing optimizations in OpenJDK, 92 new optimizations adapted from LLVM, and two new optimizations that we proposed. We opened eight pull requests (PRs) for OpenJDK, including six for new optimizations, one on removing shadowed optimizations, and one for newly generated JIT tests; seven PRs have already been integrated into the master branch of OpenJDK.
- Abstract(参考訳): 私たちは、JITテストと一緒にJava JITのピープホール最適化の開発を容易にするフレームワークJOGを紹介します。
JOGを使えば開発者は、最適化前後のコードを記述することで、望ましいコード変換を規定するパターンをJava自身で記述できる。
このようなパターンは、最適化のテストがすでにOpenJDKで記述されているのと同じように書くことができる。
JOGは各パターンをC/C++コードに変換し、JIT最適化パスとして統合することができる。
JOGはパターンから最適化のためのJavaテストを生成する。
さらに、JOGは、シャドウ最適化の効果が別の最適化によってオーバーライドされる一対の最適化の間のシャドウ関係を自動的に検出することができる。
評価の結果,JOG は JIT 最適化の有効性を低下させることなく,可読性のある JIT 最適化をテストと一緒に記述しやすくする。
我々は、OpenJDKに68の既存の最適化、LLVMに適合した92の新しい最適化、提案した2つの新しい最適化を含む162のパターンを書きました。
私たちはOpenJDKのプルリクエスト(PR)を8つオープンしました。その中には、新しい最適化の6つ、シャドード最適化の1つ、新しく生成されたJITテストの1つが含まれています。
関連論文リスト
- Iterative or Innovative? A Problem-Oriented Perspective for Code Optimization [81.88668100203913]
大規模言語モデル(LLM)は、幅広いプログラミングタスクを解く上で強力な能力を示している。
本稿では,パフォーマンス向上に着目したコード最適化について検討する。
論文 参考訳(メタデータ) (2024-06-17T16:10:10Z) - 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) - Large Language Models as Optimizers [106.52386531624532]
本稿では,大規模言語モデル (LLM) をプロンプトとして活用するためのシンプルで効果的な手法である Prompting (OPRO) を提案する。
各最適化ステップにおいて、LLMは、前述した値を含むプロンプトから新しい解を生成する。
OPROにより最適化された最良のプロンプトは、GSM8Kで最大8%、Big-Bench Hardタスクで最大50%向上することを示した。
論文 参考訳(メタデータ) (2023-09-07T00:07:15Z) - SparseOptimizer: Sparsify Language Models through Moreau-Yosida
Regularization and Accelerate via Compiler Co-design [0.685316573653194]
本稿では, BERT, ALBERT, GPTなどの大規模言語モデルにおいて, モロー・ヨシダ正規化を利用した新しいディープラーニングであるスペーサーを紹介する。
Sparserのプラグイン・アンド・プレイ機能は、コード修正の必要性を排除し、幅広い大きな言語モデルに対して普遍的に適応可能なツールである。
GLUE, RACE, SQuAD1, SQuAD2などのベンチマークデータセットに関する実証的な評価では、SBERTとSprserは、Sparserを使用すると、その密度の高いデータセットに匹敵するパフォーマンスを実現する。
論文 参考訳(メタデータ) (2023-06-27T17:50:26Z) - ALT: Breaking the Wall between Graph and Operator Level Optimizations
for Deep Learning Compilation [38.8918502461244]
ALTはディープモデルのためのグラフと演算子レベルの共同最適化を行うコンパイラである。
JOGは、単一の演算子の性能とエンドツーエンドの推論性能の両方の観点から、最先端のコンパイラ(例えばAnsor)よりも大幅に優れている。
論文 参考訳(メタデータ) (2022-10-22T11:09:36Z) - Efficient Non-Parametric Optimizer Search for Diverse Tasks [93.64739408827604]
興味のあるタスクを直接検索できる,スケーラブルで汎用的なフレームワークを初めて提示する。
基礎となる数学表現の自然木構造に着想を得て、空間を超木に再配置する。
我々は,モンテカルロ法を木探索に適用し,レジェクションサンプリングと等価形状検出を備える。
論文 参考訳(メタデータ) (2022-09-27T17:51:31Z) - MAGPIE: Machine Automated General Performance Improvement via Evolution
of Software [19.188864062289433]
MAGPIEは統合されたソフトウェア改善フレームワークである。
共通の編集シーケンスに基づく表現を提供し、特定の改善テクニックから探索プロセスを分離する。
論文 参考訳(メタデータ) (2022-08-04T17:58:43Z) - Learning to Superoptimize Real-world Programs [79.4140991035247]
本稿では,ニューラルシークエンス・ツー・シーケンス・モデルを用いて,実世界のプログラムを最適化するフレームワークを提案する。
我々は、x86-64アセンブリでオープンソースプロジェクトから抽出された25万以上の実世界の関数からなるデータセットであるBig Assemblyベンチマークを紹介した。
論文 参考訳(メタデータ) (2021-09-28T05:33:21Z) - Learning to Optimize: A Primer and A Benchmark [94.29436694770953]
最適化への学習(L2O)は、機械学習を活用して最適化方法を開発する新しいアプローチです。
この記事では、継続的最適化のためのL2Oの総合的な調査とベンチマークを行う。
論文 参考訳(メタデータ) (2021-03-23T20:46:20Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。