01
吞吐量基础概念
什么是训练吞吐量,为什么它如此重要,吞吐量的衡量单位(样本/秒、Token/秒)。
基础指标
02
性能分析工具入门
使用 nvidia-smi、top、htop 监控系统资源,定位性能瓶颈。
工具监控
03
数据加载优化(上)
DataLoader 的工作原理,num_workers 的设置技巧,pin_memory 的作用。
数据CPU
04
数据加载优化(下)
使用 TFRecord / WebDataset 加速 I/O,数据预读取与缓存策略。
I/O缓存
05
数据增强加速
使用 Nvidia DALI 库进行 GPU 加速的数据增强,避免 CPU 瓶颈。
DALIGPU
06
混合精度训练(AMP)
FP16 与 FP32 的区别,AMP 的原理与实现,torch.cuda.amp 的使用。
精度AMP
07
分布式训练基础
数据并行(DP)与分布式数据并行(DDP)的区别,DDP 的启动方式。
分布式DDP
08
分布式训练进阶
梯度累积、通信拓扑优化(NCCL vs Gloo)、梯度压缩。
通信梯度
09
模型结构优化(上)
算子融合(Fuse Ops)、使用 torch.jit.script 加速推理。
算子JIT
10
模型结构优化(下)
Flash Attention、稀疏注意力机制、模型剪枝对吞吐的影响。
注意力剪枝
11
编译器优化
使用 torch.compile 与 XLA 编译模型,图模式与 eager 模式的对比。
编译XLA
12
显存优化(上)
梯度检查点(Gradient Checkpointing)、激活值重计算。
显存检查点
13
显存优化(下)
混合精度下的显存占用分析、模型并行(Tensor Parallelism)。
模型并行显存
14
流水线并行
GPipe 与 PipeDream 的原理,微批次(Micro-batch)的划分策略。
流水线微批次
15
通信优化
AllReduce 与 Ring-AllReduce 原理,带宽利用率优化。
通信AllReduce
16
异步与并发
使用 asyncio 与多线程处理数据预处理,避免 GIL 限制。
异步并发
17
I/O 路径优化
文件系统选择(Lustre vs NFS),数据分片与随机读取优化。
文件系统I/O
18
网络与存储协同
NVMe SSD 与高速网络(InfiniBand)的配置与调优。
存储网络
19
容器化与编排
使用 Docker 与 Kubernetes 管理训练任务,资源限制与请求设置。
容器K8s
20
实验管理
使用 MLflow / W&B 记录吞吐量指标,自动化对比实验。
MLflowW&B
21
基准测试方法论
如何设计科学的吞吐量对比实验,控制变量法。
基准方法
22
常见瓶颈案例分析
CPU 利用率低、GPU 空闲、数据加载慢等典型问题的排查。
瓶颈排查
23
大规模训练经验
千卡集群下的吞吐量线性度问题,负载均衡策略。
大规模线性度
24
模型服务化吞吐
从训练到推理的吞吐量转换,TensorRT 与 ONNX Runtime 优化。
推理TensorRT
25
量化技术
INT8 量化对推理吞吐的提升,量化感知训练(QAT)。
量化INT8
26
稀疏化与蒸馏
模型蒸馏对吞吐的影响,结构化稀疏与半结构化稀疏。
蒸馏稀疏
27
硬件选型指南
GPU(A100 vs H100 vs 4090)、CPU、内存、网络带宽的匹配。
硬件选型
28
成本与吞吐的平衡
如何根据预算选择最优配置,Spot 实例的使用。
成本Spot
29
自动化调优工具
使用 Optuna / Ray Tune 自动搜索最佳超参数与配置。
调优Optuna
30
综合实战
从零优化一个 ResNet-50 训练任务,吞吐量提升 5 倍的完整案例。
实战ResNet