这个专题是一套 36 章 NCCL 专家课程。每章都按“提出可证伪假设、直接阅读固定版本源码、运行控制变量实验、统计结果、用源码解释结果、明确结论边界”的顺序完成,不再把环境检查或文件路径列表当成教程。
实验环境的核心信息:
1
2
3
4
5
6
7
GPU: 4 x Tesla V100-SXM2-32GB
GPU 拓扑: GPU 两两 NV2
CUDA Toolkit: 12.6
PyTorch: 2.5.0a0+872d972e41.nv24.08
PyTorch CUDA: 12.6
PyTorch NCCL: 2.22.3
RDMA/HCA: 当前环境 ibv_devinfo 显示 0 HCAs found
课程规范:
下面这张图不是按 API 名称分类,而是按一个 NCCL 请求从环境、语义、算法、执行到生产治理所需的 能力依赖排列。后面的卷建立在前一卷已经能够被实验验证的基础上。
flowchart LR
V1["卷一 · 01-04<br/>版本 / 拓扑 / 异步 / Communicator"]
V2["卷二 · 05-07<br/>Collective 契约 / 顺序 / 分解"]
V3["卷三 · 08-11<br/>Benchmark / 模型 / 回归归因"]
V4["卷四 · 12-16<br/>Ring / Tree / 协议 / Tuning"]
V5["卷五 · 17-24<br/>初始化 / Graph / Transport / 执行"]
V6["卷六 · 25-28<br/>IB/RoCE / GDR / PXN / Offload"]
V7["卷七 · 29-32<br/>ProcessGroup / DDP / FSDP / 并行组"]
V8["卷八 · 33-36<br/>故障 / 观测 / 治理 / Capstone"]
V1 --> V2 --> V3 --> V4 --> V5 --> V6 --> V7 --> V8
学习顺序可以跳过暂时没有硬件的网络实验,但不能跳过其证据边界:没有 HCA、NVSwitch 或 SHARP 的机器,只能验证门控、fallback 和实验方法,不能生成对应数据面的性能结论。
已完成的新版章节
- 01:从 ELF 动态链接证明实际运行版本
- 02:从 NV2 拓扑到 P2P 带宽与并发争用
- 03:CUDA Stream、Work.wait 与真正的完成语义
- 04:Rank、Process Group 与 Communicator 生命周期
- 05:Collective 契约、内存布局与逐元素证明
- 06:Group、全局顺序与异步错误状态机
- 07:AllReduce 等价分解、显存生命周期与 Kernel 证据
- 08:从 nccl-tests 源码推导 algbw 与 busbw
- 09:Benchmark 方法学、同步边界与噪声证据
- 10:延迟-带宽分段模型、残差与 Tuner 预测
- 11:性能回归的分层归因与故障指纹
- 12:Ring AllReduce 逐步推导、真实 Ring 与 Channel 并行
- 13:Tree、双树、层次化连接与真实交叉区间
- 14:Simple、LL、LL128 的线格式、同步与性能边界
- 15:Channel、Chunk、Slice、Step、Buffer 与 CUDA Block
- 16:Tuning 代价模型、自动选择与 Tuner Plugin
- 17:Bootstrap 与 Communicator 初始化状态机
- 18:拓扑 XML、节点模型与路径计算
- 19:Graph Search、Ring/Tree 与 Channel 构造
- 20:Transport 选择、Connector 与连接生命周期
- 21:P2P Direct、CUDA IPC、Read/Write 与 SHM Copy Engine
- 22:Enqueue、Task、Plan、Work Batch 与 CUDA Graph
- 23:Device Kernel、Primitives、Step/Credit 与 LL Flag
- 24:CPU Proxy、NET Progress、Socket Helper 与 GPU 协作
- 25:Socket、InfiniBand、RoCE 与 Verbs 数据面
- 26:GPUDirect RDMA、DMA-BUF、MR 与注册缓存
- 27:Multi-NIC、Rail、Cross-NIC 与 PXN
- 28:CollNet、SHARP、NVLS 与插件门控
- 29:ProcessGroupNCCL、Stream、Event 与 Work
- 30:DDP Reducer、Bucket 与计算通信重叠
- 31:ZeRO-0/1/2/3、FSDP 与状态分片
- 32:TP、PP、EP/MoE 与多维 Process Group
- 33:Collective Mismatch、Hang、Rank Crash 与根因链
- 34:Debug、NVTX、Nsight 与 Flight Recorder 证据链
- 35:生产基线、回归判定与版本治理
- 36:一条 DDP AllReduce 的端到端证明
面试专题
后续课程结构
| 卷 | 章节 | 主题 |
|---|---|---|
| 一 | 01-04 | 软件栈、GPU 拓扑、CUDA 异步和 communicator |
| 二 | 05-07 | Collective 契约、顺序和等价分解 |
| 三 | 08-11 | 通信量、Benchmark、性能模型和回归归因 |
| 四 | 12-16 | Ring、Tree、协议、流水线和 Tuning |
| 五 | 17-24 | Bootstrap、Graph、Transport、Planner、Kernel 和 Proxy |
| 六 | 25-28 | IB/RoCE、GDR、PXN、NVLS 和插件 |
| 七 | 29-32 | ProcessGroupNCCL、DDP、FSDP 和模型并行 |
| 八 | 33-36 | 故障、可观测性、生产治理和端到端 Capstone |
配套实验脚本和日志已经作为静态附件放在:
1
2
/assets/files/nccl-learning/scripts/
/assets/files/nccl-learning/logs/
早期内容较浅的 NCCL 历史文章已下线;其可复用实验结果仍作为静态附件保留。上方 36 章是当前维护的完整课程。RDMA、NVSwitch、CollNet/SHARP 等章节在取得对应硬件前只给出源码结论和可执行实验方案,不给出虚构性能数据。