问题
在进行深度学习时,显存是一种非常宝贵的资源。但是即便在Ubuntu下,各种各样的系统配置都会不自觉的占用一些显存,导致深度学习难以为继。在本博客中,主要搬运一些查询显存占用原因及处理方法。
翻译来源链接
/questions/591393/how-to-shift-process-from-gpu-to-cpu-usage
/questions/1220144/can-somebody-explain-the-results-for-the-nvidia-smi-command-in-a-terminal
/weixin_35653315/article/details/71327740
/p/64849549
显存占用查看
最常用的命令就是nvidia-smi
,通常能够得到一下的结果:
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.138 Driver Version: 390.138 |
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1461 G /usr/lib/xorg/Xorg 54MiB |
| 0 3495 G ...AAAAAAAAAAAACAAAAAAAAAA= --shared-files 59MiB |
+-----------------------------------------------------------------------------+
其中,Xorg是桌面占用的部分,这个可以通过关闭桌面的方式处理,不再展开。
比较好奇的是...AAAAAAAAAAAACAAAAAAAAAA= --shared-files
对应的部分。通过ps
命令可以查看其对应的程序,发现对应的是Chrome
。笔者在使用Ubuntu的过程中,也遇到过VSCode占用大量的显存。
ps -fp 3495
UID PID PPID C STIME TTY TIME CMD
ovalerio 3495 3467 0 10:37 tty2 00:04:04 /opt/google/chrome/chrome --type=gpu-process --field-trial-handle=6716317491882142118,16579441558825986940,131072 --gpu-preferences=MAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= --shared-files
似乎接下来的事情当然就简单了,直接关闭对应的程序就行。
处理方法
通常在深度学习炼丹过程中,两个工具必不可少,VSCode
+Chrome
,前者用来写代码,后者用来配合tensorboard
查看训练情况。然而前文也说到,这两个东西都会占用大量的显存,对训练不友好。
当然也有一个简单的解决方案,Ubuntu完全变成服务器,使用VSCode Remote
远程编写代码,tensorboard
也通过远程的方式进行展示。