RockyLinux分布式训练环境搭建(手把手教你配置多机深度学习训练集群)

来源:这里教程网 时间:2026-03-25 14:48:08 作者:

在当今人工智能快速发展的时代,RockyLinux分布式训练已成为提升模型训练效率的关键技术。本文将面向初学者,详细讲解如何在 Rocky Linux 操作系统上搭建一套完整的深度学习环境搭建流程,并实现多节点间的分布式训练。即使你是 Linux 新手,也能轻松跟做!

一、准备工作

你需要至少两台安装了 Rocky Linux 8 或 9 的服务器(物理机或虚拟机均可),并确保以下条件:

所有节点之间网络互通(建议使用内网) 每台机器拥有 GPU(如 NVIDIA 显卡) 已配置好静态 IP 地址 拥有 sudo 权限

二、基础环境配置(所有节点)

1. 更新系统并安装必要工具

sudo dnf update -ysudo dnf install -y epel-releasesudo dnf install -y git wget htop vim net-tools openssh-server

2. 安装 NVIDIA 驱动与 CUDA

首先添加 NVIDIA 官方仓库:

sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.reposudo dnf module install -y nvidia-driver:latest-dkmssudo dnf install -y cuda-toolkit-12-3

重启后验证驱动是否加载:

nvidia-smi

3. 安装 Python 与 Conda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3source ~/.bashrcconda init bash

三、配置 SSH 免密登录(主节点到所有从节点)

假设你的主节点 IP 为

192.168.1.10
,从节点为
192.168.1.11
192.168.1.12

在主节点生成 SSH 密钥:

ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa

将公钥复制到所有从节点:

ssh-copy-id user@192.168.1.11ssh-copy-id user@192.168.1.12

测试免密登录:

ssh user@192.168.1.11 'hostname'

四、安装 PyTorch 与分布式依赖

在所有节点创建统一的 Conda 环境:

conda create -n dist_train python=3.10 -yconda activate dist_trainpip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121pip install opencv-python numpy pandas

五、编写分布式训练脚本

创建一个简单的

train.py
文件,使用 PyTorch 的
torch.distributed
模块:

import torchimport torch.distributed as distimport osdef setup():    dist.init_process_group("nccl")    rank = dist.get_rank()    print(f"Rank {rank} initialized.")    return rankdef cleanup():    dist.destroy_process_group()if __name__ == "__main__":    rank = setup()    # 示例:每个 GPU 创建一个张量并进行 all-reduce    tensor = torch.ones(2, 2).cuda() * rank    print(f"Rank {rank} before all_reduce: {tensor}")    dist.all_reduce(tensor, op=dist.ReduceOp.SUM)    print(f"Rank {rank} after all_reduce: {tensor}")    cleanup()

六、启动分布式训练

在主节点上创建主机文件

hostfile.txt

192.168.1.10 slots=1192.168.1.11 slots=1192.168.1.12 slots=1

使用

torchrun
启动训练(假设每台机器1个GPU):

conda activate dist_traintorchrun \  --nnodes=3 \  --nproc_per_node=1 \  --node_rank=0 \  --master_addr="192.168.1.10" \  --master_port=29500 \  train.py

注意:在其他节点上需设置对应的

--node_rank=1
--node_rank=2
。更推荐使用
torch.distributed.run
结合 hostfile 自动调度(高级用法可参考 PyTorch 官方文档)。

七、常见问题排查

端口被占用:更换
--master_port
(如 29501) NCCL 错误:确保所有节点 CUDA 版本一致,设置环境变量:
export NCCL_DEBUG=INFO
SSH 连接失败:检查防火墙:
sudo firewall-cmd --add-port=22/tcp --permanent

结语

通过以上步骤,你已经成功搭建了一套基于 RockyLinux多机训练 的分布式深度学习环境。这套环境适用于 PyTorch分布式训练 任务,能显著加速大型模型的训练过程。后续可进一步集成 Horovod、DeepSpeed 等框架以支持更大规模训练。

希望这篇教程能帮助你在 AI 工程化道路上迈出坚实一步!如有疑问,欢迎在评论区交流。

相关推荐

热文推荐