谈到 B300 集群网络,最常见的问题是:

RoCE 设备是不是主要指交换机?

从采购分类看,确实如此。

GPU 服务器通常已经配置了网卡,真正需要独立比较品牌、型号和数量的,主要是 Leaf、Spine 交换机。因此,行业里经常把“RoCE 设备选型”简化成“RoCE 交换机选型”。

但从系统架构看,这个理解并不完整。

RoCE 不是一种交换机,也不是交换机上的一个功能开关。

它是一套由 GPU、服务器内部拓扑、RDMA 网卡、交换网络、光链路、拥塞控制、路由机制、管理软件和通信框架共同组成的端到端 GPU 网络。

交换机只是其中最显眼的一层。

真正需要采购和交付的,不是一批高速端口,而是一套能够让数百乃至数千块 GPU 稳定完成分布式通信的 GPU Compute Fabric


ReelOS.AI 禅定|一句话看懂本文

不是把 B300 服务器连接到一批 800G 交换机,就建成了 RoCE 网络。

  1. 模型规模扩大
  2. 单台服务器无法容纳完整计算任务
  3. 训练开始跨越大量 GPU 节点
  4. NCCL 持续产生 AllReduce、AllGather 和 All-to-All 通信
  5. 大量 GPU 在相近时间向网络发送高速流量
  6. 普通以太网开始出现路径碰撞、队列拥塞和尾部延迟
  7. 一条慢链路就可能让整个同步任务等待
  8. 网卡必须及时感知拥塞并调整发送速率
  9. 交换机必须准确标记拥塞并分散流量
  10. 光模块和线缆必须长期保持低误码
  11. 双平面必须在故障时继续提供有效路径
  12. 遥测系统必须找到每一条慢链路和异常队列
  13. NCCL 必须证明网络真正提升了 GPU 有效利用率
  14. RoCE 的建设单位因此不是一台交换机
  15. 而是一套从 GPU 显存到 GPU 显存的端到端通信系统

一、为什么大家总把 RoCE 设备理解成交换机

原因在于,服务器侧的网络端点通常已经随着 GPU 服务器一起确定。

以标准 NVIDIA DGX B300 为例,一台系统配置:

  • 8 个 B300 GPU;
  • 8 张 ConnectX-8 网卡;
  • 8 个最高 800Gb/s 的 InfiniBand/Ethernet OSFP 接口;
  • 2 张双端口 BlueField-3 DPU;
  • ConnectX-8 通过 PCIe Gen6 直接连接 GPU。

其中,ConnectX-8 面向集群计算网络,BlueField-3 主要面向存储和管理网络。

当服务器平台已经确定后,项目团队真正需要比较的通常是:

  • Leaf 交换机;
  • Spine 交换机;
  • 光模块和线缆;
  • 网络操作系统;
  • 控制器与遥测平台。

因此,交换机成为 RoCE 项目中最容易被单独识别的设备。

但需要注意:

交换机不负责发起 GPU RDMA 通信。

真正发起和接收 RDMA 数据的是服务器网卡。交换机负责为这些数据提供低拥塞、低丢包、可预测的传输路径。

所以更准确的表达应该是:

RoCE 交换机是 RoCE 网络的重要组成部分,但交换机本身不等于 RoCE 网络。


二、RoCE 的两个“端”到底在哪里

“端到端”中的两个端,不是两台交换机。

而是:

起点:一块 GPU 的显存
终点:另一块 GPU 的显存

完整的数据路径大致是:

训练框架 / NCCL

GPU A 显存

PCIe / GPUDirect RDMA

ConnectX-8 SuperNIC

DAC / AEC / 光模块

Leaf 交换机

Spine 交换机

目标 Leaf 交换机

光模块 / 线缆

目标 ConnectX-8

GPU B 显存

只要其中任何一层出现性能瓶颈,最终表现出来的都是同一个结果:

GPU 等待网络。

这也是为什么 GPU 网络不能只按交换机端口速率设计。

端口显示 400G 或 800G,并不意味着 GPU 应用能够获得同等的有效通信带宽。


三、一套完整的 RoCE 设备体系包括什么

