Home NCCL 专家学习路线:36 章源码与实验课程
Post
Cancel

NCCL 专家学习路线:36 章源码与实验课程

这个专题是一套 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 和实验方法,不能生成对应数据面的性能结论。

已完成的新版章节

  1. 01:从 ELF 动态链接证明实际运行版本
  2. 02:从 NV2 拓扑到 P2P 带宽与并发争用
  3. 03:CUDA Stream、Work.wait 与真正的完成语义
  4. 04:Rank、Process Group 与 Communicator 生命周期
  5. 05:Collective 契约、内存布局与逐元素证明
  6. 06:Group、全局顺序与异步错误状态机
  7. 07:AllReduce 等价分解、显存生命周期与 Kernel 证据
  8. 08:从 nccl-tests 源码推导 algbw 与 busbw
  9. 09:Benchmark 方法学、同步边界与噪声证据
  10. 10:延迟-带宽分段模型、残差与 Tuner 预测
  11. 11:性能回归的分层归因与故障指纹
  12. 12:Ring AllReduce 逐步推导、真实 Ring 与 Channel 并行
  13. 13:Tree、双树、层次化连接与真实交叉区间
  14. 14:Simple、LL、LL128 的线格式、同步与性能边界
  15. 15:Channel、Chunk、Slice、Step、Buffer 与 CUDA Block
  16. 16:Tuning 代价模型、自动选择与 Tuner Plugin
  17. 17:Bootstrap 与 Communicator 初始化状态机
  18. 18:拓扑 XML、节点模型与路径计算
  19. 19:Graph Search、Ring/Tree 与 Channel 构造
  20. 20:Transport 选择、Connector 与连接生命周期
  21. 21:P2P Direct、CUDA IPC、Read/Write 与 SHM Copy Engine
  22. 22:Enqueue、Task、Plan、Work Batch 与 CUDA Graph
  23. 23:Device Kernel、Primitives、Step/Credit 与 LL Flag
  24. 24:CPU Proxy、NET Progress、Socket Helper 与 GPU 协作
  25. 25:Socket、InfiniBand、RoCE 与 Verbs 数据面
  26. 26:GPUDirect RDMA、DMA-BUF、MR 与注册缓存
  27. 27:Multi-NIC、Rail、Cross-NIC 与 PXN
  28. 28:CollNet、SHARP、NVLS 与插件门控
  29. 29:ProcessGroupNCCL、Stream、Event 与 Work
  30. 30:DDP Reducer、Bucket 与计算通信重叠
  31. 31:ZeRO-0/1/2/3、FSDP 与状态分片
  32. 32:TP、PP、EP/MoE 与多维 Process Group
  33. 33:Collective Mismatch、Hang、Rank Crash 与根因链
  34. 34:Debug、NVTX、Nsight 与 Flight Recorder 证据链
  35. 35:生产基线、回归判定与版本治理
  36. 36:一条 DDP AllReduce 的端到端证明

面试专题

后续课程结构

章节主题
01-04软件栈、GPU 拓扑、CUDA 异步和 communicator
05-07Collective 契约、顺序和等价分解
08-11通信量、Benchmark、性能模型和回归归因
12-16Ring、Tree、协议、流水线和 Tuning
17-24Bootstrap、Graph、Transport、Planner、Kernel 和 Proxy
25-28IB/RoCE、GDR、PXN、NVLS 和插件
29-32ProcessGroupNCCL、DDP、FSDP 和模型并行
33-36故障、可观测性、生产治理和端到端 Capstone

配套实验脚本和日志已经作为静态附件放在:

1
2
/assets/files/nccl-learning/scripts/
/assets/files/nccl-learning/logs/

早期内容较浅的 NCCL 历史文章已下线;其可复用实验结果仍作为静态附件保留。上方 36 章是当前维护的完整课程。RDMA、NVSwitch、CollNet/SHARP 等章节在取得对应硬件前只给出源码结论和可执行实验方案,不给出虚构性能数据。

This post is licensed under CC BY 4.0 by the author.

分布式系统基础

NCCL 专家课程 02:从 NV2 拓扑到 P2P 带宽与并发争用