跳到主要内容
昇腾AI芯片与算子开发

1.4 多卡互联:HCCS、PCIe 与 RoCE 组网

从服务器内 8 卡的 HCCS 高速互连,到跨节点的 RoCE 网络,梳理昇腾多卡多机的互联拓扑,理解 HCCS 与 NCCL 时代的网络之争,为分布式训练打基础

昇腾 HCCS RoCE PCIe 互联拓扑

单卡再强,也装不下千亿参数模型。大模型训练和推理的真相是「多卡协作」——而多卡协作的前提是「卡之间连得快」。这一章我们把昇腾的互联体系讲清楚:服务器内部怎么连(HCCS/PCIe),服务器之间怎么连(RoCE),以及为什么这决定了分布式训练的通信开销。

📑 目录


1. 昇腾互联全景

昇腾的互联体系分两个层次:

┌────────────────────────────────────────────┐
│  单台服务器(例如 Atlas 800T A2:8 卡)       │
│  卡间互连:HCCS(片间高速总线)+ PCIe        │
└────────────────────────────────────────────┘
          │  RoCE(RDMA over Converged Ethernet)
          ▼
┌────────────────────────────────────────────┐
│  集群(多台服务器,几百到几千卡)            │
│  组网:RoCE 高速以太网(100G/200G/400G)     │
└────────────────────────────────────────────┘

一句话版本:

「机内用 HCCS 把 8 张卡焊成一个高速整体,机间用 RoCE 把服务器组成大规模集群。」

2. HCCS:服务器内的片间高速互连

HCCS(Huawei Cache Coherent System,华为高速缓存一致性系统) 是昇腾芯片之间、芯片与部件之间的高速互连总线,可以类比 NVIDIA 的 NVLink。

关键认知:

  • 片间直连:HCCS 把同一台服务器里的多张昇腾卡直接连起来,带宽显著高于 PCIe。
  • 多通道:一张训练卡通常有多个 HCCS 通道(具体数量随芯片代际变化),以「环网/全互联」方式把 8 张卡织成一张网。
  • 缓存一致性:HCCS 的「C」代表 Cache Coherent——它不只是搬数据,还支持一定的内存一致语义,这对张量并行中频繁的通信很友好。
  • 作用:数据并行(AllReduce)、张量并行(AllGather/ReduceScatter)等高强度通信,主要跑在 HCCS 上。

对比 NVIDIA:HCCS ≈ NVLink(都是机内高带宽专用互连)。只不过 NVIDIA 用 NVSwitch 构建全互联,昇腾更多用「8 卡环/全互联 + 软件算法」来实现,各有取舍。

3. PCIe:灵活的外设互连

PCIe 在昇腾平台上扮演「通用但相对慢」的角色:

  • 昇腾推理卡(如 300I 系列)通常以 PCIe 卡形态插在服务器上,通过 PCIe 与 CPU 通信。
  • 训练服务器里 PCIe 用于 CPU↔NPU 的指令下发、小数据交换和启动阶段的数据传输。
  • 相比 HCCS,PCIe 带宽小、延迟高,不适合承载高频大流量通信。

类比:PCIe ≈ GPU 世界里 CPU↔GPU 的 PCIe 总线;而 HCCS ≈ NVLink。训练时「张量放哪、通信走哪条路」,取决于数据所在位置与带宽匹配。

4. RoCE:跨节点的无损网络

跨节点通信是另一个世界——单台服务器装不下几千张卡。昇腾集群通过 RoCE(RDMA over Converged Ethernet,融合以太网上的 RDMA) 组网:

  • RDMA:绕过操作系统内核、直接读写对端内存,延迟极低、CPU 占用小。
  • 无损网络:通过 PFC(优先级流控)/ECN 等机制让以太网「接近不丢包」,RDMA 才能高效工作。
  • 带宽演进:昇腾集群普遍使用 100G/200G,并向 400G 演进(以官方发布的组网方案为准)。
  • 规模:从几十卡到万卡集群,靠多层(Spine/Leaf)CLOS 拓扑扩展。

