NvidiaのエンジニアがLinuxカーネルに導入した変更が原因で、AMDのGPUにおいて性能低下が発生した。この変更は、PCI BARスペースを10TiB超に拡張しようとするもので、結果的にGPUが制限付きと誤認され、DMAアドレス空間が4GBに制限されたことが主因とされる。
幸いにも、同エンジニアは問題発覚後すぐに修正を加え、影響は最小限にとどまった。ライバル関係にあるNvidiaとAMDだが、オープンソースの領域では協調が重視されており、Linuxカーネル6.15-rc1にはこの修正が正式に取り込まれる見通しである。
リリースは5月末から6月初旬が予定されており、Linux上でAMD GPUを利用するユーザーにとって安心材料となりそうだ。
意図せぬ変更が引き起こした性能低下の構造

今回の問題は、NvidiaエンジニアがLinuxカーネルにコミットした、PCI BARスペースを10TiB以上に拡張する変更が発端となった。これは大容量メモリ空間を持つシステムへの対応を見越したものとされるが、AMDのRadeon GPUに対しては逆効果となった。具体的には、カーネルがGPUのDMAアクセスを誤って制限付きと判断し、DMA32ゾーン、つまり4GBのメモリ空間しか利用できない状態へと追い込まれた。これにより、性能が大幅に低下する結果を招いた。
加えて、カーネルが物理メモリマッピングの上限を64TiBに設定したことで、KASLRエントロピーの減少という副次的な影響も指摘されている。これはセキュリティ機構としての重要な要素を損なうリスクを含んでおり、単なる性能問題にとどまらない技術的課題を浮き彫りにした。今回の事例は、特定の目的に適した最適化が、他の環境や構成に対して思わぬ障害を生むことを示している。
オープンソースならではの迅速な対応とその意味
この障害は、Nvidiaのエンジニア自身が原因を生んだという点で特異であるが、それ以上に注目すべきはその対応の早さである。パフォーマンス低下の原因特定から修正までの流れは極めて迅速で、Linux 6.15-rc1のマージウィンドウが閉じる前に修正が含まれる見込みとされる。このスピード感は、Linuxカーネルが持つオープンな貢献文化と、熟練した開発者による責任意識の高さによるものだ。
競合関係にあるNvidiaとAMDであっても、FOSS(Free and Open Source Software)という枠組みの中では協調が不可欠となる。今回の修正も、特定のベンダーを利する行動ではなく、カーネル全体の健全性を保つための措置と見るべきである。商業的利害を超えて機能的安定を重視する姿勢は、今後のオープンソース社会における信頼形成の鍵となりうる。
Linux上のGPU環境と今後の安定性への期待
今回の一件は、Linux上でGPUを活用するすべてのユーザーにとって無視できない示唆を含んでいる。特にAMD製GPUを統合または専用で使用している環境では、パフォーマンスの変化が日常的な操作やワークロードに直接影響する。64TiBへの設定によって本来の能力を引き出せなかったケースは、設計上の前提を外れた動作が思わぬ結果をもたらすことを物語っている。
とはいえ、修正はすでに施され、Linux 6.15の正式リリースが5月末から6月初頭に予定されている点は安心材料である。今後のLinuxカーネル開発においても、特定の構成を前提とした変更が、他の環境へ与える影響をより慎重に検討する必要がある。多様なハードウェア構成に対応するための柔軟性が、Linuxの強みである以上、それを損なわない調整が求められるだろう。
Source:Tom’s Hardware