Netpath
HPC · 机内互联、RDMA 与网络库

高性能网络

AI 训练与高性能存储的主战场。先弄清这套体系是什么:RDMA 为什么快、IB 与 RoCE 各自是一套什么东西、整张网大致长什么样;然后动手把一条链路配通、跑出线速、用 NCCL 验收,并把需求算成一张采购表;最后再往下拆机内互联与卸载路径 —— PCIe、NVLink、GPUDirect 这些,是撞到具体瓶颈时才真正用得上的原理。

4 个小组 · 18 节课 · 约 10 小时已完成 0/18
Section 1

概念:这套体系是什么

4 节 · 135 分钟

RDMA 为什么快、IB 与 RoCE 各是一套什么东西、整张网大致长什么样。

  1. 1

    为什么需要 RDMA:内核旁路与零拷贝

    原理30m

    同样的 100Gbps 网卡,TCP 与 RDMA 的延迟差一个数量级。差在哪里,代价是什么。

    • 说清 TCP 路径上哪几步被 RDMA 省掉了
    • 解释 QP、CQ、MR、Verbs 这几个基本概念
    • 判断一个业务该不该上 RDMA
  2. 2

    InfiniBand 架构:子网管理器、LID 与 UFM

    原理35m

    IB 不是"快一点的以太网",它是另一套体系:地址、路由、拥塞控制全都自成一家。

    • 解释 SM 的作用,说出 SM 失效会发生什么
    • 区分 LID 与 GID,并读懂 ibstat / ibstatus 输出
    • 用 ibdiagnet 之类的工具做一次链路体检
  3. 3

    RoCEv2 与无损以太网:PFC、ECN 与 DCQCN

    原理40m

    把 RDMA 跑在以太网上,全部难点集中在一件事:不能丢包。

    • 解释 PFC 与 ECN 的分工,说出只配一个会怎样
    • 看懂 PFC 风暴与死锁的形成条件
    • 列出交换机与主机两侧必须对齐的配置项
  4. 4

    Fat-Tree 与 Rail-Optimized 拓扑

    原理30m

    GPU 集群的网络拓扑不是"接上就行",接错了 AllReduce 直接掉一半带宽。

    • 画出两层 Fat-Tree 并算出它的无阻塞条件
    • 解释 rail-optimized 布线为什么能让同 rail 通信只走一跳
    • 说清 NVLink 域与网络域的边界在哪
Section 2

实践:打通并验收一条链路

4 节 · 135 分钟

先把多网卡的选路配对,再在两台裸机之间跑出线速,最后用 NCCL 给整个集群体检。

  1. 5

    策略路由:多网卡机器的 ARP 与选路

    原理30m

    八卡 RoCE 节点上 ib_send_bw 连得上但走错网卡。根因不在网卡,在 Linux 的默认行为。

    • 解释 weak host model 如何导致 ARP flux 与非对称路由
    • 按「一张卡一张路由表」配出 ip rule,并用 ip route get 验证结果
    • 为多 rail 集群选择地址方案,说清同网段方案必须补哪三步
  2. 6

    动手:用 perftest 打通第一条 RDMA 链路

    实验35m

    ib_send_bw 跑不出线速时,问题几乎总在 GID、设备名或 MTU 上。

    • 用 show_gids 选对 GID index 并解释为什么要选
    • 跑 ib_send_bw / ib_write_lat 并判读结果是否合格
    • 按结果区分是链路问题、配置问题还是拓扑问题
  3. 7

    动手:NCCL 与 busbw 判读

    实验40m

    AllReduce 的 busbw 是 GPU 集群的网络体检报告。这节讲怎么跑、怎么读、怎么调。

    • 跑通多节点 all_reduce_perf 并确认正确性检查通过
    • 用 2(n-1)/n 校正因子把 busbw 与硬件峰值对比
    • 按机型配对 NCCL_IB_HCA、NCCL_SOCKET_IFNAME 等关键变量
  4. 8

    闯关:AllReduce 只有理论值一半

    闯关30m

    两节点 16 卡,busbw 卡在一半上不去。在模拟终端里查出它到底走没走 RDMA。

    • 从 NCCL 日志判断走的是 RDMA 还是 TCP
    • 核对 GID、HCA 名称与网卡速率是否符合预期
    • 定位到一处具体配置错误并说明修法
Section 3

实践:选型与规划

3 节 · 95 分钟

