LLM 推理 · RoCE 多网卡架构

大模型部署服务 RoCE 多网卡架构与方案详解:
一台 8 卡服务器如何喂饱 3.2T 带宽?

多网卡不是「插满就行」——GPU-NIC 对等映射、NUMA 亲和与多轨独立才是正解

上一篇讲清了 RoCE 网络的「道路」——无损以太网与组网拓扑;这一篇讲「车道」——一台服务器里的多张网卡如何组队,把通信带宽榨干。

一台 8 卡 GPU 服务器的网络出口是它的生死线:单张 400G 网卡看似很宽,但对 8 卡聚合通信需求来说远远不够。于是主流方案是每 GPU 对应一张网卡,一台 8 卡机插满 8×400G 网卡,单机网络带宽 3.2Tbps(腾讯星脉同款配置)。

但多网卡绝不是「插上去就完事」,三个容易被忽略的事实:

  1. NCCL 不会自动聚合多网卡——不加干预,可能大部分流量都挤在一张网卡上,其余 7 张闲置
  2. 网卡插错位置等于白插——跨 NUMA 走 QPI/UPI 转发会吃掉大量带宽,必须做好 GPU-NIC 亲和规划
  3. 正确的姿势是「多轨独立」而非「链路聚合」——8 张网卡各自独立 IP、各自挂一个 Rail,配合策略路由与 PXN 机制才能线性叠加带宽

搞对之后的效果也很直接:Mooncake Transfer Engine 借助多网卡聚合(最高 8×400Gbps),在 RoCE 网络下实测 KV Cache 传输速度达 190GB/s,驱动了 Kimi K2(1T 参数)在 128 张 H200 上的 PD 分离部署。

为什么需要

一、为什么一张网卡不够用

AllReduce 的带宽账

数据并行的梯度同步时间可以近似为:通信时间 ≈ 数据量 / 有效带宽。8 张卡做一次 AllReduce,每个 step 要搬运的梯度数据动辄 GB 级;模型越大、卡越多,单次同步的数据量越大。

单张 400G 网卡的理论带宽约 50GB/s(单向),扣掉协议开销后更少。当 8 卡聚合通信需求达到数百 GB/s 量级时,单网卡直接成为全机瓶颈——通信占比冲上 40%(训练 profiling 的典型案例)也就不奇怪了。

推理侧的带宽账

PD 分离场景更夸张:一次长上下文的 KV Cache 搬运就是几 GB 到几十 GB,还要满足「不拖慢 TTFT」的低延迟要求。单网卡既吃不下带宽,也扛不住突发。

结论很朴素:网卡数量要和 GPU 数量对齐,1 GPU : 1 NIC 是对等设计的基准线。

服务器内部拓扑

二、先看服务器内部拓扑:GPU、网卡、PCIe 与 NUMA

多网卡方案的第一步,是看懂 8 卡服务器的内部骨架(以 DGX/HGX 基板为例):

组件作用
GPU ×8算力主体,两两之间通过 NVSwitch 全互联
NVSwitchNVLink 交换芯片(A100 时代 6 颗、H100 时代 4 颗),实现 GPU 间高速全互联
PCIe SwitchGPU 与 CPU、NVMe、网卡之间的通用连接通道
双路 CPU(两侧 NUMA)通用计算与调度,各自管理一半 PCIe 资源
NIC ×8对外 RDMA 出口,理想情况每 GPU 对一张

三个关键约束

  1. PCIe 根复杂度(Root Complex):每颗 CPU 管理的 PCIe 根下挂哪些 GPU 和网卡,是固定的物理事实。GPU 与它通信的网卡如果不挂同一 PCIe 根,数据就要跨 CPU 走 QPI/UPI,带宽打折、延迟上升
  2. NUMA 亲和:GPU 直连内存与网卡直连内存应落在同一 NUMA 域,避免远程内存访问
  3. PCIe 带宽匹配:400G 网卡通常需要 PCIe 5.0 x16 插槽,插到低带宽槽位等于自废武功——网卡带宽超过插槽带宽的部分全是浪费

一句话总结:多网卡不是「插得满」,而是「插得对」——每张网卡必须站在自己 GPU 的 PCIe 根与 NUMA 域内。

三种方案模式

三、多网卡的三种方案模式

