論文の概要: Finding Missed Code Size Optimizations in Compilers using LLMs
- arxiv url: http://arxiv.org/abs/2501.00655v1
- Date: Tue, 31 Dec 2024 21:47:46 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-01-05 17:17:02.471141
- Title: Finding Missed Code Size Optimizations in Compilers using LLMs
- Title(参考訳): LLMを用いたコンパイラの符号サイズ最適化
- Authors: Davide Italiano, Chris Cummins,
- Abstract要約: 我々は,大規模言語モデルと一連の差分テスト戦略を組み合わせた新しいテスト手法を開発した。
当社のアプローチでは,実装に150行未満のコードが必要です。
現在までに、本番コンパイラの24のバグが報告されている。
- 参考スコア(独自算出の注目度): 1.90019787465083
- License:
- Abstract: Compilers are complex, and significant effort has been expended on testing them. Techniques such as random program generation and differential testing have proved highly effective and have uncovered thousands of bugs in production compilers. The majority of effort has been expended on validating that a compiler produces correct code for a given input, while less attention has been paid to ensuring that the compiler produces performant code. In this work we adapt differential testing to the task of identifying missed optimization opportunities in compilers. We develop a novel testing approach which combines large language models (LLMs) with a series of differential testing strategies and use them to find missing code size optimizations in C / C++ compilers. The advantage of our approach is its simplicity. We offload the complex task of generating random code to an off-the-shelf LLM, and use heuristics and analyses to identify anomalous compiler behavior. Our approach requires fewer than 150 lines of code to implement. This simplicity makes it extensible. By simply changing the target compiler and initial LLM prompt we port the approach from C / C++ to Rust and Swift, finding bugs in both. To date we have reported 24 confirmed bugs in production compilers, and conclude that LLM-assisted testing is a promising avenue for detecting optimization bugs in real world compilers.
- Abstract(参考訳): コンパイラは複雑で、テストに多大な労力が費やされている。
ランダムプログラム生成や差分テストといったテクニックは非常に効果的であることが証明され、プロダクションコンパイラに数千のバグが発見された。
コンパイラが与えられた入力に対して正しいコードを生成することの検証に多くの労力が費やされているが、コンパイラがパフォーマンスの高いコードを生成することを保証するため、注意が払われていない。
この作業では、コンパイラの最適化機会の欠落を特定するタスクに差分テストを適用します。
我々は,大規模言語モデル(LLM)と一連の差分テスト戦略を組み合わせた新しいテスト手法を開発し,C/C++コンパイラのコードサイズ最適化の欠如を見つける。
私たちのアプローチの利点はその単純さです。
既成のLLMにランダムコードを生成する複雑なタスクをオフロードし、ヒューリスティックスと解析を用いて異常なコンパイラの動作を特定する。
当社のアプローチでは,実装に150行未満のコードが必要です。
この単純さは拡張可能である。
ターゲットコンパイラと初期LSMプロンプトを変更することで、アプローチをC/C++からRustとSwiftに移植し、両方にバグを見つけます。
現在までに24の本番コンパイラのバグを報告しており、LLM支援テストは現実世界のコンパイラの最適化バグを検出するための有望な方法である、と結論付けている。
関連論文リスト
- What's Wrong with Your Code Generated by Large Language Models? An Extensive Study [80.18342600996601]
大規模言語モデル(LLM)は、標準解に比べて短いがより複雑なコードを生成する。
3つのカテゴリと12のサブカテゴリを含む誤ったコードに対するバグの分類を開発し、一般的なバグタイプに対する根本原因を分析する。
そこで本研究では,LLMがバグタイプやコンパイラフィードバックに基づいて生成したコードを批判し,修正することのできる,自己批判を導入した新たな学習自由反復手法を提案する。
論文 参考訳(メタデータ) (2024-07-08T17:27:17Z) - StepCoder: Improve Code Generation with Reinforcement Learning from
Compiler Feedback [58.20547418182074]
2つの主要コンポーネントからなるコード生成の新しいフレームワークであるStepCoderを紹介します。
CCCSは、長いシーケンスのコード生成タスクをCurriculum of Code Completion Subtaskに分割することで、探索課題に対処する。
FGOは、未実行のコードセグメントをマスクすることでのみモデルを最適化し、Fine-Grained Optimizationを提供する。
提案手法は,出力空間を探索し,対応するベンチマークにおいて最先端の手法より優れた性能を発揮する。
論文 参考訳(メタデータ) (2024-02-02T13:14:31Z) - Evolutionary Generative Fuzzing for Differential Testing of the Kotlin
Compiler [14.259471945857431]
JetBrainsが開発したKotlinコンパイラのバグ発見における差分テストの有効性について検討する。
そこで我々は,K1コンパイラとK2コンパイラの入力プログラムを生成するブラックボックス生成手法を提案する。
ケーススタディでは,提案手法がK1とK2のバグを効果的に検出している。
論文 参考訳(メタデータ) (2024-01-12T16:01:12Z) - Chain of Code: Reasoning with a Language Model-Augmented Code Emulator [115.16975276693267]
我々は、LMコード駆動推論を改善するシンプルながら驚くほど効果的な拡張であるChain of Codeを提案する。
キーとなるアイデアは、プログラム内のセマンティックなサブタスクを、インタープリタが明示的にキャッチできるフレキシブルな擬似コードとしてフォーマットすることを、LMに促すことである。
論文 参考訳(メタデータ) (2023-12-07T17:51:43Z) - WhiteFox: White-Box Compiler Fuzzing Empowered by Large Language Models [11.33856613057612]
提案するWhiteFoxは,ソースコード情報付きLarge Language Modelを用いた,最初のホワイトボックスコンパイラファザである。
WhiteFoxは、高度な最適化を行うための高品質なテストプログラムを生成することができる。
WhiteFoxはDLコンパイラの101のバグを発見した。
論文 参考訳(メタデータ) (2023-10-24T16:39:06Z) - A Survey of Modern Compiler Fuzzing [0.0]
この調査は、コンパイラの欠陥を理解し、対処するための研究成果の概要を提供する。
研究者は、その症状や根本原因など、コンパイラーのバグに関する調査と専門知識をカバーしている。
さらに、テストプログラムの構築やテストオラクルの設計など、ファジング技術を設計する研究者の取り組みについても取り上げている。
論文 参考訳(メタデータ) (2023-06-12T06:03:51Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - LEVER: Learning to Verify Language-to-Code Generation with Execution [64.36459105535]
本稿では,プログラムの実行結果の検証を学習することで,言語からコードへの生成を改善するシンプルな手法であるLEVERを提案する。
具体的には、LLMからサンプリングされたプログラムが、自然言語入力、プログラム自体とその実行結果に基づいて正しいか否かを判定するために、検証者を訓練する。
LEVER はベースコード LLMs (4.6% から 10.9% まで) を継続的に改善し、それらすべてに対して新しい最先端の結果を得る。
論文 参考訳(メタデータ) (2023-02-16T18:23:22Z) - Interactive Code Generation via Test-Driven User-Intent Formalization [60.90035204567797]
大きな言語モデル(LLM)は、非公式な自然言語(NL)の意図からコードを生成する。
自然言語は曖昧であり、形式的な意味論が欠けているため、正確性の概念を定義するのは難しい。
言語に依存しない抽象アルゴリズムと具体的な実装TiCoderについて述べる。
論文 参考訳(メタデータ) (2022-08-11T17:41:08Z) - CompilerGym: Robust, Performant Compiler Optimization Environments for
AI Research [26.06438868492976]
コンパイラ最適化に人工知能(AI)技術を適用することへの関心は急速に高まっている。
しかし、コンパイラー研究は高い参入障壁を持っている。
実世界のコンパイラ最適化タスクのための環境セットであるCompilerGymを紹介する。
また、コンパイラ研究者に新しい最適化タスクを公開するツールキットも導入する。
論文 参考訳(メタデータ) (2021-09-17T01:02:27Z) - Configuring Test Generators using Bug Reports: A Case Study of GCC
Compiler and Csmith [2.1016374925364616]
本稿では,バグレポートのコードスニペットを使用して,テスト生成のガイドを行う。
GCCの8つのバージョンでこのアプローチを評価します。
我々は,本手法がGCCの最先端テスト生成技術よりも高いカバレッジを提供し,誤コンパイル障害を引き起こすことを発見した。
論文 参考訳(メタデータ) (2020-12-19T11:25:13Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。