Ultra Ethernet Consortium 在其 Ethernet AI/HPC 通信架构中,明确把 NIC、交换机、光模块和线缆视为完整网络栈的一部分,并将传输、拥塞控制、直接内存访问、链路与安全纳入同一套架构。

从 B300 集群工程角度,可以把 RoCE 设备拆成六层。

第一层:GPU 与服务器内部互联

这一层包括:

  • B300 GPU;
  • NVLink;
  • PCIe Gen6;
  • CPU NUMA;
  • GPU 与 NIC 的拓扑关系。

服务器内部拓扑决定了 GPU 数据到达网卡之前是否已经产生瓶颈。

例如,两种服务器都可能标称“8×B300、8×800G”,但实际设计可能不同:

方案一:
每块 GPU 对应一张独立 NIC

方案二:
多块 GPU 共享 NIC 或 PCIe Root Complex

两者的理论端口带宽可能相同,但 GPU 可获得的稳定有效带宽并不一定相同。

所以第一项设计不是交换机,而是确认:

GPU、NIC、PCIe 和 NUMA 是否形成正确的本地拓扑。


第二层:RoCE 网卡与 SuperNIC

RoCE 网卡负责:

  • 发起和接收 RDMA;
  • GPUDirect RDMA;
  • 队列管理;
  • 拥塞反馈处理;
  • 发送速率调整;
  • 多路径流量处理;
  • 数据包重排;
  • 与 GPU 通信软件协同。

在 DGX B300 中,8 张 ConnectX-8 通过 PCIe Gen6 直接连接 GPU,这使服务器内部的 GPU 到网络路径成为整机设计的一部分,而不是后期外挂的普通网卡。

因此,服务器侧需要明确五个问题:

  1. 每块 GPU 对应多少网络带宽;
  2. GPU 与 NIC 是否接近 1:1 映射;
  3. 使用单 400G、单 800G,还是双 400G 平面;
  4. NIC 与 GPU 是否位于正确的 PCIe 和 NUMA 位置;
  5. 网卡固件、驱动和交换机功能是否完成兼容验证。

如果这一层设计错误,增加交换机数量也无法解决服务器内部的拥塞。


第三层:Leaf 与 Spine 交换机

交换机主要负责三件事:

转发

将 GPU 流量从源节点送到目标节点。

控制拥塞

在队列开始积压时识别拥塞、进行 ECN 标记,并与网卡端的拥塞控制形成闭环。

分散流量

将大量并行通信分配到不同路径,避免少数链路拥塞而其他链路空闲。

传统数据中心交换机通常关注:

  • 端口是否足够;
  • 总交换容量是否足够;
  • 路由是否可达。

AI Compute Fabric 还需要关注:

  • 瞬时拥塞;
  • 多对多流量;
  • 尾部延迟;
  • 路径极化;
  • 负载不均;
  • 长任务稳定性;
  • 故障后的任务连续性。

因此,同样是“64×800G”,不同产品的实际价值可能完全不同。

真正需要比较的是:

  • 交换 ASIC;
  • 端口基数;
  • 800G Breakout;
  • Buffer 架构;
  • ECN 精度;
  • PFC Watchdog;
  • Adaptive Routing;
  • Packet Spray 或 Flowlet;
  • 队列级遥测;
  • 网络操作系统;
  • 自动化与故障定位。

端口规格决定网络能不能连接,拥塞控制决定网络能不能工作。


第四层:光模块、线缆与物理链路

这一层包括:

  • 800G OSFP;
  • 400G QSFP112;
  • 800G 拆分 2×400G;
  • DAC;
  • AEC;
  • 多模光模块;
  • 单模光模块;
  • MPO 或 LC 光纤;
  • 配线架;
  • 光纤路径。

它们不是交换机附属品,而是 GPU 网络的物理传输层。

在大型集群中,常见问题不是链路完全断开,而是链路仍然处于 Up 状态,但持续出现:

  • FEC Corrected Error;
  • BER 异常;
  • 光功率接近临界值;
  • 某个 Lane 性能下降;
  • 温度升高后误码增加;
  • AEC 固件兼容问题;
  • Breakout 子链路不稳定。

这些问题不会立刻让网络中断,却可能持续降低 NCCL 有效带宽。

