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

Posted cv_lhp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux--无进程却显示占用显存,GPU显存释放方法相关的知识,希望对你有一定的参考价值。

文章目录

参考链接:
Linux–无进程却显示占用显存,GPU显存释放方法

程序结束掉,但GPU显存没有释放。

一、用nvidia-smi查看对应的进程pid

nvidia-smi

查看显存占用情况如下:

使用kill命令,kill掉对应的进程:

kill -9 PID(进程PID)

我这里PID是23495:

kill -9 23495

再看一下占用情况,可以看到已经释放了:

二、用nvidia-smi查不到对应的进程pid

nvidia-smi

查看显存占用情况,如果发现查不到对应的进程pid,这时候用:

fuser -v /dev/nvidia*

使用kill命令,kill掉对应的进程:

kill -9 PID(替换进程号)

也可以使用下面命令,杀掉全部进程的pid(不推荐使用,小心使用):

fuser -vk /dev/nvidia*

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

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

1、具体表现

nvidia-smi或者gpustat无进程在GPU上运行,但GPU显存却被占用了

2、造成原因

应该是存在僵尸进程,已经运行完毕或者卡死,但是内存没有释放,处于挂起状态

3、解决方案

3.1 方案一

重启电脑

3.2 方案二

如果电脑不能重启,那就通过命令行:

fuser -v /dev/nvidia*
或者有管理员权限的时候
sudo fuser -v /dev/nvidia*

可以看到对应的设备,是有进程的。

最后就用kill命令行杀掉相应的PID号。

这样就完事了

以上是关于Linux--无进程却显示占用显存,GPU显存释放方法的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu-Tensorflow 程序结束掉GPU显存没有释放的问题

GPU 显存释放

关于tensorflow的显存占用问题

如何查看GPU占用率和显存占用率

Jupyter notebook Tensorflow GPU Memory 释放

tensorflow GPU 显存分配设置