方案做法适用场景评价
① LACP 链路聚合(bonding)多张网卡绑定为一个逻辑口,交换机侧聚合通用业务、主备冗余不适合 RDMA 集合通信:哈希极化、单流无法叠加带宽
② 多轨独立(multi-rail)每 NIC 独立 IP、各自挂一个 Rail,上层库按对分配GPU 集群主流带宽线性叠加、路径隔离、故障影响面小
③ 端到端多路径NCCL channel 分配 + PXN 转发 + Transfer Engine 多网卡池化训练与推理全场景把多网卡优势发挥到极致

为什么大模型场景普遍放弃 bonding?

LACP 的本质是「把多条链路伪装成一条」,靠哈希把不同流摊到不同成员口。但 AllReduce/KV Cache 大块传输往往是数量少、单流极大的流型:一条流只会被哈希到一张网卡上,永远吃不到第二张卡的带宽。加上哈希不均带来的极化问题,bonding 在 RDMA 集合通信里是典型的「负优化」。

正确姿势:每张网卡独立 IP、独立路由表项,让上层通信库(NCCL / Transfer Engine)显式地把不同的通信对分配到不同的网卡上。

NCCL 多网卡机制

四、NCCL 多网卡通信机制:从「插满」到「用满」

1. NCCL 不会自动聚合——要显式对齐

实践中最常见的坑:8 张网卡都通了,跑 AllReduce 却只跑满一两张。排查顺序应该是 Rail、HCA、拓扑三对齐:

2. Channel 分配:不同 GPU 对走不同网卡

NCCL 内部把通信拆成多个 channel,不同 GPU 对之间的流量分配到不同 NIC 上。拓扑对齐后,每张网卡各司其职,总带宽随网卡数量线性增长。

3. PXN(PCI×NVLink):让数据「借道 NVLink」出网

跨 NUMA 是 NCCL 多网卡场景的头号性能杀手。PXN 机制的核心思路:数据先通过 NVSwitch 全互联转发到目标网卡同轨的 GPU,再从那张 GPU 对应的网卡出去。全程 GPU 直连转发,规避 CPU 内存拷贝与跨 NUMA 的 QPI/UPI 转发瓶颈,最大化每张网卡的满带宽利用率。

4. 多出口的策略路由

8 张网卡意味着 8 个独立网络出口。为避免回包走错出口导致通信失败,服务器需要配置 Linux 多路由表 + 策略路由:按源 IP/网卡把流量锁定在各自 Rail 平面内——这与传统云网的配置方式完全不同,是智算网络运维的基本功。

推理侧多网卡

五、推理侧的多网卡:Transfer Engine 的多网卡聚合

训练看 NCCL,推理看传输引擎。PD 分离的 KV Cache 搬运是推理网络最大的流量,Mooncake Transfer Engine 把多网卡用到了极致:

能力说明
多网卡聚合最高聚合 8×400Gbps,RoCE 网络下实测传输速度 190GB/s
拓扑自动发现初始化时探测 CPU/CUDA/RDMA 设备拓扑,自动安装合适的 Transport
全链路零拷贝GPUDirect RDMA 直传 DRAM/VRAM,CPU 开销可忽略
多网卡池化单机多 RDMA 网卡统一池化管理,带宽充分打满
路径容错单张 RDMA 网卡故障时自动识别替代路径,请求重提交到其他网卡

真实案例:MooncakeConnector 基于 Transfer Engine 的多网卡 RDMA 聚合带宽,驱动了 Kimi K2(1T 参数)在 128 张 H200 上的 PD 分离部署——这是多网卡方案在超大规模推理上的实战背书。

实践与演进

六、业界实践与带宽演进

1. 业界的多网卡共识

2. 带宽演进路线

阶段网卡速率单机 8 卡带宽关键点
当前主流400G3.2Tbps星脉同款配置,推理/训练通用
正在上量800G6.4Tbps需 PCIe 5.0 更宽通道,Spectrum-X/Quantum-X 支持
下一跳1.6T12.8Tbps液冷 + 更高密度端口

演进的核心约束始终是那句老话:网卡带宽、PCIe 带宽、交换机端口速率三者必须同步升级,任何一环掉队都会卡住整机通信。

部署要点

