25

マシンを再起動せずに、CUDA経由でGPUを使用して実行中のすべての処理を停止することは可能ですか?

4

4 に答える 4

23

lsofユーティリティはこれに役立ちます。NVIDIAカードにアクセスするプロセスのリストは次の方法で入手できます。

lsof /dev/nvidia*

次に、killまたはpkillを使用して、必要なプロセスを終了します。Xが実行されている場合は、Xを強制終了したくない場合があることに注意してください。私のデスクトップシステムでは、Xとkwinの両方がGPUにもアクセスしています。

于 2010-12-31T16:53:58.427 に答える
14

長い答え:

lsof /dev/nvidia*

GPUカードで実行されているPIDを次のように表示します。lsof:PIDのステータスエラー:そのようなファイルまたはディレクトリはありません

COMMAND  PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
python  7215 *******  mem    CHR 195,255           434 /dev/nvidiactl
python  7215 *******  mem    CHR   195,0           435 /dev/nvidia0

awk '{print $2}'

PID列(私の場合は2番目の列)を選択し、

xargs -I {} kill {}

それらのPIDジョブを強制終了します。

短い答え:

次のコマンドを使用して、それらを一度にすべて削除できます。

気を付けて!このコマンドは、lsof / dev /nvidia*に表示されるすべてのPIDを削除します。最初にlsof/dev / nvidia *を実行して、これらのジョブが削除するジョブであることを確認してください。

lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}

1つのコマンドでジョブを終了します。

于 2018-07-02T20:23:34.607 に答える
12

でプロセスを確認してnvidia-smiから

kill -9 <pid>
于 2016-01-20T17:24:38.377 に答える
0

フューザーコマンドを使用して、CUDAを使用するすべてのプロセスを取得し、それらを強制終了できます。それらすべてを殺すための素晴らしい単一のコマンドもあります。

sudo fuser -k /dev/nvidia*
于 2021-09-24T06:24:51.227 に答える