論文の概要: DESIL: Detecting Silent Bugs in MLIR Compiler Infrastructure
- arxiv url: http://arxiv.org/abs/2504.01379v1
- Date: Wed, 02 Apr 2025 05:48:51 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-04-03 13:23:54.979028
- Title: DESIL: Detecting Silent Bugs in MLIR Compiler Infrastructure
- Title(参考訳): DESIL:MLIRコンパイラインフラストラクチャにおけるサイレントバグの検出
- Authors: Chenyao Suo, Jianrong Wang, Yongjia Wang, Jiajun Jiang, QingChao Shen, Junjie Chen,
- Abstract要約: DESILは、MLIRドキュメントに基づいたUB-eliminationルールのセットを定義することで、サイレントバグ検出を可能にする。
DESILにはサイレントバグ検出のための差分テストが組み込まれている。
23の静かなバグと19のクラッシュバグを検出し、そのうち12/14が確認または修正された。
- 参考スコア(独自算出の注目度): 8.760618981915016
- License:
- Abstract: MLIR (Multi-Level Intermediate Representation) compiler infrastructure provides an efficient framework for introducing a new abstraction level for programming languages and domain-specific languages. It has attracted widespread attention in recent years and has been applied in various domains, such as deep learning compiler construction. Recently, several MLIR compiler fuzzing techniques, such as MLIRSmith and MLIRod, have been proposed. However, none of them can detect silent bugs, i.e., bugs that incorrectly optimize code silently. The difficulty in detecting silent bugs arises from two main aspects: (1) UB-Free Program Generation: Ensures the generated programs are free from undefined behaviors to suit the non-UB assumptions required by compiler optimizations. (2) Lowering Support: Converts the given MLIR program into an executable form, enabling execution result comparisons, and selects a suitable lowering path for the program to reduce redundant lowering pass and improve the efficiency of fuzzing. To address the above issues, we propose DESIL. DESIL enables silent bug detection by defining a set of UB-elimination rules based on the MLIR documentation and applying them to input programs to produce UB-free MLIR programs. To convert dialects in MLIR program into the executable form, DESIL designs a lowering path optimization strategy to convert the dialects in given MLIR program into executable form. Furthermore, DESIL incorporates the differential testing for silent bug detection. To achieve this, it introduces an operation-aware optimization recommendation strategy into the compilation process to generate diverse executable files. We applied DESIL to the latest revisions of the MLIR compiler infrastructure. It detected 23 silent bugs and 19 crash bugs, of which 12/14 have been confirmed or fixed
- Abstract(参考訳): MLIR(Multi-Level Intermediate Representation)コンパイラ基盤は、プログラミング言語とドメイン固有言語のための新しい抽象化レベルを導入するための効率的なフレームワークを提供する。
近年は広く注目され、深層学習コンパイラ構築など様々な分野に応用されている。
近年,MLIRSmithやMLIRodなどのMLIRコンパイラファジリング技術が提案されている。
しかし、いずれも無声でコードを最適化するバグなど、無声のバグを検出できない。
1) UBフリーなプログラム生成: コンパイラの最適化によって要求されるUB以外の前提に合うように、生成されたプログラムが未定義の動作から解放されることを保証する。
2) ローイングサポート: 与えられたMLIRプログラムを実行可能形式に変換し、実行結果の比較を可能にし、冗長なローイングパスの低減とファジング効率の向上のために、プログラムに適したローイングパスを選択する。
上記の問題に対処するため,DESILを提案する。
DESILは、MLIRドキュメンテーションに基づいて一連のUB除去ルールを定義し、それらを入力プログラムに適用し、UBフリーのMLIRプログラムを作成することで、無音バグ検出を可能にする。
MLIRプログラムの方言を実行可能形式に変換するため、DESILは与えられたMLIRプログラムの方言を実行可能形式に変換するための下方最適化戦略を設計する。
さらに、DESILにはサイレントバグ検出のための差分テストが組み込まれている。
これを実現するために、様々な実行可能なファイルを生成するために、コンパイルプロセスにオペレーショナル・アウェア・オプティマイズ・レコメンデーション戦略を導入する。
我々はDESILをMLIRコンパイラインフラストラクチャの最新版に適用した。
23の静かなバグと19のクラッシュバグを検出し、そのうち12/14が確認または修正された。
関連論文リスト
- ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - Finding Missed Code Size Optimizations in Compilers using LLMs [1.90019787465083]
我々は,大規模言語モデルと一連の差分テスト戦略を組み合わせた新しいテスト手法を開発した。
当社のアプローチでは,実装に150行未満のコードが必要です。
現在までに、本番コンパイラの24のバグが報告されている。
論文 参考訳(メタデータ) (2024-12-31T21:47:46Z) - $\mathbb{USCD}$: Improving Code Generation of LLMs by Uncertainty-Aware Selective Contrastive Decoding [64.00025564372095]
大規模言語モデル(LLM)は、コード生成において顕著な能力を示している。
幻覚の影響(例えば出力ノイズ)は、LLMが1パスで高品質なコードを生成するのを難しくする。
単純かつ効果的なtextbfuncertainty-aware textbf select textbfcontrastive textbfdecodingを提案する。
論文 参考訳(メタデータ) (2024-09-09T02:07:41Z) - Galapagos: Automated N-Version Programming with LLMs [10.573037638807024]
大規模言語モデルを用いたプログラム変種の自動生成を提案する。
プログラムの変種を生成するツールであるGal'apagosを設計、開発、評価する。
我々は現実世界のCコードのN-Versionコンポーネントを作成することでGal'apagosを評価する。
論文 参考訳(メタデータ) (2024-08-18T16:44:01Z) - mlirSynth: Automatic, Retargetable Program Raising in Multi-Level IR
using Program Synthesis [48.01697184432969]
mlirSynthは、プログラムを低レベルMLIR方言から高レベルなものに翻訳する。
Cプログラムを2つの異なるハイレベルなMLIR方言にリバイバイバルすることで、既存のハイレベルな方言固有のコンパイルフローを利用できることを示す。
論文 参考訳(メタデータ) (2023-10-06T12:21:50Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - Isolating Compiler Bugs by Generating Effective Witness Programs with Large Language Models [10.660543763757518]
既存のコンパイラのバグ分離アプローチは、問題をテストプログラムの突然変異問題に変換する。
コンパイラのバグ分離のための効率的なテストプログラムを生成するために,LLM4CBIという新しい手法を提案する。
GCCとLLVMの120以上の実際のバグに対する最先端のアプローチと比較し,LLM4CBIの利点を実証した。
論文 参考訳(メタデータ) (2023-07-02T15:20:54Z) - CryptOpt: Verified Compilation with Randomized Program Search for
Cryptographic Primitives (full version) [12.790826917588575]
暗号は例外であり、多くのパフォーマンスクリティカルなルーチンがアセンブリで直接書かれてきた。
CryptOptは、GCCやClangが生成するものよりもはるかに高速なアセンブリコードに高レベルの暗号関数プログラムを専門とする、最初のコンパイルパイプラインである。
形式検証の面では、FiatOptフレームワーク(関数型プログラムをCライクなIRコードに変換する)に接続し、新たに公式に認証されたプログラム等価チェッカーで拡張する。
論文 参考訳(メタデータ) (2022-11-19T11:07:39Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Natural Language to Code Translation with Execution [82.52142893010563]
実行結果-プログラム選択のための最小ベイズリスク復号化。
そこで本研究では,自然言語からコードへのタスクにおいて,事前訓練されたコードモデルの性能を向上することを示す。
論文 参考訳(メタデータ) (2022-04-25T06:06:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。