
驚くべき展開で、NVIDIAのエンジニアがLinuxカーネルに修正をプッシュし、AMDの統合型および専用GPUハードウェアで発生していたパフォーマンス低下を解消しました(Phoronix経由)。ところが、同じエンジニアが先週、PCI BAR空間を10TiB以上に増やそうとしたカーネルへの一連の変更によって、意図せずこの問題を引き起こしてしまったことが判明しました。この変更により、GPUが制限されていると誤って認識され、パフォーマンスが低下しましたが、幸いにもすぐに発見され、修正されました。
オープンソースのパラダイムでは、壊れたものは直すのが暗黙のルールです。Linuxカーネルはオープンソースであり、誰もが貢献し、レビューを受けます。責任ある貢献者は、自身の変更によって生じる問題の修正に協力することが期待されています。そのため、GPU市場における両社のライバル関係にもかかわらず、FOSS(フリー・オープンソース・ソフトウェア)はAMDとNvidiaの間の溝を埋める手段となっています。
このリグレッションは、PCI BAR空間を10TiB以上に拡張することを意図したコミット(おそらく大容量メモリ空間を持つシステム向け)によって引き起こされました。これにより、コンシューマー向けx86デバイスにおいて、KASLRエントロピーと呼ばれる要素が間接的に低下しました。KASLRエントロピーは、セキュリティ上の目的で、各ブート時にカーネルデータがメモリにロードされる場所のランダム性を決定する要素です。同時に、カーネルがアクセス可能なメモリ範囲(direct_map_physmem_end)が人為的に増加し、通常は64TiBにまで達していました。
Linuxでは、メモリは複数のゾーンに分割されており、そのうちの1つがGPUに関連付け可能なゾーンデバイスです。ここで問題となるのは、カーネルがRadeon GPUのゾーンデバイスメモリを初期化する際に、カーネルがアドレス指定可能なRAMの総量を表す関連変数(max_pfn)が、人為的に64TiBに増加してしまうことです。
GPUは64TiBの範囲全体にアクセスできない可能性が高いため、dma_addressing_limited()をTrueに設定します。この変数は基本的にGPUがDMA32ゾーンを使用するように制限しますが、DMA32ゾーンでは4GBのメモリしか利用できず、これがパフォーマンスの低下の原因となります。
朗報としては、この修正はプルリクエストが届き次第、Linux 6.15-rc1のマージウィンドウが本日終了する直前に実装される予定です。新しいLinuxカーネルのリリースまでは通常6~8週間かかるため、安定版6.15リリースは5月下旬から6月上旬にかけて提供されると予想されます。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
ハッサム・ナシルは、長年の技術編集者兼ライターとしての経験を持つ、熱狂的なハードウェア愛好家です。CPUの詳細な比較やハードウェア全般のニュースを専門としています。仕事以外の時間は、常に進化を続けるカスタム水冷式ゲーミングマシンのためにチューブを曲げたり、趣味で最新のCPUやGPUのベンチマークテストを行ったりしています。