9月9日、Phoronixが「AI Made A Lot Of "Hideous" Code But Found Major Bottlenecks For Faster Linux Compilation」と題した記事を公開した。ARMのエンジニアがLLM(大規模言語モデル)を活用し、長年の課題だったLinuxカーネルのビルド時間を最大90%短縮するボトルネックを特定・改善したパッチセットが、カーネル開発コミュニティで話題を呼んでいる。
Linuxカーネルのフルビルドは、多コアマシンを使っても数分から十数分を要する。開発者が日々繰り返す差分ビルドや変更なしのビルドのたびにこの時間が積み重なるため、ビルド速度の改善は開発サイクル全体に直結する。今回の取り組みは、その「積み重なるコスト」に正面から取り組んだものだ。
36〜90%の高速化を実現した23本のパッチ
ARMのエンジニアで長年のLinux開発者でもあるLorenzo Stoakes氏が、9月8日に計23本のパッチセットをLinuxカーネルのメーリングリストに投稿した。目的はカーネルビルドプロセス全体に点在するシングルスレッドのボトルネックを解消し、タスクの並列化を推進することだ。
性能改善の結果は以下の通りである:
- 全モジュール有効のフルビルド:約36%高速化
- インクリメンタルビルド(変更差分のみを再コンパイルするビルド):最大70%高速化
- noopビルド(変更がないのに走るビルド):最大約90%高速化
インクリメンタルビルドやnoopビルドは、カーネル開発者が1日に何十回と実行する場面が多い。最大90%の削減はループタイムに直結し、開発体験を大きく変えうる数字だ。複数のハードウェア構成・カーネル設定にまたがるベンチマークでも、一貫した改善が確認されている。現行のビルド時間のベースラインはOpenBenchmarkingで参照できる。
LLMはボトルネック探偵として機能した
このパッチセットで特筆すべきは、開発プロセスにLLMが深く関与した点だ。Stoakes氏はパッチのカバーレターに次のように書いている:
「LLMをまずボトルネックの特定に使い、次にその改善方法の検討に使った。大量のコードを生成したが、その多くは醜いものだった。私は広範囲にわたって監査・書き直しを行い、コミットメッセージやカバーレター、コメントも大幅に編集した。LLMはビルド実行、テスト、デバッグ、分析のオーケストレーションも担った。ビルドの正しさと、このシリーズを適用して生成されたカーネルの動作は手動で確認した。性能改善についても手動で検証済みだ。LLMを広範に使用したため、各コミットにはAssisted-byタグを付与している。」
「Assisted-byタグ」とは、Gitのコミットメタデータに付与する属性で、コードの生成や補助にツール・AIが関与したことを明示するものだ。生成AIのコード利用が増える中で、透明性確保の手段として採用例が増えつつある。
LLMが担ったのは「何が遅いか」を探り出す分析フェーズと、改善コードの初稿生成である。Stoakes氏はその出力を全件レビューし、品質を確保した上でパッチに仕上げている。生成コードをそのままコミットしたわけではなく、エンジニアが主導しLLMを道具として使ったという構図だ。
改善対象となった領域
並列化・効率化が施されたのは以下のコンポーネントである:
- **Kbuild**(Linuxのビルドシステム本体)
- kallsyms(カーネルシンボルテーブルを生成するツール。デバッグや
/proc/kallsymsに利用される) - modpost(カーネルモジュールのシンボル依存関係を解析するポスト処理ツール)
- **objtool**(オブジェクトファイルを解析しスタック情報の正当性などを検証するツール)
- mksysmap(ビルド成果物である
System.mapを生成するスクリプト) - Rustビルドシステム(LinuxカーネルへのRust統合部分。Linux 6.1からRustサポートが開始されている)
これらはいずれもビルドパイプラインの中でシリアル処理(順次処理)が残っていた箇所であり、並列化の余地が大きかった領域だ。
今後の見通し
このパッチシリーズはまだレビュー待ちの段階であり、mainlineへのマージが確定したわけではない。ただし性能改善の幅が大きく、対象コンポーネントも明確なため、今後の議論が注目される。パッチの全内容はlore.kernel.orgのスレッドで確認できる。
AIをOSS開発の補助ツールとして使う事例は増えつつあるが、今回のように「ボトルネック特定→初稿生成→人間による全件レビュー」というワークフローを明示的に透明化してコミュニティに提示した事例は少ない。生成AIをどこまで信頼し、どこから人間が責任を持つか――そのバランスの一例として、開発者コミュニティで議論を呼びそうだ。
詳細はAI Made A Lot Of "Hideous" Code But Found Major Bottlenecks For Faster Linux Compilationを参照していただきたい。