VIP20
本课程属于:002-NCCL多卡通信 AI算力与GPU工程 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

NCCL多卡通信性能调优实战

📚 共计 30 章节
01
NCCL概述
什么是NCCL · 分布式训练角色 · vs GLOO/MPI
基础对比
02
环境准备
安装与版本选择 · CUDA兼容性 · NVLink/PCIe拓扑
环境检测
03
通信原语
AllReduce/AllGather/ReduceScatter/Broadcast
原语原理
04
Ring算法
Ring AllReduce · ReduceScatter+AllGather · 带宽分析
算法核心
05
Tree算法
Tree AllReduce · 与Ring对比 · 选型场景
算法对比
06
NCCL ID与初始化
ncclUniqueId生成 · CommInitRank/All · 进程组
初始化通信
07
同步与异步通信
同步调用 · Group批处理 · CUDA Stream绑定
同步异步
08
通信与计算重叠
Stream Overlap · 多Stream调度 · Kernel并行
优化重叠
09
拓扑感知与算法选择
ncclTopoDetect · NCCL_ALGO · 自动选择
拓扑调优
10
NVLink与NVSwitch
NVLink拓扑 · NVSwitch全互联 · DGX优化
硬件NVLink
11
IB与RoCE网络
InfiniBand vs RoCEv2 · GDR原理 · 网络配置
网络RDMA
12
多节点通信
跨节点瓶颈 · 网络接口绑定 · bonding/负载均衡
多节点分布式
13
NCCL环境变量详解
NCCL_DEBUG/IB_HCA/NET_GDR_LEVEL/MIN_NCHANNELS
变量调试
14
性能Profiling
nsys分析 · DEBUG=TRACE · Trace/Dump机制
分析Profiling
15
带宽测试
nccl-tests · AllReduce/AllGather对比 · 影响因素
测试带宽
16
延迟优化
小消息优化 · TUNER_PLUGIN · 减少通信步数
延迟调优
17
内存与显存管理
内部Buffer · 用户注册 · P2P_DISABLE · 碎片影响
内存显存
18
多进程与多线程
多进程共享 · COMM_ID · 线程安全
并发进程
19
故障排查
超时/hang · DEBUG_SUBSYS · 错误码解决方案
排错debug
20
调优案例1:单机8卡A100
Ring vs Tree实测 · 最优channel数探索
案例A100
21
调优案例2:双机16卡IB
GDR开关对比 · 跨节点瓶颈定位
案例IB
22
调优案例3:混合精度训练
FP16 vs FP32 · 梯度压缩+NCCL
混合精度压缩
23
NCCL与PyTorch DDP
torch.distributed后端 · 梯度同步 · bucket size
PyTorchDDP
24
NCCL与Horovod集成
Horovod NCCL后端 · hvd.allreduce · 调优参数
Horovod集成
25
NCCL与DeepSpeed集成
ZeRO优化器 · 通信量减少 · Profiling
DeepSpeedZeRO
26
NCCL与Megatron-LM集成
张量并行 · 流水线并行 · TP/PP重叠
Megatron并行
27
NCCL新特性
2.18+ · CollNet/Sharp · NVLink4.0/PCIe5.0
新特性前瞻
28
自定义NCCL通信
编写通信程序 · ncclSend/Recv · 自定义AllReduce
编程实践
29
NCCL性能模型
通信时间建模 · 带宽延迟关系 · Roofline分析
理论模型
30
总结与最佳实践
调优checklist · 常见陷阱 · 生产部署建议
总结最佳实践