背景
通常来说训练网络或者跑一个时常很长的代码,我们会选择离开电脑。这时你可以通过Screen命名挂起一个窗口,在该窗口上开始训练你的神经网络,跑你的代码等等……避免因为意外情况导致程序中断,白白浪费时间
安装screen
Debian/Ubuntu系统执行:
apt-get install screen
创建作业
我们可以使用screen指令创建一个新窗口(需要给这个窗口起一个名字)假设我给创建的窗口起的名字是example
screen -S example
执行这段指令后,屏幕会自动开启一个新的页面此后,可以在这个页面中照常跑程序。假设我们要运行train.py这个程序,则在cd至指定目录后执行
python train.py
挂起screen和重新连接
挂起:可离开作业,作业会在服务器端独立运行
Ctrl+a+d
查看作业ID:
screen -ls
重新连接:
screen -r [ID]
结束作业:
screen -X -S [ID] quit
杀死当前shell:
Ctrl +a + k
意外中断程序,但是GPU内存没有释放的解决办法
Linux查看Nvidia显卡信息及使用情况,输入:nvidia-smi
表头释义:
- Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出来就是N/A;
- Temp:显卡内部的温度,单位是摄氏度;
- Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能;
- Pwr:能耗表示;
- Bus-Id:涉及GPU总线的相关信息;
- Disp.A:是Display Active的意思,表示GPU的显示是否初始化;
- Memory Usage:显存的使用率;
- Volatile GPU-Util:浮动的GPU利用率;
- Compute M:计算模式;
用命令关了根据PID对应的进程就好了
kill -9 pid
本例中用kill -9 32073,就可以了,再次用nvidia-smi查看,发现对应进程已经被杀死,相关显存被成功释放。