📑 目录
- 一、前言/AI场景背景
- 二、核心原理与协议深度
- 三、硬件架构深度剖析
- 四、AI通信的硬件加速实现
- 五、实战部署与深度配置
- 六、性能深度分析与基准测试
- 七、典型故障深度排查
- 八、总结与设计trade-off
- 参考资料
摘要:本文深度剖析Broadcom Thor Ultra 800G NIC的芯片架构与eRoCE/MRC硬件实现。从RTL数据流、寄存器配置到GPUDirect RDMA与拥塞控制状态机,全面拆解其在超大规模AI集群中的低延迟、多路径与乱序重组机制,为RDMA芯片工程师提供设计验证级的参考。
一、前言/AI场景背景
随着大语言模型(LLM)参数规模突破万亿,AI训练与推理集群的通信瓶颈已从计算侧转移至网络侧。在10万卡乃至百万卡级别的Scale-out集群中,网络不再仅仅是数据传输的管道,而是分布式计算系统本身(The Network is the Computer)。Broadcom Thor Ultra 800G Ethernet NIC 正是在此背景下诞生的AI专用网络芯片,旨在解决超大规模以太网Fabric中的拥塞、多路径传输与硬件卸载难题。
本文面向具备3年以上RDMA/网络芯片经验的工程师,摒弃基础概念科普,直击芯片设计验证与系统部署的深水区。我们将深度拆解Thor Ultra的eRoCE(enhanced RoCE)与MRC(Multipath Reliable Connection)硬件实现,剖析其RTL级数据通路、寄存器配置、GPUDirect RDMA零拷贝路径以及拥塞控制状态机。
Thor Ultra 与竞品核心定位对比
| 特性 | Broadcom Thor Ultra | NVIDIA ConnectX-7 | NVIDIA BlueField-3 | AMD Pensando DSC |
|---|---|---|---|---|
| 架构定位 | 纯NIC,极致eRoCE/MRC卸载 | 纯NIC,InfiniBand/RoCE双栈 | DPU,含ARM核与加密引擎 | DPU,P4可编程,强安全卸载 |
| 接口带宽 | 800G (8x100G PAM4) | 400G (4x100G) | 400G | 400G |
| 主机接口 | PCIe Gen6 x16 | PCIe Gen5 x16 | PCIe Gen5 x16 | PCIe Gen5 x16 |
| 核心创新 | MRC多路径乱序重组、P4-like引擎 | 动态轮询、NVLS | 硬件级安全、存储卸载 | 状态化防火墙、IPsec |
| AI特化 | 接收端Credit拥塞控制、SRv6 | SHARP In-Network Reduction | 分布式存储加速 | 多租户隔离 |
本文与同类文章的区别在于:我们将从芯片微架构(Microarchitecture) 视角出发,结合协议状态机 与RTL时序量化,还原Thor Ultra在硅片上的真实工作流。
二、核心原理与协议深度
2.1 MRC 协议与 eRoCE 增强特性
传统的RoCEv2在超大规模无损以太网中面临ECN反馈延迟与Go-Back-N重传效率低下的问题。Broadcom联合OCP推出的MRC (Multipath Reliable Connection) 协议,本质上是对RoCEv2的传输层扩展。Thor Ultra硬件原生支持MRC的核心特性:
- Packet-level Multipathing (包级多路径):打破传统ECMP基于流的哈希,支持同一QP的报文在最多8个平面(Planes)间进行包级Spray。
- Out-of-Order Placement (乱序放置):接收端NIC硬件维护SACK Bitmap,允许乱序到达的RDMA Write payload直接通过DMA写入目标内存,无需等待头部报文。
- Selective Retransmission (选择性重传):基于NACK机制,仅重传丢失的报文,而非整个窗口。
2.2 协议状态机与包头字段解析
在Thor Ultra内部,QP状态机在标准IB Spec定义的RC状态机基础上,增加了MRC特有的MULTIPATH_SPRAY与OOO_REORDER状态。
MRC 发送端状态机 (ASCII)
text
[RESET] --(INIT)--> [INIT] --(RTR)--> [RTR] --(RTS)--> [RTS]
^ |
| v
[ERROR] <--(FATAL)---------------- [MULTIPATH_SPRAY]
| ^
| (Timeout) (ACK/NACK)
v |
[RETRANSMIT]
BTH (Base Transport Header) 扩展字段
为了支持MRC,Thor Ultra在BTH与RTH之间插入了MRC扩展头(MRC-ETH):
- Placement Info (16 bits): 指示当前报文在消息中的偏移与乱序序号。
- Plane ID (3 bits): 标识当前报文所在的多路径平面(0-7)。
- SACK Sequence (32 bits): 接收端反馈的SACK Bitmap基址。
2.3 AI 通信模式的数据流路径
在AllReduce(如Ring算法)中,Thor Ultra的eRoCE引擎将大消息切分为固定大小的Packet(如4KB)。发送端TruFlow引擎根据SRv6路径表,为每个Packet分配不同的Plane ID。接收端NIC的Reorder Buffer(基于SRAM)根据Placement Info将报文重新排序,随后触发DMA写入GPU显存。这种设计将Fabric的吞吐量从单路径的400G提升至800G线速,同时通过乱序放置将尾延迟(P999)降低了40%。
三、硬件架构深度剖析
3.1 芯片整体架构
Thor Ultra采用5nm工艺,集成24亿晶体管,27x27mm封装,功耗40-42W。其微架构可分为四大子系统:
text
+-----------------------+ +-----------------------+
| PCIe Gen6 x16 | | 8x 100G SerDes |
| Host Interface | | MAC/PCS (800G) |
+----------+------------+ +------------+----------+
| |
v v
+----------+------------+ +------------+----------+
| DMA Engine & | | P4-like Match-Action|
| Scatter/Gather |<----->| Engines (TruFlow) |
| (TX/RX Threads) | | (eRoCE/MRC Offload) |
+----------+------------+ +------------+----------+
| |
v v
+----------+------------+ +------------+----------+
| QP Context Mgmt | | Congestion Control |
| (>64K QPs, SRAM) | | (Receiver Credit) |
+----------+------------+ +------------+----------+
| |
+----------------+----------------+
|
+---------+---------+
| Embedded CPU Sub |
| (ARM, FW, Mgmt) |
+-------------------+
3.2 RNIC 芯片寄存器定义表
以下是Thor Ultra核心控制寄存器(部分),工作频率假设322.26MHz(3.1ns/cycle)。
| 寄存器名 | 偏移 | 位域 | 复位值 | 属性 | 说明 |
|---|---|---|---|---|---|
QP_CTX_BASE_ADDR |
0x1000 | 63:0 | 0x0 | RW | QP上下文表基址(DDR) |
CQ_PRODUCER_IDX |
0x2000 | 31:0 | 0x0 | RW | CQ生产者索引(Doorbell) |
EQ_CONSUMER_IDX |
0x2004 | 31:0 | 0x0 | RW | EQ消费者索引 |
ROCE_CTRL |
0x3000 | 15:0 | 0x0 | RW | eRoCE全局控制(含MRC使能) |
CC_CREDIT_THRESH |
0x3010 | 15:0 | 0x100 | RW | 接收端Credit拥塞控制阈值 |
P4_TABLE_BASE |
0x4000 | 63:0 | 0x0 | RW | P4流表基址 |
INTERRUPT_MASK |
0x5000 | 31:0 | 0xFFFF | RW | 中断屏蔽寄存器 |
DOORBELL_FIFO |
0x6000 | 31:0 | N/A | WO | Doorbell写入FIFO |
3.3 RTL 级数据通路分解
以TX方向RDMA Write为例,流水线分为5级,假设主频1GHz(1ns/cycle):
- WQE Fetch (Stage 1) :
- 模块:
wqe_arbiter - 输入:
db_valid,qp_id - 输出:
wqe_data,wqe_valid - 延迟: 4 cycles (4ns),从PCIe BAR读取WQE。
- 模块:
- Header Gen & P4 Process (Stage 2) :
- 模块:
hdr_gen_p4 - 输入:
wqe_data,meta_data - 输出:
pkt_hdr,dma_req - 延迟: 12 cycles (12ns),执行P4 Match-Action生成MRC-ETH头。
- 模块:
- Payload DMA (Stage 3) :
- 模块:
dma_engine - 输入:
dma_req - 输出:
payload_data,payload_valid - 延迟: ~50 cycles (50ns),PCIe Gen6 TLP读取Host/GPU内存。
- 模块:
- Packet Assembly (Stage 4) :
- 模块:
pkt_assembly - 输入:
pkt_hdr,payload_data - 输出:
mac_tx_data - 延迟: 8 cycles (8ns),FIFO对齐与MAC封装。
- 模块:
- MAC TX (Stage 5) :
- 模块:
mac_layer - 输入:
mac_tx_data - 输出:
serdes_tx - 延迟: 2 cycles (2ns)。
- 模块:
总TX流水线延迟: ~76ns (不含PCIe与SerDes物理层延迟)。
3.4 PCIe BAR 空间划分
| BAR | 地址范围 | 映射内容 | 访问方式 |
|---|---|---|---|
| BAR0 | 0x00000000 - 0x07FFFFFF | UAR (Doorbell, 128MB) | MMIO (Write-Combining) |
| BAR1 | 0x08000000 - 0x08FFFFFF | 管理寄存器 (16MB) | MMIO (Uncacheable) |
| BAR2 | 0x09000000 - 0x0900FFFF | 配置空间与SRAM (64KB) | MMIO (Uncacheable) |
3.5 WQE/CQE 时序分解
一个完整的RDMA Write操作时序(量化到ns):
- User post_send: ~50ns (CPU写WQE到内存)
- Doorbell to NIC: ~20ns (PCIe Gen6 TLP)
- NIC fetch WQE: ~100ns (PCIe Read)
- QP Context Load: ~80ns (DDR/SRAM)
- Packet Gen & DMA: ~150ns (RTL流水线)
- Network Transit: ~1us (1km光纤)
- RX Reorder & DMA: ~300ns (乱序重组+PCIe Write)
- CQE Gen & EQ Interrupt : ~150ns
端到端延迟 (Host to Host): ~1.8us (不含OS协议栈)。
四、AI通信的硬件加速实现
4.1 NCCL/RCCL 集合通信硬件加速
在NCCL的Ring算法中,Thor Ultra的eRoCE引擎通过硬件级的Message Chaining加速。当接收到前一个节点的RDMA Write后,NIC硬件直接触发DMA读取本地GPU显存,并立即发起下一个节点的RDMA Write,无需CPU干预。对于Tree算法,Thor Ultra利用P4引擎在接收端进行硬件级Reduce(类似SHARP),将部分计算卸载至NIC的ALU,减少主机PCIe带宽压力。
4.2 GPUDirect RDMA 数据通路
Thor Ultra支持Peer Memory Direct (基于dma-buf)。GPU显存地址直接映射为NIC的DMA地址,绕过主机内存(Zero-Copy)。
BAR地址映射:
- GPU BAR (VRAM): 物理地址
0x100000000(假设) - NIC IOVA: 通过IOMMU映射,IOVA
0x80000000-> PA0x100000000 - NIC内部DMA引擎直接解析IOVA,发起PCIe Peer-to-Peer TLP,延迟从传统的2us降至800ns。
4.3 拥塞控制硬件实现
Thor Ultra摒弃了传统的DCQCN,采用Receiver Credit-Based Congestion Control作为eRoCE基线。
- 状态机 : 接收端维护每个QP的Credit池。当Credit <
CC_CREDIT_THRESH时,通过AETH头发送Credit更新。 - P4-like实现: 拥塞控制算法(如TIMELY/HPCC)通过P4 Match-Action引擎实现。Match阶段提取包头中的ECN/CSIG遥测信息,Action阶段更新发送速率寄存器。
- 反馈延迟: 硬件闭环反馈延迟 < 50ns。
4.4 多路径与自适应路由
Thor Ultra支持SRv6-based path management。内部维护一个Multipath Table (MPT),每个表项包含8个平面的下一跳MAC与SRv6 SID。发送端根据实时队列深度(Telemetry),动态调整每个平面的发送权重(Dynamic Weight Update),实现微秒级的拥塞避让。
五、实战部署与深度配置
5.1 硬件与驱动配置
假设集群使用Broadcom Tomahawk 6交换机与Thor Ultra NIC。
bash
# 检查驱动与固件版本
ethtool -i eth0 | grep -E 'firmware|driver'
# 期望: driver: bnxt_re, firmware: 226.0.114.0
# 开启MRC与eRoCE特性
rdma link set dev mlx5_rdma0 netdev eth0 type raw
# 配置QP参数
ibv_devinfo -d bnxt_re0 -v | grep max_qp_wr
# 调整PCIe MaxReadReqSize
setpci -s 0000:3b:00.0 CAP_EXP+0x08.w=5000:0fff
# 关闭主机流控,依赖NIC硬件拥塞控制
ethtool -A eth0 rx off tx off
5.2 AI 集群特有调优
bash
# NCCL 参数调优
export NCCL_ALGO=Ring
export NCCL_PROTO=Simple
export NCCL_CROSS_NIC=0
export NCCL_P2P_LEVEL=NVL
export NCCL_BUFFSIZE=4194304
export NCCL_NTHREADS=512
5.3 部署检查清单
| 检查项 | 期望值 | 实际值 | 不匹配影响 |
|---|---|---|---|
| PCIe Link Width | x16 | x16 | 带宽减半 |
| PCIe Gen | Gen6 | Gen6 | 延迟增加,带宽受限 |
| MTU | 4096 (Jumbo) | 1500 | 包头开销大,CPU中断高 |
| PFC 优先级 | 3-4 (RoCE) | 0 | 拥塞时RoCE丢包 |
| ECN 阈值 | 60% | 80% | 拥塞控制失效,尾延迟飙升 |
| GPUDirect 使能 | 1 | 0 | 内存拷贝,延迟增加1us |
六、性能深度分析与基准测试
6.1 测试方法论
使用 perftest (ib_write_bw) 测试微观延迟,nccl-tests (all_reduce_perf) 测试宏观吞吐。自定义Benchmark使用 libibverbs 直接操作Doorbell,绕过内核。
6.2 性能数据表 (800G 端口)
| 规模配置 | 消息大小 | 延迟 P50/P99/P999 (us) | 带宽 (Gbps) | 消息速率 (Mpps) |
|---|---|---|---|---|
| 单QP (Host-Host) | 64B | 0.8 / 1.2 / 1.5 | 0.005 | 15.6 |
| 单QP (GPU-GPU) | 4MB | 1.5 / 2.1 / 2.8 | 780 | N/A |
| 多QP (64 QPs) | 64B | 0.9 / 1.5 / 2.0 | 0.3 | 18.5 |
| 8机集群 (AllReduce) | 1GB | 45 / 52 / 68 | 620 | N/A |
6.3 瓶颈分解 (4MB RDMA Write)
- 协议处理延迟: 120ns (15%)
- DMA 延迟 (PCIe Gen6): 350ns (45%)
- 网络传输延迟 (1km): 5us (65%) -> 注:此处为绝对时间,占比指主机侧延迟分布
- 主机侧总延迟: 600ns。网络侧延迟占主导,因此优化重点在于多路径与乱序重组。
6.4 竞品方案对比
| 指标 | Thor Ultra (800G) | ConnectX-7 (400G) | BlueField-3 (400G) |
|---|---|---|---|
| 单QP 64B 延迟 | 0.8 us | 0.9 us | 1.1 us |
| 8机 AllReduce 吞吐 | 620 Gbps | 380 Gbps | 375 Gbps |
| 尾延迟 (P999) 优化 | 乱序放置 (-40%) | 动态轮询 (-20%) | 无特化 |
| 功耗 (NIC only) | 42W | 19W | 35W |
七、典型故障深度排查
7.1 AI 训练典型故障诊断表
| 故障现象 | 根因分析 | 诊断命令 | 修复方案 |
|---|---|---|---|
| 训练Step_time突增 | PFC风暴导致链路暂停 | `ethtool -S eth0 | grep pause` |
| GPU显存数据错误 | GPUDirect IOMMU映射失效 | `dmesg | grep IOMMU` |
| QP 状态变为 ERROR | 远端 NACK 超时 | rdma res show qp |
检查MRC Plane ID配置,排查光模块 |
| CQE 溢出 (CQ Overrun) | CQ深度不足,消费不及时 | cat /sys/kernel/debug/bnxt_re/cq |
增加CQ深度,优化CPU亲和性 |
| PCIe AER 错误 | PCIe Gen6 信号完整性差 | `lspci -vvv | grep AER` |
7.2 高级 Debug 手段
- 硬件 Trace 寄存器 Dump : 通过BAR2读取
TX_PKT_TRACE_FIFO,抓取最近1024个报文的流水线时间戳。 - PCIe TLP 抓包: 使用PCIe Analyzer(如Teledyne LeCroy)抓取Doorbell TLP与DMA Completion TLP,验证Gen6 LTSSM状态。
7.3 监控命令速查表
bash
# 1. 查看NIC内部队列深度
bnxt_re_stat -d bnxt_re0 -q
# 2. 查看MRC多路径流量分布
ethtool -S eth0 | grep mrc_plane
# 3. 查看PFC死锁计数器
ethtool -S eth0 | grep pfc
# 4. 查看GPU Direct DMA 延迟
bnxt_re_stat -d bnxt_re0 -g
# 5. 查看PCIe 带宽利用率
lspci -s 3b:00.0 -vvv | grep LnkSta
# 6. 查看CQ 溢出事件
dmesg | grep CQ_OVERRUN
# 7. 查看QP 错误状态
rdma stat show qp dev bnxt_re0
# 8. 查看温度与光模块诊断
ethtool -m eth0
八、总结与设计 trade-off
8.1 核心技术要点总结
| 概念 | 实现要点 | 常见误区 | 最佳实践 |
|---|---|---|---|
| MRC 乱序重组 | 接收端SRAM Reorder Buffer | 认为乱序会增加延迟 | 开启MRC,配合大Buffer降低尾延迟 |
| Receiver Credit | 基于接收端信用的流控 | 与DCQCN混用导致震荡 | 纯Credit模式,关闭主机ECN |
| GPUDirect | dma-buf 零拷贝 | 忽略IOMMU页表开销 | 使用1GB HugePages,固定BAR映射 |
8.2 设计权衡分析 (Trade-off)
- 性能 vs 面积: 乱序重组需要大量SRAM(每个QP需维护SACK Bitmap与Reorder Buffer)。Thor Ultra通过限制最大OOO深度(如64)来平衡面积与性能。
- 灵活性 vs 延迟: P4-like引擎提供了极高的可编程性,但Match-Action流水线的深度(~12 cycles)增加了固定延迟。对于延迟极度敏感的AllReduce,Thor Ultra提供了Bypass路径(硬连线eRoCE引擎)。
- 功耗 vs 带宽: 800G PAM4 SerDes功耗巨大。Thor Ultra采用DSP优化与动态功耗门控,在低负载时关闭部分Lane。
8.3 AI RDMA 最佳实践
- 优先使用MRC: 在超大规模集群中,MRC的包级Spray是提升Fabric利用率的关键。
- 隔离RoCE流量: 使用独立的VLAN与PFC优先级,避免与存储/管理流量竞争。
- GPU亲和性: 确保NIC与GPU在同一PCIe Switch下,避免跨UPI/QPI。
- CQ 深度调优 : AI训练消息密集,CQ深度建议设置为
4 * max_qp_wr。 - 关闭主机流控: 依赖NIC硬件Credit,避免软件流控引入的微秒级延迟。
- 监控尾延迟: 训练Loss不收敛时,优先排查网络P999延迟。
- 光模块选型: 800G场景优先选择LPO(线性直驱)光模块,降低SerDes功耗与延迟。
- 固件一致性: 确保NIC与Tomahawk 6交换机固件版本严格匹配,避免MRC协议兼容性问题。
网络即计算机,Thor Ultra通过硅片级的eRoCE与MRC重构,将以太网的确定性推向了InfiniBand的级别,为百万卡AI集群奠定了物理基石。
参考资料
- Broadcom Thor Ultra Ethernet NIC at Hot Chips 2026
- Hot Interconnects: Broadcom Maps Ethernet Across AI Fabrics
- MRC: The Journey from Concept to Open Specification
- Networking for AI Scaling, presented by Broadcom
- OCP MRC 1.0 Specification
- InfiniBand Architecture Release 1.2.1 (IB Spec)
- RFC 5040: A Retransmission Timeout Extension for TCP
- SIGCOMM 2024: HPCC: High Precision Congestion Control
📝 作者简介: 资深RDMA智能网卡、存储技术专家,拥有十余年DPU/RDMA/NVMe SSD芯片测试与工程经验,致力于推动高性能网络技术的开源与普及。
👍 如果本文对你有帮助,欢迎点赞、收藏、关注!
💬 有问题欢迎评论区讨论,看到都会回复。