71

メモリがフラッシュされる前に、実行中にCUDAプログラムがクラッシュしました。その結果、デバイスのメモリは占有されたままになりました。

サポートされていないGTX580で実行していnvidia-smi --gpu-resetます。

プログラムの先頭に配置cudaDeviceReset()すると、プロセスによって作成された現在のコンテキストにのみ影響し、その前に割り当てられたメモリはフラッシュされません。

そのGPUを使用してFedoraサーバーにリモートでアクセスしているため、物理的なリセットは非常に複雑です。

したがって、問題は-この状況でデバイスメモリをフラッシュする方法はありますか?

4

8 に答える 8

138

GPUメモリを使用しているものを確認してください

sudo fuser -v /dev/nvidia*

出力は次のようになります。

                     USER        PID  ACCESS COMMAND
/dev/nvidia0:        root       1256  F...m  Xorg
                     username   2057  F...m  compiz
                     username   2759  F...m  chrome
                     username   2777  F...m  chrome
                     username   20450 F...m  python
                     username   20699 F...m  python

次に、不要になったPIDを強制終了しますhtop

sudo kill -9 PID.

上記の例では、Pycharmが大量のメモリを消費していたため、20450と20699を強制終了しました。

于 2017-10-06T02:07:10.920 に答える
43

最初のタイプ

nvidia-smi

次に、強制終了するPIDを選択します

sudo kill -9 PID
于 2018-12-14T08:24:45.630 に答える
16

例外的な状況以外ではこれを行う必要はありませんが、Linuxホストでこれを行うための推奨される方法は、次の方法でnvidiaドライバーをアンロードすることです。

$ rmmod nvidia 

適切なルート権限を使用して、

$ modprobe nvidia

マシンがX11を実行している場合は、事前に手動で停止し、後で再起動する必要があります。ドライバーの初期化プロセスでは、デバイスの以前の状態をすべて排除する必要があります。

この回答はコメントから集められ、コミュニティwikiとして投稿され、CUDAタグの未回答リストからこの質問を削除します。

于 2014-05-18T12:18:14.923 に答える
12

私も同じ問題を抱えていました、そして私はクォーラで良い解決策を見ました

sudo kill -9 PID.

https://www.quora.com/How-do-I-kill-all-the-computer-processes-shown-in-nvidia-smiを参照してください

于 2017-07-19T13:26:21.887 に答える
7

Pythonを使用しているものの場合:

import torch, gc
gc.collect()
torch.cuda.empty_cache()
于 2020-03-31T09:34:31.487 に答える
6

を使用することもできますnvtop。これは、と非常によく似たインターフェイスを提供しますhtopが、代わりにGPUの使用状況を素敵なグラフで表示します。ここから直接プロセスを強制終了することもできます。

Githubへのリンクは次のとおりです:https ://github.com/Syllo/nvtop

NVTOPインターフェース

于 2020-04-10T09:57:26.327 に答える
5

macOS(/ OS X)で、他の誰かがOSに問題があり、明らかにメモリリークが発生している場合:

  • https://github.com/phvu/cuda-smiは、空きメモリをすばやく確認するのに役立ちます
  • アプリケーションを終了すると、使用しているメモリが解放されるようです。不要なものをすべて終了するか、アプリケーションを1つずつ終了して、使用されているメモリの量を確認します。
  • それでも問題が解決しない場合(約10個のアプリケーションを終了すると約500MB / 15%が解放されます)、最大の消費者はWindowServerです。強制終了することもできます。これにより、実行中のすべてのアプリケーションが強制終了され、ログアウトされます。しかし、再起動よりも少し速く、cudaデバイスの90%の空きメモリに戻りました。
于 2016-10-12T21:54:07.323 に答える
1

OSの場合:UBUNTU20.04ターミナルタイプで

nvtop

消費アクティビティの直接キルが機能しない場合は、GPUをほとんど使用しているアクティビティPIDの正確な数を見つけてメモします。

sudo kill PID -number
于 2021-12-01T05:01:30.117 に答える