记录下pytorch分布式训练的运行命令
测试脚本:train.py
import torch
import torch.distributed as dist
import os
import time
print(os.environ)
print("|| MASTER_ADDR:",os.environ["MASTER_ADDR"],
"|| MASTER_PORT:",os.environ["MASTER_PORT"],
"|| LOCAL_RANK:",os.environ["LOCAL_RANK"],
"|| RANK:",os.environ["RANK"],
"|| WORLD_SIZE:",os.environ["WORLD_SIZE"])
print()
dist.init_process_group('nccl')
time.sleep(30)
dist.destroy_process_group()
torch.distributed.launch 命令介绍
我们在训练分布式时候,会使用到 torch.distributed.launch 可以通过命令,来打印该模块提供的可选参数 python -m torch.distributed.launch --help
usage: launch.py [-h] [--nnodes NNODES] [--node_rank NODE_RANK]
[--nproc_per_node NPROC_PER_NODE] [--master_addr MASTER_ADDR] [--master_port MASTER_PORT]
[--use_env] [-m] [--no_python] [--logdir LOGDIR]
training_script ...
torch.ditributed.launch参数解析(终端运行命令的参数):
- nnodes:节点的数量,通常一个节点对应一个主机,方便记忆,直接表述为主机
- node_rank:节点的序号,从0开始
- nproc_per_node:一个节点中显卡的数量
- -master_addr:master节点的ip地址,也就是0号主机的IP地址,该参数是为了让 其他节点 知道0号节点的位,来将自己训练的参数传送过去处理
- -master_port:master节点的port号,在不同的节点上master_addr和master_port的设置是一样的,用来进行通信
?
torch.ditributed.launch相关环境变量解析(代码中os.environ中的参数):
- WORLD_SIZE:os.environ[“WORLD_SIZE”]每张显卡在自己主机中的序号,从0开始
- LOCAL_RANK:os.environ[“LOCAL_RANK”]所有进程的数量
- RANK:os.environ[“RANK”]进程的序号,一般是1个gpu对应一个进程
?
多机多卡 的分布式
- 在0号机器上调用
python -m torch.distributed.launch --nproc_per_node 4 --nnodes 2 --node_rank 0 --master_addr='172.18.39.122' --master_port='29500' train.py - 在1号机器上调用
python -m torch.distributed.launch --nproc_per_node 4 --nnodes 2 --node_rank 1 --master_addr='172.18.39.122' --master_port='29500' train.py
注意:
- 命令中的【–master_addr=‘172.18.39.122’】指的是0号机器的IP,在0号机器上运行的命令中【node_rank】必须为0
- 只有当【nnodes】个机器全部运行,代码才会进行分布式的训练操作,否则一直处于等待状态
?
运行结果如下:
environ({'SHELL': '/bin/bash', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/LL-data/2D/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/BeSiNet', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(BeSiNet) ', 'SSH_CONNECTION': '10.20.1.171 40746 172.18.39.122 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '353', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': '/usr/local/cuda-10.2/lib64:', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 40746 22', 'CONDA_DEFAULT_ENV': 'BeSiNet', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PATH': '/usr/local/cuda-10.2/bin:/home/slam/anaconda3/envs/BeSiNet/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/21', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam/LL-data/2D', '_': '/home/slam/anaconda3/envs/BeSiNet/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '0', 'LOCAL_RANK': '0'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 0 || RANK: 0 || WORLD_SIZE: 8
environ({'SHELL': '/bin/bash', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/LL-data/2D/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/BeSiNet', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(BeSiNet) ', 'SSH_CONNECTION': '10.20.1.171 40746 172.18.39.122 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '353', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': '/usr/local/cuda-10.2/lib64:', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 40746 22', 'CONDA_DEFAULT_ENV': 'BeSiNet', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PATH': '/usr/local/cuda-10.2/bin:/home/slam/anaconda3/envs/BeSiNet/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/21', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam/LL-data/2D', '_': '/home/slam/anaconda3/envs/BeSiNet/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '1', 'LOCAL_RANK': '1'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 1 || RANK: 1 || WORLD_SIZE: 8
environ({'SHELL': '/bin/bash', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/LL-data/2D/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/BeSiNet', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(BeSiNet) ', 'SSH_CONNECTION': '10.20.1.171 40746 172.18.39.122 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '353', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': '/usr/local/cuda-10.2/lib64:', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 40746 22', 'CONDA_DEFAULT_ENV': 'BeSiNet', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PATH': '/usr/local/cuda-10.2/bin:/home/slam/anaconda3/envs/BeSiNet/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/21', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam/LL-data/2D', '_': '/home/slam/anaconda3/envs/BeSiNet/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '2', 'LOCAL_RANK': '2'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 2 || RANK: 2 || WORLD_SIZE: 8
environ({'SHELL': '/bin/bash', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/LL-data/2D/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/BeSiNet', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(BeSiNet) ', 'SSH_CONNECTION': '10.20.1.171 40746 172.18.39.122 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '353', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': '/usr/local/cuda-10.2/lib64:', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 40746 22', 'CONDA_DEFAULT_ENV': 'BeSiNet', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'PATH': '/usr/local/cuda-10.2/bin:/home/slam/anaconda3/envs/BeSiNet/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/21', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam/LL-data/2D', '_': '/home/slam/anaconda3/envs/BeSiNet/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '3', 'LOCAL_RANK': '3'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 3 || RANK: 3 || WORLD_SIZE: 8
environ({'SHELL': '/bin/bash', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/workfile_LL/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/pytorch1.5', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(pytorch1.5) ', 'SSH_CONNECTION': '10.20.1.171 54622 10.40.1.181 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '1821', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': ':/usr/local/cuda/lib64', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 54622 22', 'CONDA_DEFAULT_ENV': 'pytorch1.5', 'CUDA_HOME': '/usr/local/cuda', 'PATH': '/home/slam/anaconda3/envs/pytorch1.5/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/5', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_': '/home/slam/anaconda3/envs/pytorch1.5/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '4', 'LOCAL_RANK': '0'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 0 || RANK: 4 || WORLD_SIZE: 8
environ({'SHELL': '/bin/bash', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/workfile_LL/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/pytorch1.5', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(pytorch1.5) ', 'SSH_CONNECTION': '10.20.1.171 54622 10.40.1.181 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '1821', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': ':/usr/local/cuda/lib64', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 54622 22', 'CONDA_DEFAULT_ENV': 'pytorch1.5', 'CUDA_HOME': '/usr/local/cuda', 'PATH': '/home/slam/anaconda3/envs/pytorch1.5/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/5', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_': '/home/slam/anaconda3/envs/pytorch1.5/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '5', 'LOCAL_RANK': '1'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 1 || RANK: 5 || WORLD_SIZE: 8
environ({'SHELL': '/bin/bash', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/workfile_LL/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/pytorch1.5', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(pytorch1.5) ', 'SSH_CONNECTION': '10.20.1.171 54622 10.40.1.181 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '1821', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': ':/usr/local/cuda/lib64', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 54622 22', 'CONDA_DEFAULT_ENV': 'pytorch1.5', 'CUDA_HOME': '/usr/local/cuda', 'PATH': '/home/slam/anaconda3/envs/pytorch1.5/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/5', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_': '/home/slam/anaconda3/envs/pytorch1.5/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '6', 'LOCAL_RANK': '2'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 2 || RANK: 6 || WORLD_SIZE: 8
environ({'SHELL': '/bin/bash', 'CONDA_MKL_INTERFACE_LAYER_BACKUP': '', 'CONDA_EXE': '/home/slam/anaconda3/bin/conda', '_CE_M': '', 'PKG_CONFIG_PATH': ':/usr/local/lib/pkgconfig', 'LANGUAGE': 'zh_CN:zh', 'PWD': '/home/slam/workfile_LL/pytorch_test', 'LOGNAME': 'slam', 'XDG_SESSION_TYPE': 'tty', 'CONDA_PREFIX': '/home/slam/anaconda3/envs/pytorch1.5', 'MOTD_SHOWN': 'pam', 'HOME': '/home/slam', 'LANG': 'zh_CN.UTF-8', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'CONDA_PROMPT_MODIFIER': '(pytorch1.5) ', 'SSH_CONNECTION': '10.20.1.171 54622 10.40.1.181 22', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS': 'user', 'TERM': 'xterm-256color', '_CE_CONDA': '', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'slam', 'CONDA_SHLVL': '2', 'SHLVL': '1', 'XDG_SESSION_ID': '1821', 'CONDA_PYTHON_EXE': '/home/slam/anaconda3/bin/python', 'LD_LIBRARY_PATH': ':/usr/local/cuda/lib64', 'XDG_RUNTIME_DIR': '/run/user/1001', 'SSH_CLIENT': '10.20.1.171 54622 22', 'CONDA_DEFAULT_ENV': 'pytorch1.5', 'CUDA_HOME': '/usr/local/cuda', 'PATH': '/home/slam/anaconda3/envs/pytorch1.5/bin:/home/slam/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda/bin', 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1001/bus', 'SSH_TTY': '/dev/pts/5', 'CONDA_PREFIX_1': '/home/slam/anaconda3', 'OLDPWD': '/home/slam', 'MKL_INTERFACE_LAYER': 'LP64,GNU', '_': '/home/slam/anaconda3/envs/pytorch1.5/bin/python', 'MASTER_ADDR': '172.18.39.122', 'MASTER_PORT': '29501', 'WORLD_SIZE': '8', 'OMP_NUM_THREADS': '1', 'RANK': '7', 'LOCAL_RANK': '3'})
|| MASTER_ADDR: 172.18.39.122 || MASTER_PORT: 29501 || LOCAL_RANK: 3 || RANK: 7 || WORLD_SIZE: 8
单机多卡 训练
只需要说明 想要使用GPU的[编号]、[数量]即可。由于不需要不同机器之间的通信,就少了其余4个参数的设定 export CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 train.py
单机单卡训练
当工程提供的是分布式训练代码,但我们只想用单张显卡运行。 机器上只有一张显卡: python -m torch.distributed.launch train.py 机器上有多张显卡: export CUDA_VISIBLE_DEVICES=1 python -m torch.distributed.launch train.py
|