七、多网卡部署设计要点(八条)

  1. 1 GPU : 1 NIC 对等映射:网卡数量与 GPU 数量对齐,每张网卡绑定专属 GPU,基准线不妥协
  2. NUMA 与 PCIe 根亲和:GPU 与对应网卡同 NUMA、同 PCIe 根,杜绝跨 CPU 的 QPI/UPI 转发
  3. 插槽带宽匹配:400G 网卡用足 PCIe 5.0 x16,验收时用 lspci/拓扑工具核对每张网卡的实测带宽
  4. 放弃 bonding,走多轨独立:每 NIC 独立 IP + 独立 Rail,上层库显式分配通信对
  5. Rail 对齐 + HCA 显式指定:同卡号同轨布线,NCCL_IB_HCA 锁定网卡列表,杜绝「插满跑不满」
  6. 策略路由规划出口:Linux 多路由表 + 策略路由,回包锁定各自 Rail 平面,防止串轨
  7. 开启 PXN 等转发优化:用 NVSwitch 直连转发规避跨 NUMA 瓶颈,最大化每卡带宽利用率
  8. 每网卡独立监控 + 容错:逐 NIC 监控利用率、ECN 标记率与错误计数,识别负载不均衡;推理侧启用 Transfer Engine 的多网卡路径切换,单卡故障不中断服务
总结

八、写在最后

多网卡架构的真相是:带宽是物理的,利用率是设计的。插满 8 张 400G 网卡只是开始,把 3.2Tbps 的每一分带宽都变成通信能力,靠的是拓扑对齐、NUMA 亲和、多轨独立与 PXN 这一整套组合拳——差一步,钱就白花了。

关于向量云:不必亲手调 8 张网卡,也能拿到高效推理

多网卡的隐性成本极高:PCIe 根规划、NUMA 亲和、策略路由、HCA 对齐、逐卡调优,每一项都是资深 Infra 工程师的活。对绝大多数应用团队来说,自己攒 8×400G 的推理节点既不经济也不必要。向量云(向量云南京科技有限公司)依托字节跳动火山方舟官方授权,把「多网卡 + RoCE 网络 + GPU 算力 + 调度」全部打包成开箱即用的推理服务:

向量云能力说明
官方授权接入火山方舟官方授权,提供官方 API 与官方 Key
低折扣 Token专属折扣价,用量越大越划算
独享接入点独立接入点,配额与稳定性更有保障
缓存隔离降本缓存隔离机制,把缓存命中红利吃到最大
计费灵活按量计费、即用即扣、不设账期,注册充值 10 元起
协议兼容OpenAI 兼容协议,业务代码几乎零改动

接入方式:注册后获取官方 API Key,把 base_url 指向向量云接入点即可直接调用火山方舟官方模型——网卡拓扑的复杂性交给平台,稳定性和成本优势留给你的业务。

获取 API Key:https://ark.tokenrize.cn/ · 火山方舟官方 API 与 Key 直连,注册即用

一句话总结:多网卡的价值不在「插满」,而在「对齐」——拓扑对齐、NUMA 对齐、Rail 对齐三件套齐了,3.2T 才是真的 3.2T;不想费这个劲,就用向量云把带宽焦虑彻底外包。

关于向量云
向量云(南京)科技有限公司

面向大模型应用落地的技术服务型企业,依托字节跳动火山方舟能力,为合作方提供低折扣模型 Token、可独立部署的运营支撑平台及全链路运营支持。

火山方舟官方授权 官方 API Key 独享接入点 缓存隔离降本 低折扣 Token 即用即扣 · 不设账期

常见问题(FAQ)

火山方舟官方 API 与官方 Key 直连 · 向量云 · 大模型部署降本

Q1. 为什么 8 卡 GPU 服务器要插 8 张网卡?

A. 因为单张 400G 网卡撑不住 8 卡的聚合通信需求。数据并行 AllReduce 的通信时间 ≈ 数据量 / 有效带宽,8 卡每个 step 搬运的梯度数据动辄 GB 级;单张 400G 网卡约 50GB/s(单向),会成为全机瓶颈——典型案例中通信占比可冲上 40%。PD 分离的 KV Cache 搬运同理(几 GB 到几十 GB 的大块突发)。因此主流方案是每 GPU 对应一张网卡(1 GPU : 1 NIC),8×400G 合计 3.2Tbps(腾讯星脉同款配置)。