NVIDIA 也要求根据 ConnectX 固件对应的验证列表选择受支持的线缆、适配器和交换机,而不是仅根据接口形态采购任意光模块。

所以应该把光链路理解为:

交换机提供理论带宽,光链路决定这部分带宽能否长期存在。


第五层:控制器、网络操作系统和遥测平台

网络规模较小时,管理员可以通过命令行逐台检查交换机。

到了数百节点,这种方式已经不可行。

RoCE 网络需要持续看到:

  • 每个端口的吞吐量;
  • ECN Mark;
  • PFC Pause 次数和持续时间;
  • 队列深度;
  • Buffer Watermark;
  • FEC Error;
  • BER;
  • 收发光功率;
  • RDMA 重传;
  • 路径利用率;
  • Plane A 与 Plane B 的负载差异;
  • NCCL 有效带宽;
  • GPU 通信等待时间。

在 NVIDIA B300 SuperPOD 参考架构中,NetQ 用于 Spectrum-X 网络的实时遥测、健康检查、网络验证和故障排查。

不同交换机厂商的差异,也不仅存在于硬件,而是存在于整套运维系统:

  • NVIDIA:Spectrum-X、NVIDIA Route、NetQ;
  • Arista:EOS、CloudVision;
  • Cisco:NX-OS、Nexus Dashboard;
  • Juniper:Junos、Apstra;
  • 华为:VRP、NCE-Fabric;
  • 白盒方案:SONiC 加自建遥测体系。

一套网络能否被看见,和它能否转发数据同样重要。


第六层:NCCL、调度系统和任务验证

网络最终不是给交换机管理员使用的,而是给 GPU 任务使用的。

最上层包括:

  • NCCL;
  • CUDA;
  • PyTorch;
  • DeepSpeed;
  • Megatron;
  • Slurm;
  • Kubernetes;
  • 训练框架和并行策略。

网络是否成功,最终要通过任务表现判断:

  • NCCL Bus Bandwidth;
  • NCCL Algorithm Bandwidth;
  • AllReduce 性能;
  • All-to-All 性能;
  • GPU 利用率;
  • 通信等待时间;
  • Job Completion Time;
  • 长任务成功率。

所以,NCCL 不是网络建成之后才运行的应用测试。

它本身就是 GPU 网络的验收工具。


四、为什么 B300 集群尤其强调端到端架构

普通服务器网络中的一条慢链路,通常只影响部分请求。

分布式训练不同。

大量 GPU 会按照同步节奏完成计算和通信。当某一块 GPU、某一张 NIC 或某一条路径变慢时,其他 GPU 即使已经完成计算,也必须等待最慢的参与者。

可以把它理解为:

BOTTLENECK CASCADE / 慢节点放大 1 块慢,全局等
01 / SYNC 1,024 块 GPU 同时同步
02 / BARRIER 并行完成情况:
1,023 正常 按时完成通信
1 块 +50 ms 网络拥塞
03 / GLOBAL TAX +50 ms 整个同步步骤等待
04 / COMPOUND × 百万 Step 延迟持续累积 慢节点成本被训练周期放大

因此,AI 网络追求的不是单端口峰值,而是:

  • 高有效带宽;
  • 低尾部延迟;
  • 路径性能一致;
  • 故障时可降级;
  • 长时间运行可预测。

NVIDIA 将 Spectrum-X 定义为 Spectrum-4 交换机与 ConnectX-8 网卡紧密协同的网络平台,而不是单独的交换机产品。

这反映出一个重要变化:

AI 网络的竞争单位,正在从单台设备转向端到端系统。


五、B300 端到端架构究竟包括哪些设计

“先确定端到端架构,再选择交换机”,至少需要先确定八件事。

1. 工作负载

需要明确:

  • 预训练还是推理;
  • Dense 模型还是 MoE;
  • 数据并行、张量并行还是专家并行;
  • 单任务还是多租户并发;
  • AllReduce 多还是 All-to-All 多;
  • 是否存在大量 Checkpoint 流量。

MoE 的 All-to-All 与传统数据并行的 AllReduce,对网络的压力模式并不相同。

所以网络设计必须从模型通信模式开始,而不是从交换机目录开始。


2. 节点内部拓扑

