01
数据并行概述
什么是数据并行、为什么需要数据并行、数据并行的基本工作流程。
基础入门
02
同步与异步
同步数据并行(Sync SGD)与异步数据并行(Async SGD)的原理与对比。
同步异步
03
梯度同步机制
AllReduce 算法详解(Ring AllReduce、Tree AllReduce)。
通信AllReduce
04
通信库基础
NCCL、Gloo、MPI 的选型与配置。
NCCLGlooMPI
05
PyTorch DDP 原理
DistributedDataParallel 的初始化、前向传播与梯度同步。
PyTorchDDP
06
DDP 实战
使用 torchrun 启动多卡训练,编写一个简单的 DDP 训练脚本。
实战torchrun
07
模型分发与加载
DistributedSampler 的使用、模型保存与加载(单卡/多卡)。
保存加载
08
混合精度训练(AMP)
自动混合精度(AMP)在 DDP 中的集成与注意事项。
AMP精度
09
梯度累积
在 DDP 中实现梯度累积以模拟更大 Batch Size。
梯度累积
10
性能调优
计算与通信重叠(Overlap)、Bucket 大小调整、梯度压缩。
调优重叠
11
分布式 Batch Normalization
SyncBN 的原理与实现。
SyncBN归一化
12
数据加载优化
多进程 DataLoader、共享内存、预取机制。
DataLoader预取
13
常见错误与调试
NCCL 超时、CUDA 不可用、进程挂起等问题的排查。
调试NCCL
14
多机多卡训练
跨节点通信设置(网卡绑定、IB/RoCE 配置)。
多机IBRoCE
15
弹性训练(TorchElastic)
节点动态加入/退出的处理机制。
弹性TorchElastic
16
日志与监控
使用 TensorBoard 或 WandB 记录多卡训练指标。
TensorBoardWandB
17
模型并行 vs 数据并行
何时选择模型并行、流水线并行、张量并行。
模型并行流水线
18
FSDP(Fully Sharded Data Parallel)
ZeRO 优化器与 FSDP 的对比与使用。
FSDPZeRO
19
DeepSpeed 集成
DeepSpeed 引擎与 DDP 的异同,ZeRO 阶段配置。
DeepSpeedZeRO
20
Horovod 框架
Horovod 的安装、使用与性能对比。
Horovod框架
21
大规模 Batch Size 训练
学习率预热(Warmup)、余弦退火、LARS/LAMB 优化器。
WarmupLAMB
22
通信拓扑优化
NVIDIA DGX 架构、NVLink、NVSwitch 对通信的影响。
NVLink拓扑
23
梯度压缩与量化
1-bit SGD、TopK 稀疏化、QAT 在分布式中的应用。
压缩量化
24
异步并行策略
参数服务器架构(PS)与 AllReduce 架构的对比。
参数服务器PS
25
容错与检查点
定期保存 Checkpoint、故障恢复机制。
容错Checkpoint
26
分布式推理
多卡推理的 Batch 分发与结果聚合。
推理Batch
27
自定义通信操作
使用 torch.distributed 编写自定义 AllReduce。
自定义AllReduce
28
性能 Profiling
使用 PyTorch Profiler、NVIDIA Nsight Systems 分析瓶颈。
ProfilerNsight
29
云环境部署
AWS、GCP、阿里云上的多卡训练环境搭建。
云AWSGCP
30
未来趋势
GPU 虚拟化、超大规模集群训练、异构计算(CPU+GPU+NPU)。
趋势异构