JUNのブログ

JUNのブログ

活動記録や技術メモ

[PyTorch] RuntimeError: CUDA error: the launch timed out and was terminated

今日訓練開始から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

初めて見たエラーだし、情報もそんなに無いしでどうしようかと思ったんですけど、解決したので違う誰かが同じように困ったら見れるように、ここに書いときます。

環境

原因

画面描画のためのGPUドライバの応答が無くなったとOSが判断した際に、GPUドライバを強制的に再起動するために起こります。

OpenCL1.1 泥沼メモ 【解決編】 より

だそうです。

直し方

Windowsレジストリタイムアウト時間が設定できるようです。

  1. HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GraphicsDrivers
  2. HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GraphicsDrivers/DCI

の2箇所のディレクトリ内に DWORD値 の項目を追加します。

  • TdrLevel
    • 「0」:検出無効・・・タイムアウトしない
    • 「1」:回復なしでバグチェック
    • 「2」:VGA への回復(?) 「3」:タイムアウト時に回復する(既定)

私はこの TdrLevel の項目を 0 に設定したら起こらなくなりました。 もし、心配なら、必要な時以外は規定の 3 にしておけばいいと思います。

参考サイト