需要明确:

  • 每节点多少 GPU;
  • 每节点多少 NIC;
  • GPU 与 NIC 的对应关系;
  • 每 GPU 获得多少带宽;
  • PCIe 和 NUMA 是否正确对齐;
  • 是否支持 GPUDirect RDMA。

这是确定服务器侧端口数量的基础。


3. 网络分层

一个完整 GPU 集群通常至少包含:

Compute Fabric
GPU 与 GPU 之间的训练通信

Storage Fabric
训练数据、Checkpoint、并行文件系统

In-band Network
Slurm、Kubernetes、镜像和用户访问

Out-of-band Network
BMC、PDU、交换机和液冷设备管理

需要决定:

  • 四张网络完全分离;
  • Compute 独立,Storage 与 In-band 融合;
  • 哪些流量可以使用 RoCE;
  • 哪些流量必须与训练网络隔离。

训练通信与存储流量的目标不同,不应在没有明确容量模型的情况下随意混合。


4. Compute Fabric 拓扑

需要决定:

  • 单平面还是双平面;
  • Rail-Aligned 还是普通 Clos;
  • Leaf-Spine 还是三层网络;
  • 是否 1:1 无阻塞;
  • 每个扩展单元包含多少节点;
  • 单台交换机故障影响多少 GPU。

NVIDIA B300 SuperPOD 使用双平面设计,两个独立平面不在 Core 层互联,因此可以在两层 Leaf-Spine 下扩展到更大规模。ConnectX-8 上的平面负载均衡能力与 NVIDIA Route 配合,将流量分配到更合适的路径;单链路故障时,应用仍可通过另一条路径继续运行。

双平面的价值不是简单将带宽翻倍,而是同时提供:

  • 多路径;
  • 故障隔离;
  • 降级运行;
  • 更大的两层网络规模。

5. 拥塞控制

需要确定:

  • 使用什么 ECN 阈值;
  • 网卡使用什么拥塞控制算法;
  • 哪个优先级启用 PFC;
  • PFC 何时触发;
  • 如何避免 Pause Storm;
  • 是否启用 PFC Watchdog;
  • 不同流量进入什么队列;
  • 队列和 Buffer 如何分配。

合理的原则应当是:

ECN 负责主动减速,PFC 负责极端状态保护。

而不是让网络长期依赖 Pause 保持无丢包。


6. 多路径与负载均衡

普通 ECMP 通常以流为单位选择路径。

在 GPU 网络中,少数大流可能被哈希到同一条路径:

路径一:严重拥塞
路径二:严重拥塞
路径三:利用率很低
路径四:利用率很低

此时网络拥有足够的总带宽,却没有足够的有效带宽。

因此,需要确定使用:

  • ECMP;
  • Flowlet;
  • Adaptive Routing;
  • Dynamic Load Balancing;
  • Packet Spray;
  • 多平面负载均衡;
  • 端侧数据包重排。

Spectrum-X 的细粒度自适应路由会根据网络状态把流量分散到不同路径,以减少传统静态 ECMP 产生的路径利用不均。

这里体现出端到端设计的必要性:

如果交换机按包分散流量,网卡端就必须能够正确处理乱序。

只更换交换机,而不考虑 NIC 和软件能力,无法形成完整方案。


7. 物理故障域

需要明确:

  • Plane A 与 Plane B 是否使用独立交换机;
  • 是否采用独立光纤路径;
  • 是否使用不同 PDU;
  • 是否放在不同网络机柜;
  • Spine 是否集中形成单点故障;
  • 交换机升级是否会同时影响两个平面。

如果两个平面共用:

  • 同一个机柜;
  • 同一个 PDU;
  • 同一条光纤路由;
  • 同一组配线架;

那么它们逻辑上是双平面,物理上仍然可能是单故障域。

真正的双平面必须尽可能做到:

独立交换机
+
独立链路
+
独立供电
+
独立布线路径
+
独立维护窗口

8. 任务级验收标准

在采购前就需要定义验收标准,而不是设备安装完成后再临时决定。

验收对象至少包含三层。

网络层

  • 端口吞吐量;
  • ECN;
  • PFC;
  • Queue Occupancy;
  • FEC;
  • BER;
  • 光功率;
  • 路径利用率。

