关于Linux+GPU服务器下GPU显存不足问题

关于Linux+GPU服务器下GPU显存不足问题

  • 1. 问题描述
  • 2. 解决方法
    • 2.1 传统方法
    • 2.2 杀死进程法
  • 3.备注

1. 问题描述

在基于Linux操作系统环境下的GPU服务器上跑深度学习代码时,我们常常会因为如不正常退出等问题导致资源没被正常回收而出现GPU显存不足的情况,此时再次运行学习代码就会出现如下图所示报错情况。从图片上可以看出我10.91GiB的显存仅剩下362.38MiB,报错提示原因也是ResourceExhaustedError(资源耗尽错误)。
关于Linux+GPU服务器下GPU显存不足问题_第1张图片
关于Linux+GPU服务器下GPU显存不足问题_第2张图片

2. 解决方法

2.1 传统方法

  • 传统方法当然是重启哟,这是在不知道解决办法时的万能钥匙,手动滑稽。

2.2 杀死进程法

  • 使用fuser命令显示所有占用nvidia设备的进程processID。(说明:fuser命令 能展列出当前磁盘上的某个文件、挂载点、以及网络端口的使用情况,并显示使用其资源的进程processID,默认情况下每个文件名后面跟一个字母表示访问类型)
sudo fuser /dev/nvidia*
  • 操作过程如下:
    关于Linux+GPU服务器下GPU显存不足问题_第3张图片

  • 使用kill命令将占用Nvidia设备的进程杀掉,并再次使用fuser命令确认。(说明:使用kill命令时默认的命令参数为-15,而kill -15代表的信号为SIGTERM,这是告诉进程进行终止操作,这并不能保证一定杀干净;而kill -9代表的信号是SIGKILL,表示进程被杀死,不能被忽略)

kill -9 PID
sudo fuser /dev/nvidia*
  • 其中我的PID为上图的22448,操作过程如下图所示:
    关于Linux+GPU服务器下GPU显存不足问题_第4张图片

3.备注

  • 到此问题就解决了,继续学习。
  • 问题是本人在Ubuntu 16.04系统下使用tensorflow框架在Nvidia GTX 1080Ti上进行机器学习时遇到的。因为经常会遇到,所以做了问题总结,希望对出现同样问题的你有所帮助。

你可能感兴趣的:(机器学习)