GPUに実行中のプロセスがないが、ビデオメモリが占有されている方法を解決します

通常の状況では、プロセスが停止するとビデオメモリが解放されます

ただし、異常な状況でプロセスが閉じられた場合、プロセスが解放されない可能性があります。このとき、次の状況が発生します。

Mon Oct 19 16:00:00 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104      Driver Version: 410.104      CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  Off  | 00000000:00:0D.0 Off |                    0 |
| N/A   38C    P0    35W / 250W |  16239MiB / 16280MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

もちろん、解決策は、通常はビデオメモリを使用するプロセスを強制終了することです。

プロセスをリリースするには、もちろん、プロセスを見つける必要があります

fuser -v /dev/nvidia*
                     USER        PID ACCESS COMMAND
/dev/nvidia0:        root      26031 F...m python
                     root      26035 F...m python
                     root      26041 F...m python
                     root      26050 F...m python
                     root      32512 F...m ZMQbg/1
/dev/nvidiactl:      root      26031 F...m python
                     root      26035 F...m python
                     root      26041 F...m python
                     root      26050 F...m python
                     root      32512 F.... ZMQbg/1
/dev/nvidia-uvm:     root      26031 F.... python
                     root      26035 F.... python
                     root      26041 F.... python
                     root      26050 F.... python
                     root      32512 F.... ZMQbg/1

次に、kill -9 26031を使用してプロセスを強制終了すると、プロセスはリソースを解放します。上記でクエリされたプロセスを一度に1つずつ強制終了する必要があります。

それは偶然のない正常です:

おすすめ

転載: blog.csdn.net/zhou_438/article/details/109162654