GPU RAM 已占用但没有 PID

Posted

技术标签:

【中文标题】GPU RAM 已占用但没有 PID【英文标题】:GPU RAM occupied but no PIDs 【发布时间】:2020-04-13 08:28:26 【问题描述】:

nvidia-smi 显示以下内容,表明 GPU0 上使用了 3.77GB,但没有为 GPU0 列出任何进程:

(base) ~/.../fast-autoaugment$ nvidia-smi
Fri Dec 20 13:48:12 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.50       Driver Version: 430.50       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN Xp            Off  | 00000000:03:00.0 Off |                  N/A |
| 23%   34C    P8     9W / 250W |   3771MiB / 12196MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  TITAN Xp            Off  | 00000000:84:00.0  On |                  N/A |
| 38%   62C    P8    24W / 250W |   2295MiB / 12188MiB |      8%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    1      1910      G   /usr/lib/xorg/Xorg                           105MiB |
|    1      2027      G   /usr/bin/gnome-shell                          51MiB |
|    1      3086      G   /usr/lib/xorg/Xorg                          1270MiB |
|    1      3237      G   /usr/bin/gnome-shell                         412MiB |
|    1     30593      G   /proc/self/exe                               286MiB |
|    1     31849      G   ...quest-channel-token=4371017438329004833   164MiB |
+-----------------------------------------------------------------------------+

类似地,nvtop 显示相同的 GPU RAM 利用率,但它列出的进程显示 TYPE=Compute,如果您尝试杀死它显示的 PID,则会出现错误:

(base) ~/.../fast-autoaugment$ kill 27761
bash: kill: (27761) - No such process

如何回收被明显幽灵进程占用的 GPU RAM?

【问题讨论】:

【参考方案1】:

使用以下命令深入了解占用 GPU RAM 的幽灵进程:

sudo fuser -v /dev/nvidia*

在我的例子中,输出是:

(base) ~/.../fast-autoaugment$ sudo fuser -v /dev/nvidia*
                     USER        PID ACCESS COMMAND
/dev/nvidia0:        shitals     517 F.... nvtop
                     root       1910 F...m Xorg
                     gdm        2027 F.... gnome-shell
                     root       3086 F...m Xorg
                     shitals    3237 F.... gnome-shell
                     shitals   27808 F...m python
                     shitals   27809 F...m python
                     shitals   27813 F...m python
                     shitals   27814 F...m python
                     shitals   28091 F...m python
                     shitals   28092 F...m python
                     shitals   28096 F...m python

这显示了 nvidia-smi 和 nvtop 无法显示的进程。在我杀死所有python 进程后,GPU RAM 被释放。

要尝试的另一件事是使用以下命令重置 GPU:

sudo nvidia-smi --gpu-reset -i 0

【讨论】:

以上是关于GPU RAM 已占用但没有 PID的主要内容,如果未能解决你的问题,请参考以下文章

Linux--无进程却显示占用显存,GPU显存释放方法

启用apache,发现80端口被占用已解决

启用apache,发现80端口被占用已解决

有没有办法测量应用程序/程序占用多少系统资源(例如RAM)[重复]

查询GPU时无进程运行,但是显存却被占用了

数据占用多少 RAM?