FOSSはレッドとグリーンを結びつける。
驚くべきことに、NvidiaのエンジニアがLinuxカーネルに修正を加え、AMDの統合GPUおよび専用GPUハードウェアで見られたパフォーマンスのリグレッションを解決した(Phoronixより)。
先週、同じエンジニアがカーネルに一連の変更を加え、PCI BARスペースを10TiB以上に増やそうとしたことで、不注意にも最初の問題が発生したことが判明した。
これはGPUに制限フラグを誤って立て、パフォーマンスを低下させる結果となったが、ありがたいことにすぐに修正された。
オープンソースのパラダイムでは、壊したものは直すのが不文律だ。Linuxカーネルはオープンソースであり、誰からのコントリビューションを受け入れ、それをレビューする。
責任ある貢献者は、自分の変更によって生じた問題の修正に協力することが期待されている。
つまり、GPU市場におけるライバル関係にもかかわらず、FOSS(フリー・オープンソース・ソフトウェア)はAMDとNvidiaの間の溝を埋める手段なのだ。
このリグレッションは、PCI BARスペースを10TiB以上に増やすことを意図したコミットによって引き起こされた。
これは、消費者向けx86デバイスのKASLRエントロピーと呼ばれるファクターを間接的に減少させるもので、セキュリティ目的のために、カーネルのデータがブートごとにメモリにロードされる場所のランダム性を決定する。
同時にこれは、カーネルがアクセス可能なメモリの範囲(direct_map_physmem_end)を人為的に拡大するもので、通常は64TiBまで拡大される。
Linuxでは、メモリは異なるゾーンに分割され、その1つがGPUに関連付けられるゾーンデバイスです。ここでの問題は、カーネルがRadeon GPUのゾーンデバイスメモリを初期化する際に、カーネルがアドレス可能なRAMの合計を表す関連変数(max_pfn)が人為的に64TiBに増加することです。
GPUは64TiBの全範囲にアクセスできない可能性が高いため、dma_addressing_limited()にTrueのフラグを立てます。この変数は本質的にGPUがDMA32ゾーンを使用するよう制限します。
良いニュースは、この修正がプル・リクエストが届き次第、Linux 6.15-rc1のマージ・ウィンドウが今日閉じる直前に実装されることだ。
新しいLinuxカーネルがリリースされるまでの一般的なスケジュールは6~8週間なので、6.15の安定版リリースは5月下旬から6月上旬頃になると予想される。
ソース:Tom's Hardware - Nvidia engineer breaks and then quickly fixes AMD GPU performance in Linux
解説:
NVIDIAのエンジニアがオープンソースのLinuxでAMDのiGPUの性能を低下させる変更を行い、すぐに修正したという話です。
確かになかなか面白い話ですね。
オープンソースでは所属している企業に関係なく、性能低下を引き起こす変更を行った場合、後始末は自分でつけるのが不文律となっているようです。
データセンター用のAIで追う追われるの立場になっているAMDとNVIDIAでこういう関係になっているのは面白いです。
現実にはあり得ないですが、AMDは自社のソフトウェア開発の弱さを解決するための手段の一つとしてオープンソースを活用していますので、今後もこういうことは起きうるのではないかと思います。
ROCmなどでは現時点でもオープンソースを通じて多くのユーザーがメーカーがコミットできない分野で利便性を向上させるために労力をつぎ込んでいます。
メーカーとしては面白くないところも確かにあるのでしょう。
しかし、1ユーザーとしてはメーカーが立ち入らない立ち入れない領域にユーザーが労力を提供して利便性を向上してくれる仕組みというのはありがたいですし、希望を感じてしまうところです。
肯定はできなくても、せめて肯定的に放置してほしい・・・というのはやはり虫が良すぎるのでしょうか?
ROCmの未来にも期待したいところです。
Ryzen 9000シリーズ
Ryzen 7000X3Dシリーズ
Ryzen 8000GシリーズAPU(GPU内蔵)
Ryzen 5000/4000シリーズ