torchrun 是 PyTorch 提供的一个用于分布式训练的命令行工具,它支持多种分布式训练方式,包括单机多卡和多机多卡训练。以下是其主要用法和参数介绍:
基本用法
| |
常用参数
节点配置
--nnodes=N:指定总节点数(默认为 1)。--nproc_per_node=G:每个节点的进程数(通常等于 GPU 数量)。--node_rank=R:当前节点的排名(从 0 开始)。
主节点设置
--master_addr=HOST:主节点地址(默认为127.0.0.1)。--master_port=PORT:主节点端口(默认为29500)。
其他参数
--rdzv_backend:启动方法(如c10d、etcd等)。--max_restarts:自动重启次数(用于容错)。--standalone:单机模式,简化配置。
示例
1. 单机多卡训练
在 4 个 GPU 上运行:
| |
2. 多机多卡训练
假设有 2 个节点,每个节点 4 个 GPU:
节点 0:
| |
节点 1:
| |
脚本内配置
在 your_script.py 中,需要初始化分布式环境:
| |
注意事项
- 使用
--standalone时无需设置master_addr和node_rank。 - 确保所有节点间网络互通,主节点端口可访问。
- 脚本需兼容分布式训练(如使用
DistributedDataLoader)。
更多详细参数可通过 torchrun --help 查看。
💬 评论