GPU集群搭建步骤
搭建 GPU 集群通常涉及硬件准备、网络设置、操作系统安装与配置、GPU 驱动安装、集群管理系统部署等多个步骤,以下是详细介绍:
1. 规划与准备
硬件规划
- 服务器选择:挑选配备合适 GPU 卡的服务器,例如 NVIDIA Tesla V100、A100 等,同时要保证 CPU、内存和存储能满足业务需求。
- 网络设备:准备高速网络交换机,像万兆以太网交换机或者 InfiniBand 交换机,以保障节点间的高速通信。
软件规划
- 操作系统:选择 Linux 发行版,如 Ubuntu Server 20.04 或 CentOS 7,它们对 GPU 支持良好。
- GPU 驱动:从 NVIDIA 官方网站下载适配 GPU 型号的最新驱动。
- 集群管理系统:常见的有 Slurm、PBS 等,用于管理集群资源和调度作业。
2. 硬件安装与连接
- 安装 GPU 卡:把 GPU 卡安装到服务器的 PCIe 插槽上,并确保连接稳固。
- 网络连接:用网线或者 InfiniBand 线缆将服务器连接到交换机,保证网络连接正常。
3. 操作系统安装与配置
安装操作系统
在每台服务器上安装选定的 Linux 操作系统,安装过程中按提示完成磁盘分区、用户创建等设置。
网络配置
为每台服务器配置静态 IP 地址,确保服务器之间能通过网络互相访问。编辑网络配置文件,例如在 Ubuntu 系统中编辑/etc/netplan
目录下的配置文件。
时间同步
使用 NTP(网络时间协议)保证所有服务器的时间同步,避免因时间不一致引发问题。在 Ubuntu 系统中,可使用以下命令安装和配置 NTP:
bash
sudo apt install ntp
sudo systemctl enable ntp
sudo systemctl start ntp
4. GPU 驱动安装
禁用 nouveau 驱动
在 Ubuntu 系统中,编辑/etc/modprobe.d/blacklist-nouveau.conf
文件,添加以下内容:
plaintext
blacklist nouveau
options nouveau modeset=0
然后更新内核初始化 ramdisk:
bash
sudo update-initramfs -u
安装 NVIDIA 驱动
重启服务器后,以 root 用户身份运行 NVIDIA 驱动安装程序:
bash
sudo sh NVIDIA-Linux-x86_64-<version>.run
其中<version>
是驱动版本号。
5. 集群管理系统部署(以 Slurm 为例)
安装 Slurm
在所有服务器上安装 Slurm 相关软件包:
bash
sudo apt install slurm-wlm slurm-wlm-basic-plugins slurmctld slurmd
配置 Slurm
在主节点上编辑/etc/slurm-llnl/slurm.conf
文件,配置集群信息,例如节点列表、分区设置等。示例配置如下:
plaintext
# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ClusterName=mycluster
ControlMachine=node1
ControlAddr=192.168.1.10
SlurmUser=slurm
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
StateSaveLocation=/var/spool/slurm-llnl/state
SlurmdSpoolDir=/var/spool/slurm-llnl/slurmd
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
ProctrackType=proctrack/pgid
ReturnToService=1
NodeName=node[1-3] CPUs=4 Sockets=1 CoresPerSocket=2 ThreadsPerCore=2 RealMemory=8192 State=UNKNOWN
PartitionName=debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP
启动 Slurm 服务
在主节点上启动slurmctld
服务:
bash
sudo systemctl start slurmctld
sudo systemctl enable slurmctld
在所有计算节点上启动slurmd
服务:
bash
sudo systemctl start slurmd
sudo systemctl enable slurmd
6. 测试与验证
验证 GPU 驱动
在任意服务器上运行以下命令,检查 GPU 驱动是否安装成功:
bash
nvidia-smi
若能正常显示 GPU 信息,则表明驱动安装成功。
验证集群管理系统
在主节点上运行以下命令,检查集群状态:
bash
sinfo
若能正常显示节点信息和分区状态,则表明集群管理系统配置成功。
7. 应用部署与优化
部署应用
根据业务需求,在集群上部署深度学习框架(如 TensorFlow、PyTorch)或者其他 GPU 加速应用。
性能优化
通过调整 GPU 显存分配、并行计算参数等方式,优化集群性能。