Linux 7.3でvRAM不足時のパフォーマンスが大幅改善!劇的な安定化の裏側とは?
Linux 7.3 improves performance when running out of vRAM
Linux 7.3 improves performance when running out of vRAM
Linuxカーネル 7.3のアップデートにより、vRAM(ビデオメモリ)が不足した際のシステムパフォーマンスが改善されました。これまでvRAM不足時に発生しがちだったカクつきや動作の低下が抑えられ、より安定した動作が期待できます。VRAMリソースの管理効率が見直されたことで、GPU負荷の高い作業やゲームプレイ時のストレスが大きく軽減されそうです。
すごく丁寧に書かれていて勉強になる。Linuxカーネル開発にこれほど情熱的な人たちがいるのは本当に嬉しいね!
あえて聞くけど、これって計算ワークロード、特にLLMの推論にはどう影響するの?何かしら意味があることなのか、それとも純粋にゲーム限定の話なのか気になる。
素晴らしい記事だね。Linuxカーネル関連の記事を読むたびに新しい発見があるよ。優先度付きのLRUなら、特定のアプリに特化させすぎなくてもゲームのVRAM管理をうまくこなせそうな気がする。それはそうと、VRAMからディスク(NVMe)への退避についてはどうだろう。大規模なワークロードで直接ディスクを使うことは実現可能なのかな?PCIE経由でアセットをストリーミングする手法はあるけど、GPU VRAMの代わりとしてNVMeをスワップに使った場合、計算ワークロードでどれくらいのパフォーマンスが出るのか興味がある。
いやはや、7.2が出たばかりなのにパフォーマンスやゲーミング関連の改善(large folios、キャッシュを意識したスケジューリング、MGLRU再利用の改善、Fair GPU Schedulerなど)が山盛りで最高だね。もう7.3が待ち遠しくて仕方ないよ。その一方でWindowsの世界では、ユーザーはアップデートを「嫌って」いるよね……。「うわー、次のパッチチューズデーが待ち遠しい!」なんて叫んでいるユーザーなんて、正直一人も思いつかないよ。
素晴らしい記事だ!私も著者と同じ直感を持ってる。メモリを割り当てる際、どのデータがVRAMに残るべきかを一番よく分かっているのは結局アプリケーション自身だからね。カーネルができるのは「推測」することだけだよ。あと余談だけど、低レイヤーのパフォーマンスエンジニアリングにおいて、若いトランスジェンダーの人たちがこれほど貢献しているという事実は、本当に敬服する。
RAMがいっぱいになった時に、PCがフリーズして使えなくなる状況をなんとかしてほしい……。LinuxとWindowsで仕組みが違うのは覚えてるけど、Windowsだとこんな問題起きないんだよね。
この記事はパフォーマンスに焦点を当てているけど、VRAMが満杯になってメモリが確保できずアプリがクラッシュする問題についてはどうなんだろう?昔、2GBメモリのNVIDIA 750 Tiを使っていた時、FirefoxやGhosttyターミナル(両方ともGPUアクセラレーションを使用)をいくつか開くだけで、それらのアプリがクラッシュしたり描画できなくなったりしたよ。時々コンポジター(kwinやniriなど)まで不安定になって、数時間ごとに再起動が必要だった。システム全体がめちゃくちゃ不安定でね。この問題はWaylandだけで起きていて、X Window Systemに切り替えたら解決したんだ。その後AMD RX 480 (8GB) に乗り換えたらWaylandでも一切問題なし。GPUメモリが溢れても、スムーズにシステムメモリを使ってくれるようになったよ。NVIDIAのカードを使っていた時は、VRAMが足りなくなってもシステムメモリに退避してくれない感じだったんだ。しかも同じNVIDIAカードでもWindowsなら10年以上ノントラブルだったから、Linux特有の問題だよね。NVIDIAのフォーラムでも何年も同じ報告が山ほどあった。9ヶ月前にブログに詳細やデモ動画(https://nickjanetakis.com/blog/gpu-memory-allocation-bugs-with-nvidia-on-linux-and-wayland-adventures )をまとめたけど、結局AMDに変えたことでその多くは解決したよ。
私のUbuntu 24システムで変なことが起きてるんだけど、たとえ他のプロセスがメモリを食いつぶしていても、なぜかFirefoxだけが殺されるんだよね。Chromeがメモリを使いすぎてもFirefoxが死ぬし、アプリを開きすぎてもFirefoxが死ぬ。笑えてくるよ。
CPUとGPUで16GBを共有しているZ1 Extreme(AMDいわくAPU)を使っているんだけど、SteamOSのパフォーマンス診断ツールであるmangohudで見ると、RAMとVRAMの合計値が16GBを超えることがよくあるんだよね。なぜなのかずっと気になってたんだけど、圧縮か何かの仕組みが関係してるのかな。
かなり画期的な改善に見えるし、早くメインラインに統合されることを願ってるよ。残念ながら今はNVIDIAを使っていてVRAMで苦労しているんだ。あちらはページングを全くサポートしていないみたいだし。仮想メモリのフラグメンテーションについての記述も気になる。カーネルが時々その場でメモリをデフラグするってのはどうだろう?一瞬カクつくかもしれないけど、パフォーマンスは上がるし、より多くのアプリを収められるようになるかもしれないよね。