RDMA 层

  • RDMA Read/Write 带宽;
  • 消息时延;
  • P99 和 P999;
  • 拥塞恢复速度;
  • 多路径有效利用率。

GPU 任务层

  • NCCL AllReduce;
  • NCCL AllGather;
  • ReduceScatter;
  • All-to-All;
  • GPU 利用率;
  • Job Completion Time;
  • 单链路故障;
  • 单 Leaf 故障;
  • 单 Spine 故障;
  • 单 Plane 降级;
  • 长时间任务完成率。

最终验收标准不是:

每个端口是否跑到了 400G。

而是:

网络是否让 GPU 在真实任务中保持高利用率,并稳定完成长周期训练。


六、为什么“先买交换机,再设计网络”容易失败

一种常见的项目流程是:

先选择一台 64×800G 交换机

根据端口数计算数量

连接 B300 服务器

配置 PFC 和 ECN

运行 NCCL

这种方式的问题是,交换机被当成了架构起点。

但在没有确定下列问题之前,交换机数量和型号都没有可靠依据:

  • 每块 GPU 是单 400G 还是双 400G;
  • 是单平面还是双平面;
  • 是否需要 Rail-Aligned;
  • 是否要求 1:1 无阻塞;
  • 主要运行 AllReduce 还是 All-to-All;
  • 是否需要 Packet Spray;
  • NIC 是否支持对应的乱序处理;
  • 存储流量是否独立;
  • 单个故障允许影响多少 GPU;
  • 需要监控哪些网络与任务指标。

同样一台 64×800G 交换机,在不同架构里可能承担:

  • Compute Leaf;
  • Compute Spine;
  • Storage Leaf;
  • 汇聚交换机;
  • 业务网络交换机。

设备相同,系统角色完全不同。

所以正确顺序应该是:

确定工作负载

确定GPU与NIC拓扑

确定每GPU带宽

确定网络分层

确定Plane与Rail

确定无阻塞比例

确定拥塞和多路径机制

确定物理故障域

确定验收标准

最后选择交换机

七、不同厂商真正比较的不是端口,而是系统闭环

选择 NVIDIA、Arista、Cisco、Juniper、华为或白盒交换机时,不应只比较:

厂商端口
厂商A64×800G
厂商B64×800G
厂商C64×800G

更有价值的比较方式是:

比较维度需要回答的问题
NIC协同是否与ConnectX-8完成端到端验证
拥塞控制ECN、PFC和端侧算法如何配合
多路径普通ECMP、Flowlet还是Packet Spray
乱序处理由NIC、交换机还是软件处理
Telemetry能否看到队列、ECN、PFC、FEC和路径状态
自动化能否批量配置、验证和回滚
光链路支持哪些经过验证的模块和线缆
故障模型单链路和单交换机故障时任务是否继续
任务验证是否经过真实NCCL和模型工作负载测试
责任边界出现性能问题后由谁负责定位

NVIDIA 的优势在于 GPU、ConnectX、Spectrum 交换机、Route、NetQ 和 NCCL 形成较完整的闭环。

开放厂商方案的优势在于选择更多、网络体系更开放,也可能与现有数据中心运维系统更容易融合。

但开放不等于简单。

选择多厂商方案后,建设方需要自己承担更多工作:

  • 参数匹配;
  • 固件矩阵;
  • 光模块兼容;
  • 拥塞控制调优;
  • NCCL 验证;
  • 故障责任划分。

所以厂商选型的本质不是:

谁的交换机更快?

而是:

谁能以可接受的成本,交付一套性能可预测、故障可定位、长期可运营的 GPU 网络?


八、正确的 B300 RoCE 采购对象是什么

采购清单不应只有:

交换机型号
交换机数量
光模块数量

还应包括:

服务器侧
  • GPU/NIC 拓扑
  • ConnectX 固件
  • DOCA-OFED
  • GPUDirect RDMA
  • NUMA 和 PCIe 绑定
网络侧
  • Leaf
  • Spine
  • Plane
  • Rail
  • ECN
  • PFC
  • QoS
  • Adaptive Routing
  • Telemetry
物理侧
  • DAC
  • AEC
  • 光模块
  • 光纤
  • Breakout
  • 配线架
  • 布线路径
  • 冗余供电
