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

Fra*_*urt 11 memory nvidia gpu

在我的 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                                                 |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 1

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

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