使用 11 GB GPU RAM,且 nvidia-smi 未列出任何进程

使用 11 GB GPU RAM,且 nvidia-smi 未列出任何进程

在我的 GPU #0 中,使用了 11341MiB 的 GPU RAM,并且 没有列出任何进程nvidia-smi。这怎么可能,我怎样才能恢复记忆?

Thu Aug 18 14:27:58 2016
+------------------------------------------------------+
| NVIDIA-SMI 352.63     Driver Version: 352.63         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX TIT...  Off  | 0000:02:00.0     Off |                  N/A |
| 29%   61C    P2    71W / 250W |  11341MiB / 12287MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX TIT...  Off  | 0000:03:00.0     Off |                  N/A |
| 22%   42C    P0    71W / 250W |     23MiB / 12287MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX TIT...  Off  | 0000:82:00.0     Off |                  N/A |
| 22%   35C    P0    69W / 250W |     23MiB / 12287MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX TIT...  Off  | 0000:83:00.0     Off |                  N/A |
|  0%   33C    P0    60W / 250W |     23MiB / 12287MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

我启动了一个带有标志的 Theano Python 脚本lib.cnmem=0.9,这解释了为什么它使用 11341MiB 的 GPU 内存(CNMeM 库是一个“帮助深度学习框架管理 CUDA 内存的简单库。”。)。然而,我终止了脚本,并期望 GPU 内存得到释放。

  • pkill -9 pythonsudo nvidia-smi --gpu-reset -i 0没有帮助。
  • sudo fuser -v /dev/nvidia*没有显示任何不需要的进程。

我使用 GeForce GTX Titan Maxwell 和 Ubuntu 14.04.4 LTS x64。

答案1

用于kill -9任意结束进程是一个非常糟糕的主意,并且可能会把事情搞砸。SIGKILL或信号 9 立即停止进程执行,而不让它完成任何操作并正确终止。在这种情况下,当您的脚本被终止时,它可能没有释放 RAM。在您的情况下,回收内存的唯一方法是通过重置 GPU nvidia-smi --gpu-reset,或者如果不可用,则重新启动。

下次您需要简单地停止程序时,请使用不带参数的kill,它会发送一个SIGTERMSIGTERM这是一个更友好的信号,允许程序实际处理它并终止。SIGKILL仅应用于停止不响应其他信号的作业,并且是最后的手段。

相关内容