深層学習でGPUのメモリ不足に直面したら

はじめに

Deep Learningの学習にはGPUのメモリが必要になります。
不足に直面した時に実際試して効果がありそうと感じた方法をいくつか紹介します。
他のソフトウェア(ゲームやブラウザなど)に影響がありますのであくまで用途を限定して参考にしてください。

画面描画

デスクトップPCならモニターへの出力をマザーボードから行いましょう。これによって画面描画がCPU内蔵GPUで行われます。
ただしこの方法はGPUが付属しているCPUに限定されます。
Intel CPUの場合末尾にFがつくものはGPUが付属していません)
モニターへつなぐHDMIなどのケーブルをマザーボードにさすだけでは画面が映らないこともあります。その場合はBIOSでの設定変更が必要です。BIOS画面はメーカーによってまちまちなので一概には言えませんが自分は2か所の設定を変更する必要がありました。
内臓GPU  「無効」→「有効」に変更
グラフィック 「NVIDIA・・・を優先」→「内臓GPUを優先」

ノートPCでは上記方法は不可能です。
2画面、3画面に拡張している場合にはそれをやめることで多少変わります。

ハードウェアアクセラレータによるGPUスケジューリング

「ハードウェアアクセラレータによるGPUスケジューリング」をオフにしました。

f:id:touch-sp:20211123102546p:plain

3D設定の管理

優先グラフィクスプロセッサを「統合型グラフィックス」に変更しました。
こちらに関しては効果あるかどうかよくわかりません。
f:id:touch-sp:20211126142708p:plain:w500

その他

後はモデル学習時に batch size を下げるしか方法が思いつきません。

さいごに

最近RTX 3060 Laptop搭載のノートPCを買いました。

touch-sp.hatenablog.com
GPUメモリが6Gしかないのでやや不足を感じています。


なるほど6Gだとこういうことをする時に厳しいのかと分かっただけで収穫としましょう。そう思わないと無駄な買い物になってしまいます(笑)。


そもそもノートPCでDeep Learningの学習をしようとするのに無理があったのかもしれません。


間違いや改善点があればコメント頂けましたら幸いです。またほかにこのような方法があるよと知っている方は教えて頂けたらうれしいです。