目的
Jupyter Notebook上でTensorflow GPUで実行していると、さっき動いたタスクが動かなくなるという状態がちょいちょい起きました
調べて時間がかかった割には簡単なことだったので、私と同じ初心者のために、私のとった解決策をまとめてみました
おそらく当たり前のことでしょうが、私には時間がかかったので
#環境
Windows10
GPU NVIDIA RTX2070 SUPER
Jupyter Notebook 6.0.1
Python 3.7.4
Tensorflow-gpu 1.14.0
#現象
実行実績のあるTensorflowでGPUを使った計算を流そうとするとエラーがでる
具体的には
(0) Internal: Blas GEMM launch failed
の様なエラーが出る
#試してみた対処方法
再度実行する(もちろんだめ)
Notebookを一度閉じる(効果なし)
とりあえずOSをリブートすると解消する
#調べて分かったこと
GPUは負荷が少ないのに、メモリがいっぱいいっぱいまで確保されている
簡単な対処法としてはデバイスマネージャーのディスプレイアダプタのドライバをオフ、オンする(一応解決するが、あまりやりたくない)
#根本解決手法
そもそも別のNotebookで計算を流した後に、別の計算を流そうとした際にエラーがでることが気が付き、前の計算のNotebookをJuypter Notebook上でShutdownしてみると、GPUのメモリが解放されたことを確認
結果的にはJupyter Notebookでは計算が終わってもプロセスが残るのでGPUのメモリが解放されないということのようですね
#対処法まとめ
GPUを使った計算でエラーが出た際には、プロセスマネージャーでGPUのメモリを確認し、確保されてしまっている場合には、
1.Notebook上で以前のプロセスをShutdownする
2.それでもだめな場合はデバイスマネージャー上でディスプレーアダプタのドライバをオフ、オンする
3.最後の手段をWindowsをリブート
が対処法となるようです