2018-08-06 18:40:18 heiheiya 阅读数 5631
  • OpenGL

    课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计. 第1章-环境建立 第2章-基础图元 第3章-三维世界 第4章-纹理多彩世界 第5章-显存的分配-优化 第6章-场景控制 第7章-光照-真实世界 第8章-模型 第9章-UI制作 第10章-场景编辑器制作 第11章-地形 第12章-脚本引入-lua

    140402 人正在学习 去看看 张立铜

运行一个程序突然崩了,但是显存并没有释放。

nvidia-smi

查看显存占用情况时,

可以看到,显存已经所剩无几,但是并没有进程显示占用。

使用命令

fuser -v /dev/nvidia*

查看,

我一般使用

sudo kill -9 PID(替换进程号)

将/dev/nvidia0的几个进程kill掉就可以了。

在查看一下显存。

已经释放了。

 

2018-12-17 17:30:49 shanglianlm 阅读数 1274
  • OpenGL

    课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计. 第1章-环境建立 第2章-基础图元 第3章-三维世界 第4章-纹理多彩世界 第5章-显存的分配-优化 第6章-场景控制 第7章-光照-真实世界 第8章-模型 第9章-UI制作 第10章-场景编辑器制作 第11章-地形 第12章-脚本引入-lua

    140402 人正在学习 去看看 张立铜

在跑Caffe、TensorFlow、pytorch之类的需要CUDA的程序时,强行Kill掉进程后发现显存仍然占用,这时候可以使用如下命令查看到top或者ps中看不到的进程,之后再kill掉:

fuser -v /dev/nvidia*

接着杀掉显示出的进程(有多个):

kill -9 12345
kill -9 12345m

批量清理显卡中残留进程:

sudo fuser -v /dev/nvidia* |awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | sudo sh

清理指定GPU显卡中残留进程,如GPU 2:

sudo fuser -v /dev/nvidia2 |awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | sudo sh

参考:
1 Linux显存占用无进程清理方法(附批量清理命令)https://www.cnblogs.com/ocean1100/p/9126032.html
2 【原创】如何解决python进程被kill掉后GPU显存不释放的问题https://blog.csdn.net/jzrita/article/details/80719297

2019-05-22 21:18:12 lthirdonel 阅读数 457
  • OpenGL

    课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计. 第1章-环境建立 第2章-基础图元 第3章-三维世界 第4章-纹理多彩世界 第5章-显存的分配-优化 第6章-场景控制 第7章-光照-真实世界 第8章-模型 第9章-UI制作 第10章-场景编辑器制作 第11章-地形 第12章-脚本引入-lua

    140402 人正在学习 去看看 张立铜

在linux命令行中键入nvidia-smi,显示没有进程但是GPU显存却使用很多
产生原因:历史进程未杀死

在这里插入图片描述
解决方案:
用下面命令查看后台占用进程:

fuser -v /dev/nvidia*

然后kill掉

kill -9 进程号
2019-04-12 08:49:31 banxia1995 阅读数 226
  • OpenGL

    课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计. 第1章-环境建立 第2章-基础图元 第3章-三维世界 第4章-纹理多彩世界 第5章-显存的分配-优化 第6章-场景控制 第7章-光照-真实世界 第8章-模型 第9章-UI制作 第10章-场景编辑器制作 第11章-地形 第12章-脚本引入-lua

    140402 人正在学习 去看看 张立铜

用tensorflow做实验,有时候会由于某种原因,在关闭程序后,GPU的显存仍处于被占用的状态,而用nvidia-smi查不到对应的进程pid. 
这时释放显存的方法:

sudo fuser /dev/nvidia*

   该命令会显示所有占用nvidia设备的进程pid,将这些pid逐个kill掉:

     kill -9 pid

2017-10-09 10:23:01 Lillian_cl 阅读数 10498
  • OpenGL

    课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计. 第1章-环境建立 第2章-基础图元 第3章-三维世界 第4章-纹理多彩世界 第5章-显存的分配-优化 第6章-场景控制 第7章-光照-真实世界 第8章-模型 第9章-UI制作 第10章-场景编辑器制作 第11章-地形 第12章-脚本引入-lua

    140402 人正在学习 去看看 张立铜

在linux命令行中键入nvidia-smi,显示没有进程但是GPU显存却使用很多


在命令行中输入fuser -v /dev/nvidia*会显示如下top不会显示的进程

这些是我之前用kill+进程号杀死的进程残留,然而还存在,可能是当时使用了多进程加速的方法,而显示出的进程号只是其中的一个。于是把这些都kill掉了,OK全干净了。


进阶版==========================

今天遇到了有新的程序在跑,但是之前的kill有残留的情况,其实解决办法很简单,就是kill掉fuser -v /dev/nvidia*显示而top没有显示的进程;

但是男票生怕top中显示的进程也是需要kill掉的,总之以防万一,

可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:
  
$ pmap -d 103767
103767:   python -u pairTaskCosFeatures_GPU.py --cuda 1

你就能看到当时的命令,通过这个来判断是不是你想要清理的GPU。撒花~

不需要sudo,root权限

Linux释放GPU显存

阅读数 7586

没有更多推荐了,返回首页