がべーじこれくしょん

技術系とかいろいろ

TensorFlowでGPUを使用した学習中にシステムが勝手に再起動する問題

TensorFlowをGPUで回すと落ちる原因として考えられるものは、以下の2点です。

  1. nvidiaドライバの問題
  2. PSU(電源ユニット)の出力不足

2については、最近のTensorFlowコミュニティ2で議論されていたことです。多くの場合はドライバ側に問題があることが多かったのですが、電源ユニットの出力不足で落ちるということもどうやらあるようです。

ドライバの更新は、多くの場合トラブルの温床となりやすいです。nvidia側も、ドライバのアップデートで生じた問題にはあまり対応がよくありません。(特に、ゲーマーが不利益を被る場合を除いた場合、ドライバの修正がすぐになされることは期待できません)

そのため、1よりも先に、2が原因であることを疑った方がいいかもしれません。

1. nvidiaドライバの問題

nvidiaドライバのバージョンにより、システムがクラッシュしてしまうことがあります。

nividaドライバを最新にしてください。

2. PSUの出力不足

電源の出力不足により、GPUに十分な電力が供給されずに、システムごとクラッシュしてしまうことがあります。

対応策1

PSUをより出力の高いものに替えましょう。

対応策2

nvidia-smiコマンドを用いて、GPU側で消費電力に上限を設定します。

例えば、本来250WであるTITAN Xにおいて、電力上限を150Wに制限したい場合は、以下のようなコマンドを実行します。

$ sudo nvidia-smi --power-limit=150

ただ、上限をどこに設定すれば正常に動作するかどうかは、機種によります。

また、電力上限を設けるということは、GPUの機能が制限され、本来のパフォーマンスを発揮することができないということになります。

基本的には、PSUをより高出力のものに替えることをおすすめします。

参考

1 http://suprsonicjetboy.hatenablog.com/entry/2017/04/23/194959 2 https://github.com/tensorflow/tensorflow/issues/8858