把模糊需求问成数字,选定方案,再算成一张能拿去采购的表。

  1. 9

    需求拆解:从业务话术到端口和带宽

    原理入门25m

    "我们要建个 AI 集群"这句话里没有一个可采购的数字。这节讲怎么问出来。

    • 用一份清单把模糊需求问成可计算的参数
    • 区分必须独立成网与可以共用的流量类型
    • 识别报价单里最容易被漏掉的项
  2. 10

    选型对比:IB、RoCE 与 Spectrum-X

    原理30m

    同一笔预算三种方案,差别不在峰值带宽,在运维成本和确定性。

    • 按团队能力与规模给出一个能落地的选型建议
    • 说出三种方案在拥塞控制上的本质差异
    • 列出各方案的隐性成本
  3. 11

    高性能网络规划:SU、Rail 与线缆账

    规划40m

    按 GPU 数算出计算网的 leaf/spine 台数与线缆数,并核对无阻塞条件。

    • 按 rail-optimized 原则算出交换机与线缆数量
    • 核对两层 Fat-Tree 的无阻塞条件是否成立
    • 把结果与 DGX SuperPOD 参考架构的数字对上
Section 4

原理:再往下拆一层

7 节 · 215 分钟

跑通之后回头看机内互联与卸载路径 —— 遇到具体瓶颈时才真正用得上。

  1. 12

    PCIe:机内的那张网

    原理深入35m

    PCIe 不是总线而是一张交换网。槽位插错、代际不对,400G 网卡只能跑出一半。

    • 按代际与 lane 数算出一条 PCIe 链路的可用带宽,并判断它够不够喂满某张网卡
    • 用 lspci 与 nvidia-smi topo 读出实际协商结果与设备间的拓扑关系
    • 说出 GPUDirect 对 PCIe 拓扑与 ACS 的要求
  2. 13

    NVLink 与 NVSwitch:机内的 GPU 高速网

    原理深入35m

    GPU 之间走 PCIe 太慢,于是有了另一张网。搞清它的边界在哪,才知道哪些流量会上机间网络。

    • 说出各代 NVLink 的单卡带宽与链路数,并把它和 PCIe、机间网络放在同一把尺子上比
    • 解释 NVSwitch 让 8 卡全带宽互联的原理,以及 NVL72 把域扩到 72 卡意味着什么
    • 用 nvidia-smi 读出 NVLink 状态与吞吐,判断某条链路是否掉了
  3. 14

    GPUDirect RDMA 与 GPUDirect Storage

    原理深入30m

    让网卡直接读写显存,把 CPU 和主存彻底从数据路径上摘掉。

    • 画出开启与未开启 GPUDirect RDMA 时的数据路径差异
    • 列出生效的前提条件(驱动、PCIe 拓扑、ACS)
    • 验证 GPUDirect 是否真的生效
  4. 15

    MPI 与集合通信:谁在真正搬数据

    原理深入30m

    MPI 在 AI 训练里常常只是个启动器,真正的通信由 NCCL 完成。搞清分工才能调对。

    • 说清 MPI 与 NCCL 在 AI 训练里的分工
    • 看懂 mpirun 常用参数对性能的影响
    • 排查 hcoll 与 NCCL 冲突这类初始化失败
  5. 16

    NVMe-oF:把 NVMe 协议搬到网络上

    原理深入30m

    远端盘做到接近本地盘的延迟,靠的是不做协议转换。

    • 区分 NVMe/RDMA、NVMe/TCP、NVMe/FC 三种传输
    • 解释 NVMe-oF 相比 iSCSI 的延迟优势来自哪里
    • 完成一次 discover 与 connect 并确认多路径
  6. 17

    DPU 与 Spectrum-X:把网络卸载到卡上

    原理深入25m

    交换机和网卡开始跑自己的操作系统。这对运维意味着多了一层要管的东西。

    • 说出 DPU 能卸载哪些工作以及收益来源
    • 解释 Spectrum-X 用什么手段接近 IB 的确定性
    • 判断当前规模是否值得引入 DPU
  7. 18

    DPDK:用户态轮询与大页内存

    原理深入30m

    把网卡从内核手里抢过来自己轮询,换来极低延迟和整核的 CPU 占用。

    • 解释轮询模式驱动为什么比中断快
    • 列出 DPDK 的部署前提与资源代价
    • 判断该选 DPDK 还是 XDP 还是 RDMA