对比 NVIDIA:NVIDIA 集群用 InfiniBand(也有 RoCE 方案);昇腾主要走 RoCE 路线。两者本质都是「RDMA 高速网络」,软件层逻辑(通信算法、拓扑感知)高度相似。

5. 典型组网拓扑:8卡单机与集群

单机 8 卡(训练服务器内部)

以 Atlas 800T A2 / A3 这类 8 卡训练服务器为例:

   NPU0 ──HCCS── NPU1 ──HCCS── NPU2 ──...── NPU7
     │               │               │
     └──── HCCS 环网/交叉互联织成一张网 ────┘
  • 8 张卡通过 HCCS 组成高速互连网,任意两张卡之间都有较短的通信路径。
  • 这张「机内网」是数据并行梯度 AllReduce、张量并行切分通信的主通道。
  • 每张卡通过 PCIe/RoCE 控制口连接到 CPU 与外部网络。

多机集群

   服务器1(8卡)       服务器2(8卡)      服务器N(8卡)
   NPU0..NPU7           NPU0..NPU7        NPU0..NPU7
     │ RoCE 200G/400G      │ RoCE             │ RoCE
     ▼                     ▼                  ▼
   ┌─ Spine 交换机 ────────────────────────────┐
   └─ Leaf 交换机(TOR)  ─────────────────────┘
        (CLOS 多层架构,带宽收敛比低)
  • 跨节点通信走 RoCE,节点内通信走 HCCS。
  • 好的分布式训练策略会尽量把高频通信留在机内(HCCS),把跨机通信量压到最低——这正是 3D 并行里「拓扑感知」的动机。

6. 互联对分布式训练的影响

互联拓扑直接决定分布式训练能跑多快:

通信类型走什么路典型负载
机内 8 卡通信HCCS(高带宽)单机 DDP/FSDP 的 AllReduce、TP 的 AllGather/ReduceScatter
跨机通信RoCE(相对慢)跨机 DP 梯度同步、跨机 TP/PP
CPU↔NPUPCIe数据预处理、控制指令、小包传输

推论:

  1. 拓扑感知很重要:同一台机器内的卡之间通信快,调度器/并行策略应优先把高频协作的 rank 放在同一台机器内。
  2. 通信算法有讲究:HCCL 提供 ring/tree 等算法,具体选型要看通信模式与硬件拓扑(详见第 4 章 HCCL)。
  3. 网络是集群成本大头:RoCE 交换机的带宽/端口数量直接决定集群规模与成本,这也是为什么「网卡不够」会卡住大模型训练的常见原因。

7. 如何检查你机器的拓扑

拿到一台昇腾机器,先学会「看拓扑」:

  • npu-smi info:查看 NPU 列表、温度、利用率、HBM 占用等基础信息(类似 nvidia-smi)。
  • npu-smi info -t board / -t topology 类子命令:查看板卡/互联拓扑信息(以你的驱动版本支持为准)。
  • lspci | grep -i ascend/huawei:查看 PCIe 形态的昇腾设备。
  • HCCL 环境:跑分布式训练前,检查 HCCL_* 环境变量与 /etc 下的网络配置,确认 RoCE 网卡状态。

养成「先看拓扑,再定并行策略」的习惯,会让你少踩很多通信瓶颈的坑。

总结

  • 昇腾互联体系 = 机内 HCCS/PCIe(高速/通用)+ 机间 RoCE(RDMA 无损网络)。
  • HCCS 承担 8 卡训练的高频通信,RoCE 承担跨节点扩展,PCIe 负责 CPU↔NPU 的控制与传输。
  • 拓扑感知是分布式训练调优的关键:高频通信尽量留在机内,跨机通信量尽量压缩。
  • 用 npu-smi info 查看机器拓扑,是昇腾学习者必备的日常操作。

延伸阅读