Pytorch单机多卡后台运行的解决办法
前言
今天初次使用了Pytorch单机多卡的训练方法,并且使用的是数据并行的方法,但是由于是单机多卡,那么服务器就需要创建几个进行来运行GPU,这个也导致了在服务器上使用nohup后台运行行不通,所以需要一个方法来解决这个问题
方法
(1)使用Screen
(2)使用sh文件
Screen简单介绍
screen中所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
使用步骤
(1)如果没有安装Screen,先安装
apt install screen
(2)新建一个screen窗口
screen -S 你的窗口名字
(3)进入该窗口
scree -r 你的窗口名字
(3)直接运行你的程序,如:我运行train.py
python -m torch.distributed.launch --master_port 9843 --nproc_per_node=2 train.py
如果想看输出日志的话
python -m torch.distributed.launch --master_port 9843 --nproc_per_node=2 train.py >test.log 2>&1
这个就是输出日志到test.log中去
(4)使用Ctrl + A + d后台运行(其实也可以不按)
(5)关掉窗口发现日仍在运行,使用top命令
Sh文件的使用
步骤
(1)新建sh文件并输入命令
python -m torch.distributed.launch --master_port 9843 --nproc_per_node=2 train.py
(2)在命令行运行如下命令
nohup ./train.sh >record/log_record.log 2>1&
最后就可以了