昨日MinerGateで手軽にマイニングで書きましたMinerGateですが、その後もマイニングを続けていると、GPUマイニングが時々止まってしまうという現象が発生することがわかりました。
問題の現象
頻繁に発生するわけではないのですが、忘れたころにふと確認すると止まっているという状況ですので、長時間連続実行することが前提のマイニングソフトとしては厄介です。
また一旦この状態に陥ると、しばらく実行ボタンを押してもGPUマイニングが開始されず、何度かアプリの再起動などを行っているうちにまた実行できるようになる、といった状況です。
原因の調査
この問題の原因を調査するため、採掘ソフトのログを確認してみることにしました。ログは採掘ソフトのメニューの「Logs」→「MinerGate」で見ることができます。
ログの内容を確認した結果、問題が発生した時刻に以下のようなエラーメッセージ出ていることがわかりました。
cudaMemGetInfo error: all CUDA-capable devices are busy or unavailable
エラーメッセージの内容からして、採掘ソフト以外の何らかのプロセスがGPUを握りこんでしまい、GPUが使えなくなっている状況かと推測しました。
GPUを使う採掘ソフトやゲームを複数並行して実行するようなことはしていないのですが、1つだけ思い当たる節がありました。
うちではGmailとGoogleカレンダーをよく使いますので、ShiftというGmail、Googleカレンダー、Googleドライブの統合ブラウザのようなアプリを使っているのですが、これが3D要素など一切ないインターフェースのように見えるのになぜかGPUを使いにいくのです。
ゲームと採掘ソフト以外でGPUを使っているのを確認できたのは、このアプリだけです(これはNVIDIA コントロールパネルでGPU アクティビティ アイコンを通知領域に表示するよう設定すると、そこで確認できます)。
問題の対処
とりあえずこのShiftがGPUを使用しないように設定したいと思い方法を調べてみると、NVIDIA コントロールパネルの「3D設定の管理」で指定できることがわかりました。
まず「3D設定の管理」画面内の「プログラム設定」タブを開き、「1.カスタマイズするプログラムを選択する」のドロップダウンボックスでShiftを選択します(ドロップダウンボックスに出てこない場合は「追加」ボタンで追加します)。
次に「2.このプログラム用の優先するグラフィック プロセッサを選択する」で「統合型グラフィックス」を選択します。
これでShiftはGPUを使用せず、Intel 統合グラフィックスで動作するようになります。
この設定をしたあとでマイニングを数時間動かしてみましたが、今度は停止する現象が発生しませんでしたのでうまく対処できたようです。