管理侧
  • 网络控制器
  • 配置自动化
  • 固件管理
  • 日志
  • 告警
  • 网络验证
  • 故障定位
验收侧
  • RDMA 测试
  • NCCL 测试
  • 多任务并发
  • 故障注入
  • 长时间稳定性
  • GPU 利用率
  • Job Completion Time

最终采购对象应该被定义为:

B300 GPU Compute Fabric 端到端交付。

而不是:

800G 交换机采购项目。


九、一个真正有价值的 PoC 应该测试什么

很多 RoCE PoC 最终只验证了:

  • Ping 可以通信;
  • iperf 可以跑满;
  • RDMA 可以建立连接;
  • 单条链路可以达到标称带宽。

这些测试只能证明基础连通性。

真正的 B300 PoC 应该分为五个阶段。

第一阶段:单节点与单链路

验证:

  • GPU/NIC 拓扑;
  • PCIe 带宽;
  • 单端口 RDMA;
  • GPUDirect RDMA;
  • 光模块和 FEC 状态。

第二阶段:单 Leaf

验证:

  • 同 Leaf NCCL;
  • 多端口同时通信;
  • ECN 触发;
  • PFC 是否异常出现;
  • Leaf 本地拥塞。

第三阶段:跨 Spine

验证:

  • ECMP 或 Adaptive Routing;
  • 多路径利用率;
  • 跨 Leaf AllReduce;
  • 跨 Leaf All-to-All;
  • 路径极化。

第四阶段:多任务并发

验证:

  • 多个 NCCL Job 同时运行;
  • 大流与小流并发;
  • Compute 与 Storage 并发;
  • 性能隔离;
  • 尾部延迟。

第五阶段:故障与长稳

验证:

  • 拔掉一条链路;
  • 关闭一台 Spine;
  • 关闭一台 Leaf;
  • 中断一个 Plane;
  • 制造链路误码;
  • 连续运行真实任务;
  • 检查任务是否继续以及性能下降幅度。

PoC 的目标不是证明设备能用。

而是证明:

整套网络在拥塞、并发和故障条件下仍然可预测。


十、最终判断

RoCE 设备主要是交换机吗?

在采购分类中,主要讨论的是交换机。

因为服务器侧 NIC 通常随 B300 平台确定,而交换机品牌、型号、数量和网络操作系统仍有较大选择空间。

但从系统架构看:

RoCE 设备绝不只是交换机。

它至少包括:

GPU负责计算
NIC负责发和收
交换机负责转发和控制拥塞
光模块和线缆负责传输
控制器负责保持配置一致
遥测系统负责发现异常
NCCL负责验证真实效果
调度系统负责将任务放到正确的网络故障域

B300 集群不是在采购一批端口。

它是在构建一条从 GPU 显存到 GPU 显存的高速数据路径。

这条路径必须同时满足:

  • 带宽足够;
  • 路径均衡;
  • 拥塞可控;
  • 链路稳定;
  • 故障可降级;
  • 状态可观测;
  • 任务可完成。

因此,B300 RoCE 网络的建设原则应该是:

先确定模型和通信,再确定网络。

先确定端到端架构,再选择交换机。

先验证任务完成率,再比较端口价格。

网络建设的目标不是让交换机跑满,而是让 GPU 不再等待。

基础阅读 一文看懂 RoCE:为什么 AI 集群要把以太网改造成 RDMA Fabric? 先理解 RoCEv2、RDMA 与拥塞控制的协议和工程基础。 2026.07.07 架构进阶 Infra 学习地图|Spectrum-X 论文解读:RoCE 网络为什么从“调参工程”进入 AI Fabric 架构时代? 继续理解 Multi-Plane、硬件负载均衡与高频遥测。 2026.07.07 任务验收 一文搞懂 NCCL:为什么 GPU 集群有了高速网络,训练仍然可能跑不快? 用集合通信与真实有效带宽验证网络是否让 GPU 少等待。 2026.07.07 交付运营 ReelOS AI Fabric 工程团队:如何构建一支面向 GPU 集群的高性能网络小队 把设备、参数、遥测、压测和 Runbook 沉淀为团队能力。 2026.07.07