MacのGPU/eGPUのVRAM(ビデオメモリ)を解放する方法

MacでもWindowsでも様々なアプリケーションの利用やYouTube・動画配信サービスなどでの動画視聴を続けていると当然のことながら、MacのGPUのVRAM(ビデオメモリ)容量を消費していき、VRAMの圧迫は特にeGPUなどではトラブルが起きやすい。

ここではRetina搭載Mac・あるいは4Kモニターを接続したMac限定ではあるが、システム終了や再起動をせずに手動でVRAM(ビデオメモリ)を解放(リセット)する方法を紹介する。

なお、間違えやすいがここで言うVRAMは、Macにトラブルが起きた際にリセットをすることが多いNVRAM(不揮発性ランダムアクセスメモリ)とは関係ないので注意。

VRAMの使用量を見る方法

VRAMリセットの前にまずMacのGPUのVRAM使用量をモニタリングするソフトウェア”iStat Menus”を紹介する。

なお、このソフトウェアを紹介する上で、管理人は一切の金銭的報酬などは受け取っていない。

このソフトウェアは有料であり、価格はプライマリユーザーが3台までインストールできるスタンダードライセンスが$12.95、5台までのMacにインストールできるファミリーパックが$16.19

有料ユーティリティソフトウェアの中では価格が高い部類に入るが、CPU・GPUの使用率や各デバイスのバッテリー残量表示、Macの各コンポーネントの温度の確認など、非常に多機能で無論GPUのVRAM使用量もチェックできる。

一瞬GPUのメモリクロックのことだと勘違いしそうになるが、赤線で囲った部分がVRAM使用量である。

その下の”プロセッサ”のグラフも一見GPUのコアクロックを表しているように見えるがGPU使用率を意味する。

この表示だと見にくいのでiStat MenusをカスタマイズしてメニューバーにパーセンテージでVRAM使用量を表示させると便利だろう。

ちなみに現状僕の知っている限り、こうしてMacのVRAM使用量をチェックできるのはこのソフトウェアだけである。

なお、iStat MenusはMac App Storeでも販売されているが、Appleの審査を通過するために機能が削られているので公式サイトから購入するようにしよう。

擬似解像度を切り替えてVRAMを解放する

では本題のMacのVRAMを解放(リセット)する手順を紹介する。

手順といっても非常に単純な話であり、”設定”から”ディスプレイ”の項目を選び”擬似解像度”を切り替えるだけである。

色々と実験してわかったのだが、MacのVRAM使用量は擬似解像度によって変わり、高い擬似解像度だとそれだけVRAMの使用量も増える。

また、その仕様上、擬似解像度を変更するとMacのVRAMが一気に解放される。

切り替えた後は単純に元の擬似解像度に戻せばOKだ。

画像のように擬似解像度を変更して元に戻すだけで一気にVRAM使用量は減る。

VRAMを解放して意味あるの?

当たり前だがVRAMを解放したとしても、再びアプリケーションの使用や動画鑑賞など一般的なタスクをすればVRAM使用量はどんどん増えていくため、一見こんなことをしても意味がないように思えるが、eGPUなど特殊な環境では割と重要だと僕は思っている。

通常macOSに限らずVRAM使用量はOSやドライバが管理し、VRAMが一杯になった場合は自動でVRAMを解放するかシステムメモリにページング(仮想割り当て)するが、eGPUなどの特殊な環境では自動によるVRAM解放やページングが上手くいかず、フリーズなどのトラブルを起こすことがあるように思う。

そういったフリーズを予防する意味で、例えば「動作が重い気がする」、「長時間Macを起動したまま」といった場合に手動でVRAMを解放することでフリーズなどを事前に防げる可能性がある。

ぶっちゃけて言ってしまえば気持ちの問題ではあるが、僕の環境の場合長時間eGPUを接続したMacを運用していると稀にフリーズが発生するため、長時間の運用後は上記の操作を実行してVRAMを解放するようにしている。

eGPUがフリーズする時は大抵動画を見ていたり、ハードウェアアクセラーションが効いたアプリを立ち上げている時であるため、VRAMの手動解放には一定の意味があるはずだ。

また、この擬似解像度変更操作によりmacOSの描画コアエンジンであるQuartzやそれを支えるOpenGL/Metalの処理にも変更が加えられるはずなので、VRAM解放以外にもそういったmacOSのレンダリングに関する部分がリセットされることも期待している。

まとめ

色々と御託を並べたが、実際のところVRAM手動解放にフリーズの予防効果があるのかはAppleの技術者にしか確かなことはわからないだろう。

ただ、eGPU使用環境においてはVRAMや描画情報がThunderbolt 3を介して高速でMacとeGPUの間でやりとりされており、擬似解像度の変更でVRAMを解放したりmacOSの描画処理に変更を加えることでeGPU・Mac間の伝送を安定させる効果があるのではないかと思う。

僕の経験するeGPUのフリーズは、フリーズというより”超スローモーションになって最終的に固まる”という症状のため、eGPUとMacの間での伝送に問題が生じているのが原因だと見ている。

だとすればこうした手動解放にもある程度の意味があるのではないか。

何より、擬似解像度を変更して元に戻すだけなので、手順はシンプルでありトラブルが起きる可能性も少ないため、試して損はないと思う。