pyTorch 指定卡运行代码 和 同一台机器跑多个GPU程序(解决端口号占用)
1 pyTorch 多卡运行代码
一般pytorch多卡运行,最好使用此方法
python -m torch.distributed.launch —nproc_per_node
例如 python -m torch.distributed.launch —nproc_per_node 2 train.py
其中参数 --nproc_per_node 表示每个节点需要多少个进程,一般每个进程独占一个GPU
其他参数
--nnodes 需要节点数(机器数)
--node_rank 节点编号
--master_addr 节点master的IP地址
--master_port 节点master的port号
2 同一台机器跑多个GPU程序(解决端口号占用)
程序1:
python -m torch.distributed.launch —nproc_per_node 2 train.py
程序2
python -m torch.distributed.launch —nproc_per_node 2 train.py —master_port XXXX
因为默认的master_port是29500,所以启动第二个程序时端口号会被占用,需要指定端口号。
端口号查询 查询XXX端口号是否被使用
netstat -anp | grep XXX
如果输出有那么就有程序在使用这个端口号
3 指定特定的GPU卡运行
方式1
使用train.py提供的接口(args参数输入)
方式2
在train.py代码首行加入
import os
os.environ[‘CUDA_VISIBLE_DEVICES’] = ‘ XXX ’
其中XXX为指定卡的序号,从0开始。注意引号

浙公网安备 33010602011771号