← 最新の論文
💬 自然言語処理

CrossTL: Hub-Based Translation of GPU Programs and the Preservation of Source Rules

本論文は、ルールを保持する中間言語(CrossGL)を介して10のGPU言語を11のターゲットへとルーティングする、ハブ型のオープンソース・トランスレータであるCrossTLを紹介するものであり、ソース固有のセマンティックなルールを明示的に保持することが、構文のみに依存するアプローチと比較して翻訳の乖離を大幅に減少させることを実証しているが、基盤となる実装の非適合性により完全な正当性を保証することはできず、大規模なサードパーティ製コードに対するユーザビリティの向上もわずかなものにとどまっている。

原著者: NRIPESH NIKETAN, VAATSALYA SHRIVASTVA, BHUSHAN SRIVASTAVA, SUSHANT MISHRA

公開日 2026-10-20✓ Author reviewed ⓘ
📖 1 分で読めます☕ さくっと読める

原著者: NRIPESH NIKETAN, VAATSALYA SHRIVASTVA, BHUSHAN SRIVASTAVA, SUSHANT MISHRA

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 ✨ これは以下の論文のAI生成解説です。著者が執筆したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

現代のビデオゲーム、科学シミュレーション、そして人工知能はすべて、グラフィックス・プロセッサ上で動作する特殊な種類のコンピュータ・プログラムに依存しています。これらのチップは、一度に大量の計算を行うことに非常に長けていますが、数値の扱い方については非常に好みが分かれます。Apple、NVIDIA、AMDといったこれらのチップを製造する各社は、これらのプログラムを記述するために異なる言語を使用しています。これらの言語は表面上は似ていますが、算術の最も基本的なルールにおいて意見が食い違うことがよくあります。例えば、ある言語では、ある数値を自分自身に加えた結果が大きすぎる場合に、結果が小さな負の数へと「ラップアラウンド(回り込み)」すると規定している一方で、別の言語では、その操作は未定義であり、何が起こるかわからないと規定している場合があります。開発者があるタイプのチップ向けにプログラムを書き、それを別のタイプのチップへ移行しようとする際、翻訳ツールはそのどのルールに従うべきかを決定しなければなりません。もしこの判断を誤れば、プログラムはコンパイルされ実行はされるものの、誤った答えを導き出し、ゲームのクラッシュや科学データの破損を引き起こす可能性があります。

研究チームは、これらのグラフィックス・プログラムのための「ユニバーサル・トランスレーター(汎用翻訳機)」を構築することで、この問題の解決に取り組みました。彼らは、中心的なハブとして機能するCrossTLと呼ばれるシステムを開発しました。あらゆる言語の組み合わせに対して個別の翻訳機を作る代わりに、彼らのシステムは10種類の異なるソース言語からコードを受け取り、それを単一の中立的な形式に変換してから、11種類の異なるターゲット言語へと送り出します。彼らが直面した核心的な課題は、この中立的な形式自体には、特定のコードがどの特定のルールに従うべきであったかという記憶がないことでした。それは単純な加算記号を見ても、その記号が「ラップアラウンド」を意味するのか、それとも「停止してエラーを出す」ことを意味するのかを判別できないのです。この記憶がなければ、翻訳機は意図せずプログラムの意味を変えてしまい、コードは実行されるものの計算結果が誤っているという「サイレント・フェイラー(静かな失敗)」を招く恐れがあります。

これを解決するために、研究者たちは「ルール・キャリング(ルール運搬)」と呼ばれる手法を開発しました。彼らは、遭遇するすべての数学的演算に対して、特定の「メモ」を付与するように翻訳機を改良しました。このメモは、元の言語がその演算に対してどのルールを使用したかを正確に記録します。コードがハブを経由して新しいターゲット言語へと向かうとき、翻訳機はこのメモをチェックします。もしターゲット言語が同じルールに従っている場合は、その演算をそのまま通過させます。もしターゲット言語が異なるルールに従っている場合は、翻訳機はその演算を、ターゲットにソースと全く同じ挙動を強制させるためのカスタムメイドのコードへと置き換えます。これにより、基礎となる言語の違いに関わらず、プログラムが新しいハードウェア上でも旧来のハードウェアと同じ結果を算出できることが保証されます。

チームは、このシステムを「ハザード・カーネル」として設計された66種類の厳密に設計されたテストプログラムを用いて徹底的に検証しました。これらのテストは、ゼロ除算や数値の加算によるオーバーフローなど、言語間でルールが食い違う箇所を誘発するように設計されています。彼らは、Appleのグラフィックス・プロセッサやいくつかのオープンソース・ドライバーを含む、さまざまな実世界のハードウェアおよびソフトウェア環境でこれらのテストを実行しました。その結果、彼らの新しい手法を用いない場合、既存の翻訳ツールは多くのケースで正しいルールを見失い、誤った出力を生成することが示されました。研究者たちがルール・キャリング機能を有効にすると、システムはほぼすべての事例において正しい挙動を維持することに成功しました。数百回のテスト走行のうち、エラーの数は劇的に減少しましたが、残ったわずかな失敗は、翻訳ロジック自体の欠陥ではなく、特定のドライバーによるコードの処理における特有の癖に起因するものでした。

また、この研究では、機械学習ライブラリからグラフィックス・エンジンに至るまで、サードパーティによって書かれた数千の現実世界のプログラムにおけるこの新手法の性能についても調査しました。研究者たちは、この新システムは、既存のツールと比較してコンパイラが受理できるコードを生成する確率がわずかに低いものの、コンパイルされたコードが実際に正しく動作するという点においては、はるかに信頼性が高いことを発見しました。実際、この新手法によるコードの成功率の変化は1パーセント未満であり、既存のワークフローを壊すことなく導入できることが証明されました。研究者たちは、翻訳機が真に忠実であるためには、単に構文を別の言語へ移動させるだけでなく、ソース言語の「意味論的なルール(セマンティック・ルール)」を道連れにして、プログラムの意味が旅の間も損なわれることなく維持されるようにしなければならないと結論付けました。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →