01
课程导论与硬件认知
为什么需要多机多卡?GPU服务器硬件架构(PCIe、NVLink、InfiniBand)概览。
硬件导论
02
单机多卡环境搭建
NVIDIA驱动、CUDA Toolkit、cuDNN的安装与版本匹配。
驱动CUDA
03
深度学习框架安装
PyTorch与TensorFlow的CUDA版本安装与验证。
PyTorchTensorFlow
04
Docker基础
Docker安装、镜像拉取、容器创建与基本操作。
容器Docker
05
NVIDIA Container Toolkit
在Docker中启用GPU支持,nvidia-docker2与NVIDIA Container Toolkit的演进。
GPU容器
06
Docker多机网络
Docker Overlay网络与Docker Swarm模式简介。
网络Swarm
07
SSH免密登录
多机环境下SSH密钥配置与安全策略。
SSH安全
08
NFS共享存储
搭建NFS服务器,实现多机数据与代码共享。
存储NFS
09
MPI与NCCL基础
MPI简介、NCCL安装与基本通信测试。
MPINCCL
10
PyTorch DDP (单机)
torch.distributed原理与单机多卡训练示例。
DDPPyTorch
11
PyTorch DDP多机扩展
将单机DDP扩展到多机,设置MASTER_ADDR与MASTER_PORT。
多机DDP
12
TensorFlow分布式策略
MirroredStrategy与MultiWorkerMirroredStrategy。
TensorFlow策略
13
Horovod框架
Horovod安装、与PyTorch/TensorFlow集成、弹性训练。
Horovod弹性
14
Slurm作业调度系统
Slurm安装、分区配置、sbatch与srun提交多机任务。
Slurm调度
15
Slurm与Docker结合
在Slurm集群中启动Docker容器进行分布式训练。
SlurmDocker
16
Kubernetes基础
K8s架构、Pod、Service、Deployment概念。
K8s基础
17
Kubernetes GPU管理
NVIDIA GPU Operator安装与GPU资源调度。
GPUOperator
18
Kubeflow简介
Kubeflow安装、Pipeline与分布式训练组件。
KubeflowMLOps
19
Volcano调度器
在K8s上使用Volcano调度AI批处理与分布式任务。
Volcano批处理
20
网络性能调优
InfiniBand与RoCE配置、网卡绑定、TCP调优。
网络InfiniBand
21
存储性能调优
并行文件系统(Lustre/GPFS)简介、数据加载优化(DataLoader多进程与内存映射)。
存储Lustre
22
混合精度训练
AMP原理、Apex与PyTorch原生AMP使用、多卡下的梯度缩放。
AMP精度
23
梯度累积与通信压缩
梯度累积策略、梯度压缩(Gradient Compression)技术。
梯度压缩
24
日志与监控
TensorBoard、Weights & Biases、NVIDIA DCGM监控GPU状态。
监控DCGM
25
故障排查
常见错误(NCCL超时、OOM、版本不匹配)诊断与解决。
调试NCCL
26
性能基准测试
使用NCCL Tests、DLProf、PyTorch Profiler进行性能分析。
基准Profiler
27
弹性训练
TorchElastic(TorchX)原理与配置,应对节点故障。
弹性TorchElastic
28
云上多机环境
AWS ParallelCluster、阿里云PAI、腾讯云TI-ONE快速部署。
云PAI
29
安全与权限
容器安全、用户权限管理、网络隔离策略。
安全权限
30
综合实战
从零搭建一个4节点32卡训练集群,运行GPT-2或ResNet-50训练任务。
实战集群