1. 较早的pytorch.distributed.launch
python -m torch.distributed.launch --nproc_per_node=4 --nnodes=1 --node_rank=0 train.py --args XXX
参数解析:
nnodes:节点(主机)的数量,通常一个节点对应一个主机
node_rank:指的是当前启动的是第几台服务器,从 0 开始。
nproc_per_node:一个节点中显卡的数量
-master_addr:master节点的ip地址,也就是0号主机的IP地址,该参数是为了让 其他节点 知道0号节点的位,来将自己训练的参数传送过去处理
-master_port:master节点的port号,在不同的节点上master_addr和master_port的设置是一样的,用来进行通信
原文链接:http://t.csdnimg.cn/bDRj0
2. transfer a torch variable to a gpu
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 指定设备
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 指定设备
device = (input1.device if input1.is_cuda else torch.device('cpu')) # 指定目标变量的设备
x=x.to(device)