今日訓練開始から50時間くらい経過した時にこんなエラーが出ました。
raceback (most recent call last): File ".\train.py", line 382, in <module> main(args) File ".\train.py", line 346, in main opt_cn.step() File "C:\ProgramData\Anaconda3\lib\site-packages\torch\optim\adadelta.py", line 76, in step acc_delta.mul_(rho).addcmul_(1 - rho, delta, delta) RuntimeError: CUDA error: the launch timed out and was terminated
初めて見たエラーだし、情報もそんなに無いしでどうしようかと思ったんですけど、解決したので違う誰かが同じように困ったら見れるように、ここに書いときます。
環境
- Windows10
- NVIDIA GeForce GTX 1070 with Max-Q Design
- CUDA 9.0
- PyTorch 1.0.0
原因
画面描画のためのGPUドライバの応答が無くなったとOSが判断した際に、GPUドライバを強制的に再起動するために起こります。
だそうです。
直し方
Windowsのレジストリでタイムアウト時間が設定できるようです。
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GraphicsDrivers
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GraphicsDrivers/DCI
の2箇所のディレクトリ内に DWORD値 の項目を追加します。
私はこの TdrLevel の項目を 0
に設定したら起こらなくなりました。 もし、心配なら、必要な時以外は規定の 3
にしておけばいいと思います。