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

手把手排查NCCL通信瓶颈

📚 共计 30 章节
01
NCCL基础认知
什么是NCCL,为什么分布式训练需要它,NCCL在AI框架中的位置。
概念入门
02
环境准备与工具链
安装NCCL、配置环境变量、验证安装、常用调试工具 (nccl-tests, nvidia-smi, nvtop)。
环境工具
03
通信原语详解
AllReduce、AllGather、ReduceScatter、Broadcast的原理与适用场景。
原语原理
04
Ring AllReduce 算法
环形通信的数学原理、分步拆解、与Tree算法的对比。
算法Ring
05
NCCL拓扑感知
NVLink、PCIe、InfiniBand的拓扑结构,NCCL如何利用拓扑优化通信。
拓扑NVLink
06
NCCL ID 与初始化
ncclUniqueId的生成与分发,ncclCommInitRank调用流程,常见初始化失败原因。
初始化ID
07
同步与异步通信
ncclAllReduce同步模式 vs ncclGroupStart/End异步模式,如何选择。
同步异步
08
通信与计算重叠
使用CUDA Stream实现Overlap,NCCL的异步内核启动机制。
OverlapStream
09
NCCL 环境变量详解(上)
NCCL_DEBUG、NCCL_DEBUG_SUBSYS、NCCL_IB_HCA、NCCL_SOCKET_IFNAME。
环境变量调试
10
NCCL 环境变量详解(下)
NCCL_MIN_NCHANNELS、NCCL_NCHANNELS、NCCL_ALGO、NCCL_PROTO。
调优通道
11
性能基准测试
使用nccl-tests进行带宽测试,解读输出指标 (algbw, busbw),判断是否存在瓶颈。
基准nccl-tests
12
单机多卡性能分析
排查NVLink带宽利用率低、PCIe瓶颈、CPU内存拷贝开销。
单机NVLink
13
多机多卡性能分析
排查网络带宽瓶颈、跨机延迟、RoCE vs InfiniBand的选择。
多机网络
14
NCCL 日志分析
解读NCCL_DEBUG=INFO输出,定位连接建立、拓扑发现、协议选择等阶段。
日志DEBUG
15
常见错误码与故障排除
ncclSystemError、ncclInternalError、ncclInvalidArgument等。
错误码故障
16
网络瓶颈排查(上)
使用ibstatus/ibstat检查IB链路,使用perf统计网络流量。
IBperf
17
网络瓶颈排查(下)
排查TCP/IP协议栈瓶颈,调整MTU、拥塞控制、流控。
TCPMTU
18
GPU 显存带宽瓶颈
检查HBM带宽利用率,排查显存频率降级、ECC开启影响。
HBMECC
19
CPU 与内存瓶颈
检查numa绑定、内存带宽、CPU频率,避免跨NUMA通信。
NUMA内存
20
PCIe Switch 瓶颈
多GPU通过PCIe Switch互联时的带宽争抢,如何配置PCIe Gen。
PCIeSwitch
21
NCCL 算法选择与调优
Ring vs Tree vs CollNet,如何根据场景选择最优算法。
算法CollNet
22
NCCL 协议选择
Simple vs LL vs LL128,不同协议对带宽和延迟的影响。
协议LL128
23
NCCL 通道数调优
增加通道数以提升带宽,但注意显存开销和CPU负载。
通道NCHANNELS
24
NCCL 与 PyTorch DDP 集成
torch.distributed.init_process_group 的NCCL后端配置,常见集成问题。
PyTorchDDP
25
NCCL 与 Horovod 集成
Horovod的NCCL通信栈,与MPI模式的对比。
HorovodMPI
26
NCCL 与 DeepSpeed 集成
ZeRO优化器中的NCCL通信,通信与计算重叠的实践。
DeepSpeedZeRO
27
NCCL 与 Megatron-LM 集成
张量并行与流水线并行中的NCCL通信模式。
Megatron并行
28
NCCL 性能 Profiling
使用Nsight Systems、NCCL Profiler、PyTorch Profiler进行通信热点分析。
ProfilingNsight
29
NCCL 版本升级与兼容性
不同NCCL版本间的差异,升级注意事项,CUDA版本兼容性。
版本兼容
30
综合案例实战
从零排查一个多机多卡训练任务,定位并解决通信瓶颈,输出优化报告。
实战案例