1.4 多卡互联:HCCS、PCIe 与 RoCE 组网
从服务器内 8 卡的 HCCS 高速互连,到跨节点的 RoCE 网络,梳理昇腾多卡多机的互联拓扑,理解 HCCS 与 NCCL 时代的网络之争,为分布式训练打基础
单卡再强,也装不下千亿参数模型。大模型训练和推理的真相是「多卡协作」——而多卡协作的前提是「卡之间连得快」。这一章我们把昇腾的互联体系讲清楚:服务器内部怎么连(HCCS/PCIe),服务器之间怎么连(RoCE),以及为什么这决定了分布式训练的通信开销。
📑 目录
- 1. 昇腾互联全景
- 2. HCCS:服务器内的片间高速互连
- 3. PCIe:灵活的外设互连
- 4. RoCE:跨节点的无损网络
- 5. 典型组网拓扑:8卡单机与集群
- 6. 互联对分布式训练的影响
- 7. 如何检查你机器的拓扑
- 总结
- 延伸阅读
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↔NPU | PCIe | 数据预处理、控制指令、小包传输 |
推论:
- 拓扑感知很重要:同一台机器内的卡之间通信快,调度器/并行策略应优先把高频协作的 rank 放在同一台机器内。
- 通信算法有讲究:HCCL 提供 ring/tree 等算法,具体选型要看通信模式与硬件拓扑(详见第 4 章 HCCL)。
- 网络是集群成本大头: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查看机器拓扑,是昇腾学习者必备的日常操作。