3. HDR、NDR、XDR 速率与信号机制
InfiniBand 的每一代速率升级,表面看是"数字变大",实质上是三条技术路线同时推进:单通道信号速率提升、编码方式改变、通道聚合数量增加。理解这三者的乘积关系,才能在集群选型时判断一块 HCA 或一台交换机到底能提供多少有效带宽,而不是只记住 HDR、NDR、XDR 这几个缩写。
一、速率是怎么算出来的
InfiniBand 链路带宽的基本公式是:
有效数据速率 = 单通道信号速率 × 编码效率 × 通道数
以 EDR 为例,单通道信号速率为 25 Gb/s,采用 64b/66b 编码,编码效率为 64/66,4 通道聚合后:25 × (64/66) × 4 ≈ 96.97 Gb/s,取整即 100 Gb/s。HDR 把单通道信号速率翻倍到 50 Gb/s,仍用 64b/66b 编码,4 通道得到约 200 Gb/s;NDR 再翻倍到 100 Gb/s 单通道,4 通道约 400 Gb/s;XDR 则把单通道推到 200 Gb/s,4 通道约 800 Gb/s。可以看到,从 HDR 开始,编码方式不再变化,速率提升完全依赖 SerDes 信号速率的翻倍,这也是为什么 HDR 之后对信号完整性的要求陡然上升。
需要区分两个概念:信号速率(Gb/s,线路上的符号率)与有效吞吐(GB/s,应用可见的数据率)。前者是物理层指标,后者要扣除编码开销、协议头、流控与 ACK 等。工程上常用一个粗略换算:有效吞吐约为信号速率的 80%~90%,再除以 8 换算成字节。例如 NDR 4X 的 400 Gb/s,实际可期望约 40~45 GB/s 的单向有效吞吐。
二、编码方式与通道聚合
早期 SDR/DDR 使用 8b/10b 编码,效率仅 80%,且需要独立的时钟通道。QDR 之后引入 64b/66b 编码,效率提升到约 97%,同时把时钟信息嵌入数据流,由接收端 CDR(时钟数据恢复)电路从跳变中恢复时钟。HDR、NDR、XDR 全部沿用 64b/66b,因此编码不再是代际差异点,信号速率才是。
通道聚合方面,InfiniBand 定义了 1X、2X、4X、8X、12X 等宽度。数据中心最常见的是 4X(四对差分收发)和 12X(用于交换机间背板或 HDR/NDR 的 12X 端口)。同一代速率下,通道数越多,总带宽越高,但 PCB 走线、连接器和线缆的复杂度也成倍增加。例如 NDR 12X 可提供约 1.2 Tb/s,但需要 24 对差分线,对连接器密度和串扰控制要求极高。
三、信号完整性为什么越来越难
信号速率翻倍,最直接的后果是单位时间窗口(UI)减半。HDR 的 50 Gb/s 对应 UI 约 20 ps,NDR 的 100 Gb/s 对应约 10 ps,XDR 的 200 Gb/s 只有约 5 ps。在如此短的时间内,PCB 走线的趋肤效应、介质损耗、过孔残桩、连接器阻抗不连续都会让眼图迅速闭合。工程上通常用通道插入损耗(Insertion Loss)来衡量:在 Nyquist 频率处,HDR 链路预算约允许 20~25 dB,NDR 收紧到约 15~20 dB,XDR 则要求更短、更高质量的通道。
为对抗损耗,NDR 和 XDR 引入了 PAM4 调制(每个符号携带 2 bit),在相同符号率下把数据率翻倍,但代价是眼高只有 NRZ 的 1/3,对噪声和线性度极其敏感。因此 NDR/XDR 普遍启用 FEC(前向纠错),典型为 RS(544,514) 或更高速率下的 KP4 FEC,把原始误码率从 1e-6 量级纠正到 1e-12 以下。同时发送端使用预加重、接收端使用 CTLE/DFE 均衡,共同"打开"眼图。
注意:PAM4 与 FEC 会引入额外延迟。对延迟极度敏感的 MPI 集合通信或金融交易场景,需评估 FEC 带来的数百纳秒级开销,必要时选择支持 FEC 旁路或低延迟模式的端口配置。
四、如何根据集群需求选择速率等级
选型不是"越新越好",而是让网络带宽与计算节点的数据吞吐能力匹配。可按以下思路判断:
- 看单节点出口带宽:若 GPU 服务器有 8 块 GPU,每块需要 200 Gb/s 的跨节点通信能力,则单机需要 8×200 = 1600 Gb/s 的出口,通常用 2 个 NDR 800 Gb/s 端口或 4 个 HDR 400 Gb/s 端口承载。
- 看应用模式:大规模 AllReduce 训练对带宽敏感,优先 NDR/XDR;小规模推理或存储前端,HDR 已足够。
- 看布线距离与介质:机内 DAC 可用 HDR/NDR;跨机柜超过 3~5 m 需 AOC 或光模块,XDR 基本以光纤为主。
- 看交换机端口密度与功耗:XDR 单端口功耗和散热显著高于 NDR,需评估机柜供电与风冷/液冷能力。
一个实用的判断表如下(示例参数,用于教学说明):
| 场景 | 推荐速率 | 理由 |
|---|---|---|
| 中小规模训练(≤64 节点) | HDR 200 Gb/s | 性价比高,DAC 即可满足机内互联 |
| 大规模 AI 训练(≥256 节点) | NDR 400 Gb/s | 带宽与延迟平衡,生态成熟 |
| 下一代超大规模 / 存储后端 | XDR 800 Gb/s | 面向未来带宽需求,需光纤与液冷配套 |
| 延迟敏感型 HPC | HDR/NDR + FEC 旁路 | 牺牲部分误码余量换取更低延迟 |
五、实操中的验证要点
部署后应通过 ibstat 和 iblinkinfo 确认链路实际协商速率,而不是只看端口标称值。例如:
# 查看本机 HCA 端口速率与状态
ibstat mlx5_0
# 查看 Fabric 内所有链路速率与宽度
iblinkinfo
# 查看端口计数器,判断是否有符号错误或链路降速
perfquery -x <lid>
若发现端口协商到低于预期的速率(如 NDR 端口只跑出 HDR),常见原因是线缆或模块不支持目标速率、通道数不足(如 4X 线缆误接 2X 端口)、或信号质量差导致自动降速。此时应检查 iblinkinfo 中的 Rate 与 Width 字段,并核对线缆规格与端口能力是否匹配。
选型口诀:先算节点出口带宽,再看应用延迟容忍度,最后核对介质与散热条件。速率等级不是孤立的数字,而是"信号速率 × 编码 × 通道数"与"通道预算 × 介质能力"共同决定的结果。