pyTorch 指定卡运行代码 和 同一台机器跑多个GPU程序(解决端口号占用)

您所在的位置:网站首页 第一个pytorch程序 pyTorch 指定卡运行代码 和 同一台机器跑多个GPU程序(解决端口号占用)

pyTorch 指定卡运行代码 和 同一台机器跑多个GPU程序(解决端口号占用)

2024-05-11 14:37| 来源: 网络整理| 查看: 265

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开始。注意引号

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3