論文の概要: Where Does the Performance Go? Understanding and Recovering Performance Regressions in C-to-Rust Translation
- arxiv url: http://arxiv.org/abs/2610.23044v1
- Date: Fri, 16 Oct 2026 07:22:54 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-10-20 00:56:07.804537
- Title: Where Does the Performance Go? Understanding and Recovering Performance Regressions in C-to-Rust Translation
- Title(参考訳): C-to-Rust翻訳におけるパフォーマンスレグレッションの理解と回復
- Abstract要約: ただし、動作の保存はパフォーマンスの保存を保証するものではない。
実世界の20のCプロジェクトとその地殻翻訳について,このギャップについて検討する。
Ourtoolは各プロジェクトをプロファイルし、ホット関数を見つけ出し、ルール固有のパターンとマッチさせる。
- 参考スコア(独自算出の注目度): 14.581361796403721
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Rust is increasingly adopted as a memory-safe successor to C, and transpilers such as \crust{} can migrate entire C projects while preserving their behavior. Preserving behavior, however, does not guarantee preserving performance. We study this gap on 20 real-world C projects and their \crust{} translations. On the eight projects used for analysis, the translated Rust is more than 3\% slower than the original C on 12 of 19 operations, by up to 62.2\%. By comparing execution-cost profiles, optimized LLVM IR, and compiler optimization remarks across each C--Rust pair, we trace these slowdowns to nine recurring performance issues, spanning residual runtime work, missed compiler optimizations, and C-style source patterns, and derive an optimization direction for each. We then present \ourtool{}, an LLM-based approach that encodes these issues as reusable optimization rules to recover the performance of translated Rust. \ourtool{} profiles each project to locate hot functions and matches them against rule-specific patterns. The LLM then checks each rule's rewrite preconditions against the project context before rewriting, and a rewrite is kept only if it passes both functional and performance validation. On 41 operations from twelve held-out projects, \ourtool{} preserves C outputs on all tested workloads and speeds up 40 operations over the \crust{} translations, 18 of which end up faster than the original C. It outperforms the general-purpose coding agent \codex{} on 31 of the 37 operations where both preserve C outputs, and outperforms its own variant without rule guidance on 34 of the 41 operations.
- Abstract(参考訳): Rustは、Cのメモリセーフな後継としてますます採用され、 \crust{}のようなトランスパイラは、その動作を維持しながら、Cプロジェクト全体を移行することができる。
ただし、動作の保存はパフォーマンスの保存を保証するものではない。
実世界の20のCプロジェクトとそれらの \crust{} 翻訳におけるこのギャップについて検討する。
分析に使用された8つのプロジェクトにおいて、翻訳されたRustは19のオペレーション中12のオリジナルのCよりも3\%以上遅く、62.2\%まで遅い。
C-Rustペア間の実行コストプロファイル、最適化されたLLVM IR、コンパイラ最適化のコメントを比較することで、これらのスローダウンを9つの繰り返し発生するパフォーマンス問題にトレースする。
次に、この問題を再利用可能な最適化ルールとしてエンコードして、変換されたRustのパフォーマンスを回復する、LLMベースのアプローチである‘ourtool{}’を提示する。
\ourtool{} は各プロジェクトをプロファイルし、ホット関数を見つけ出し、ルール固有のパターンとマッチさせる。
LLMは書き直し前に各ルールの書き直し条件をプロジェクトコンテキストに対してチェックし、機能検証とパフォーマンス検証の両方をパスした場合のみ書き直しを保持する。
12のホールトアウトプロジェクトから41の操作で、 \ourtool{}はテスト対象のすべてのワークロードでCの出力を保持し、40の処理を高速化し、そのうち18の処理はオリジナルのCよりも高速になる。
関連論文リスト
- Enhancing Software Engineering Through Closed-Loop Memory Optimization [50.418699819003486]
ソフトウェア工学 (SE) エージェントにおけるメモリ拡張のためのクローズドループフレームワークである ours を紹介する。
タスクに依存しない textbf ベンチマークとアノテーションのない textbf 最適化信号としての有用性を確立する。
その結果、SEエージェントは設定によって常に改善され、成功率で$uparrow5.25%、解決効率で$uparrow4.63%という絶対的なゲインが得られることが示された。
論文 参考訳(メタデータ) (2026-06-04T03:17:21Z) - ChunkFT: Byte-Streamed Optimization for Memory-Efficient Full Fine-Tuning [58.54940026861599]
textscChunkFTはメモリ効率の良い微調整フレームワークである。
textscChunkFTは、ネットワークアーキテクチャを変更することなく任意のサブテンソルの勾配計算を可能にする。
textscChunkFTは、既存のメモリ効率のベースラインを一貫して上回る。
論文 参考訳(メタデータ) (2026-05-20T13:44:44Z) - Translating Large-Scale C Repositories to Idiomatic Rust [12.221834497939897]
既存のC to Rustの変換テクニックでは、品質とスケーラビリティのバランスが取れない。
本稿では、効率的なリポジトリレベルのCから慣用的な安全なRust翻訳のための、完全に自動化されたパイプラインであるRustineを提案する。
論文 参考訳(メタデータ) (2025-11-25T18:42:46Z) - EvoC2Rust: A Skeleton-guided Framework for Project-Level C-to-Rust Translation [17.560908544319094]
EvoC2Rustは、完全なCプロジェクトを同等のRustに変換する自動化フレームワークである。
プロジェクトレベルの翻訳には骨格誘導翻訳戦略を採用している。
論文 参考訳(メタデータ) (2025-08-06T10:31:23Z) - SafeTrans: LLM-assisted Transpilation from C to Rust [5.6274106543826585]
Rustは、Cの"システム"プログラミング言語としてのメモリセーフな代替として、強力な競争相手である。
本稿では,大規模な言語モデル(LLM)がRustへのCコードの自動コンパイルを実現する可能性を評価する。
SafeTrans は LLM を使って,C コードを Rust にトランスパイルするフレームワークである。
論文 参考訳(メタデータ) (2025-05-15T21:05:33Z) - CRUST-Bench: A Comprehensive Benchmark for C-to-safe-Rust Transpilation [51.18863297461463]
CRUST-Benchは100のCリポジトリのデータセットで、それぞれが安全なRustとテストケースで手書きのインターフェースとペアリングされている。
我々は、このタスクで最先端の大規模言語モデル(LLM)を評価し、安全で慣用的なRust生成が依然として難しい問題であることを確認した。
最高のパフォーマンスモデルであるOpenAI o1は、ワンショット設定で15タスクしか解決できない。
論文 参考訳(メタデータ) (2025-04-21T17:33:33Z) - RustMap: Towards Project-Scale C-to-Rust Migration via Program Analysis and LLM [13.584956125542396]
Rustは、Cのパフォーマンスを維持しながら、優れたメモリ安全性を提供する。
C2Rustのような既存の自動翻訳ツールは、構文的、テンプレートベースの翻訳に依存しすぎている可能性がある。
本稿では,新しい依存誘導型大規模言語モデル (LLM) をベースとしたC-to-Rust変換手法であるRustMapを提案する。
論文 参考訳(メタデータ) (2025-03-22T11:57:45Z) - LLM-Driven Multi-step Translation from C to Rust using Static Analysis [27.122409727034192]
レガシー言語で書かれたソフトウェアをCからRustなどのモダン言語に翻訳することは、メモリ安全性を改善する上で大きなメリットがある。
LLM駆動型C-to-Rustゼロショット変換ツールであるSACTORを2段階の翻訳手法を用いて提案する。
SACTORは、既存の方法と比較して、より自然でRustに準拠した翻訳を生成する。
論文 参考訳(メタデータ) (2025-03-16T14:05:26Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。