Q2. 多网卡为什么要做 NUMA 亲和与 PCIe 根规划?

A. 8 卡服务器的 GPU 与网卡通过 PCIe 根复杂度(Root Complex)挂在双路 CPU 两侧。如果 GPU 与它通信的网卡不在同一 PCIe 根 / 同一 NUMA 域,数据就要跨 CPU 走 QPI/UPI 转发,带宽打折、延迟上升,网卡等于白插。此外插槽带宽也要匹配:400G 网卡通常需要 PCIe 5.0 x16,插到低带宽槽位,超出部分全是浪费。所以「插得满」不如「插得对」。

Q3. 多网卡用 LACP bonding 还是多轨独立?

A. 大模型场景普遍放弃 bonding(LACP 链路聚合)。LACP 靠哈希把不同流摊到不同成员口,而 AllReduce/KV Cache 大块传输是「数量少、单流极大」的流型:一条流只会被哈希到一张网卡,永远吃不到第二张卡的带宽,还有哈希极化风险。正确姿势是多轨独立(multi-rail):每张网卡独立 IP、各自挂一个 Rail,由 NCCL / Transfer Engine 显式把不同通信对分配到不同网卡,带宽线性叠加、故障影响面小。

Q4. NCCL 会「自动用满」多张网卡吗?PXN 是什么?

A. 不会。NCCL 不会自动聚合多网卡,需要 Rail、HCA、拓扑三对齐:同卡号 GPU 的网卡接同组交换机(Rail 对齐)、用 NCCL_IB_HCA 显式指定网卡列表(HCA 对齐)、确认 NCCL 感知的 GPU-NIC 邻接关系与实际布线一致(拓扑对齐)。对齐后 NCCL 按 channel 把不同 GPU 对的流量分配到不同网卡。PXN(PCI×NVLink)则是规避跨 NUMA 的转发优化:数据先经 NVSwitch 全互联转发到目标网卡同轨的 GPU,再从对应网卡出去,全程 GPU 直连、不经过 CPU 内存拷贝,最大化每张网卡的满带宽利用率。

Q5. 8 张网卡的服务器为什么需要策略路由?

A. 8 张网卡 = 8 个独立网络出口,各自位于自己的轨道(Rail)平面。如果不做出口规划,回包可能走错网卡导致通信失败。因此智算服务器需要配置 Linux 多路由表 + 策略路由,按源 IP/网卡把流量锁定在各自 Rail 平面内。这与传统云网的配置方式完全不同——DeepSeek 私有化部署的公开经验就特别强调这一点。

Q6. 推理侧的多网卡方案有什么不同?

A. 训练看 NCCL,推理看传输引擎。Mooncake Transfer Engine 提供多网卡聚合能力:最高聚合 8×400Gbps,RoCE 网络下实测 KV Cache 传输速度达 190GB/s;初始化时自动探测 CPU/CUDA/RDMA 拓扑并安装合适 Transport;GPUDirect RDMA 全链路零拷贝;单张网卡故障时自动切换到其他 RDMA 网卡。实战背书:MooncakeConnector 基于多网卡 RDMA 聚合带宽,驱动了 Kimi K2(1T 参数)在 128 张 H200 上的 PD 分离部署。

Q7. 多网卡部署有哪些要点?不想自建怎么办?

A. 八条要点:① 1 GPU : 1 NIC 对等映射;② NUMA 与 PCIe 根亲和,杜绝跨 CPU 转发;③ 400G 网卡用足 PCIe 5.0 x16 插槽;④ 放弃 bonding 走多轨独立;⑤ Rail 对齐 + NCCL_IB_HCA 显式指定;⑥ 策略路由锁定各自 Rail 平面;⑦ 开启 PXN 转发优化;⑧ 逐网卡监控 + 容错切换。带宽演进路径为 400G(3.2T)→800G(6.4T)→1.6T(12.8T)。不想自建的团队可选用向量云:火山方舟官方授权、官方 API 与官方 Key、低折扣 Token、独享接入点、缓存隔离降本、按量计费即用即扣,注册充值 10 元起,OpenAI 兼容协议几乎零改动。获取 API Key:https://ark.tokenrize.cn/