想象一座城市里住着上万名快递员(GPU 核心),他们每天需要把一大堆包裹(训练数据)从城东仓库(GPU 0 显存)运到城西仓库(GPU N 显存)。如果走普通街道——就像传统以太网——包裹要经过无数次红绿灯、绕行、转手(CPU 参与拷贝),一趟要几十微秒甚至更久。而 InfiniBand 网络,就是城市为快递员专门修建的“超级物流专线”:全封闭高架、无红绿灯、送货员一脚油门直达目的地。这条专线的铺设质量,直接决定整座城市的物流效率——在 GPU 集群里,就是训练吞吐量。本篇文章将带你从零认识这条专线:如何选“装卸平台”(IB网卡)、规划“高架桥网”(拓扑)、请“交通指挥总局”(子网管理器)上岗、安装“调度大脑”(HCCL),以及遇到故障时怎么巡检排障。

岗位关联

对 AI 从业者而言,读懂 IB 网络是搭建大规模分布式训练的必备基建能力。掌握它,你就能在集群规模翻倍时快速定位通信瓶颈,在训练卡死时高效排障,成为团队里最懂“物流专线”的那个人。

目录
  1. 可视化演示
  2. 认识 IB 网络:超级物流专线
  3. HCA 网卡选型:挑选装卸平台
  4. 网络拓扑设计:规划高架桥网
  5. 子网管理器:交通指挥总局
  6. HCCL 集成:安装调度大脑
  7. 故障诊断:路网巡检手册
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示IB Fat-Tree拓扑(Core→Edge→GPU三层无阻塞互联)、RDMA零拷贝通信(GPU→HCA→Switch→HCA→GPU绕过CPU)、IB带宽代际演进(FDR→EDR→HDR→NDR→XDR),三模式切换理解GPU集群高速网络全貌。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+C1+'

认识 IB 网络:超级物流专线

想给城市修一条专线,首先要明白它跟普通街道的区别。普通街道上,快递员送一个包裹,要经历“手动接单→填写单据→出仓库→过红绿灯→中转多次→收货方签字”的冗长流程——这是传统以太网:数据要从 GPU 显存拷贝到 CPU 内存,再经软件协议栈层层封装,耗时自然高。而 InfiniBand 专线的核心是“远程直接内存访问(RDMA)”:快递员从发送方仓库直达收货方仓库,中途无需任何中转签字,协议处理全部由网卡硬件完成。

这套专线其实是一套完整的网络协议体系:物理层负责用铜缆或光缆搬运比特流;链路层负责把数据切成“报文”并保证不出错;网络层用全局 ID(GID)和本地 ID(LID)给每台设备编地址。相比 TCP/IP,IB 把大部分协议逻辑“卸载”到网卡上,CPU 根本不参与数据搬运,这正是它快一个量级的根本原因。

在 GPU 集群里,这趟专线的意义尤为重要。大模型训练每个迭代结束,上千张 GPU 需要互相交换几十到几百 MB 的梯度数据。如果走以太网,排队等待就要好几秒;走 IB 专线,几毫秒就能完成。衡量专线品质的两个核心数字是带宽(单位时间内能运多少数据)和时延(单个包裹从出发到到达的时间),两者共同决定了训练快不快:

把数据从显存搬到显存,就像在“封闭专线”上运货:带宽决定高速公路有多宽,时延决定过收费站有多快。IB 用硬件直通取代 CPU 转手,省掉了每一站的“签字盖章”,这就是它比普通以太网快一个量级的根本原因。

T=SB+t0T = \frac{S}{B} + t_0
公式意思是:传一份数据的耗时 = 数据量除以带宽 + 不可压缩的起步开销。带宽越大、时延越低,传输越快。
  1. T(总耗时)一个数据包从源 GPU 显存到目标 GPU 显存的总时间,单位秒。
    T=T传输+t0T = T_{\text{传输}} + t_0
  2. S / B(传输时间)S 是数据量(字节),B 是链路带宽(字节/秒),相除得到纯传输耗时。
    T传输=SBT_{\text{传输}} = \frac{S}{B}
  3. t0(固定开销)哪怕只传 1 字节也要花的起步时间,包括编码延迟、交换转发延迟等。IB 的 t0 极小,大约只在微秒量级。
    t0≈10−6 st_0 \approx 10^{-6}\ \text{s}

HCA 网卡选型:挑选装卸平台

专线修好了,快递车从哪儿进高速?答案是“装卸平台”——IB 网卡,行业里叫 HCA(Host Channel Adapter,主机通道适配器)。每台 GPU 服务器必须装上 HCA,才能把服务器内部的数据搬上 IB 专线。选装卸平台不是越贵越好:平台太窄,车流量一大就堵在门口;平台太多,钱包先受不了。

HCA 的关键参数有三个:端口速率、端口数量和 PCIe 接口代际。速率上,主流有 EDR(100Gbps)、HDR(200Gbps)、NDR(400Gbps),数字越大代表每个端口的吞吐能力越强。端口数量上,一块卡有单端口和双端口之分。而 PCIe 接口决定了服务器内部给网卡喂数据的能力——PCIe 4.0 x16 提供约 32GB/s 的搬运能力,PCIe 5.0 x16 翻倍到 64GB/s。

选型时最容易被忽略的是“匹配”二字。假设一张 A100 GPU 的显存带宽高达 2TB/s,但训练中真正跨节点交换的通常只有梯度,量级在几十 GB/s。用一张双端口 NDR 卡(2×400Gbps ≈ 100GB/s)往往绰绰有余。计算公式很简单:拿训练峰值需要跨节点传输的总带宽除以单卡提供带宽,向上取整,再预留 30% 余量应对多任务并发和突发流量:

选装卸平台的关键不是“最贵就是最好”,而是让平台宽度略大于车流峰值。老师傅的经验是:先用公式算出理论值,再用实际带宽测试工具验证,最后留 30% 余量。这样专线两侧才永远不会出现“车到了、平台接不上”的尴尬。

NHCA=⌈Bneed×1.3Bport⌉N_{\text{HCA}} = \left\lceil \frac{B_{\text{need}} \times 1.3}{B_{\text{port}}} \right\rceil
公式意思是:所需网卡数 = 需求带宽×1.3 安全系数 ÷ 单卡端口带宽,结果向上取整。留足余量,才能避免尖峰流量堵在“装卸平台”门口。
  1. N_HCA(所需网卡数)一台服务器需要安装的 IB 网卡数量,结果只能取整数。
    NHCA=⌈x⌉N_{\text{HCA}} = \lceil x \rceil
  2. B_need(需求带宽)训练任务跨节点通信的峰值带宽,单位 Gbps,通常由实测或理论估算得到。
    Bneed=峰值通信带宽B_{\text{need}} = \text{峰值通信带宽}
  3. ×1.3(安全余量)预留 30% 带宽余量,避免梯度尖峰时队列溢出、延迟飙升。
    B预算=Bneed×1.3B_{\text{预算}} = B_{\text{need}} \times 1.3
  4. ⌈⌉(向上取整)网卡只能整块购买,算出 2.3 张也得按 3 张准备。
    ⌈2.3⌉=3\lceil 2.3 \rceil = 3

网络拓扑设计:规划高架桥网

专线不可能只从城东到城西——成百上千台 GPU 服务器之间,需要一张四通八达的高架桥网。最常见的修法是 Fat-Tree(胖树):像一棵倒着长的树,底层是架顶交换机(ToR),往上逐层汇聚,直到最高层的核心交换机。

Fat-Tree 的精髓在“胖”字:越往上,需要的链路数量越多,保证每一层都有足够的“上行匝道”。理想情况下,任意一台服务器到任意另一台服务器的路径,带宽都不打折——这叫无阻塞网络。衡量它是否无阻塞的指标叫收敛比(Oversubscription Ratio):所有上行链路的聚合带宽除以所有下行链路的聚合带宽。

收敛比 R=1 表示上下行等宽,任意节点之间通信都不拥堵,这是大规模训练最理想的模型。R=2 表示上行只有下行一半,8 台服务器同时向上发数据时,每台只能分到一半带宽。实际部署中,为了省钱,R=1.5~2 的“半阻塞”网络很常见;但对千卡级训练,强烈建议 R=1。分层结构上,三层 Fat-Tree(边缘层/汇聚层/核心层)支持数百上千端口,二层结构更适合小规模集群:

修高架桥网的心法,就是保证“进城匝道总数 ≥ 出城匝道总数”。只要某个匝道口的吞吐小于车流,高峰时期必然堵车。Fat-Tree 和 R=1 的黄金组合,正是让每一次梯度交换都像跑在空无一人的高架上。

R=BupBdownR = \frac{B_{\text{up}}}{B_{\text{down}}}
公式意思是:收敛比 = 上行聚合带宽 ÷ 下行聚合带宽。R=1 时网络无阻塞,R 越大说明“出城匝道”越不够用,堵车风险越高。
  1. R(收敛比)上行与下行可聚合带宽之比,是网络阻塞程度的标尺。
    R=BupBdownR = \frac{B_{\text{up}}}{B_{\text{down}}}
  2. B_up(上行带宽)所有从接入层通向核心层的链路带宽之和。
    Bup=Nup×LrateB_{\text{up}} = N_{\text{up}} \times L_{\text{rate}}
  3. B_down(下行带宽)所有连接 GPU 服务器的链路带宽之和。
    Bdown=Ndown×LrateB_{\text{down}} = N_{\text{down}} \times L_{\text{rate}}
  4. L_rate(单链路速率)一条 IB 链路的最大端口速率,比如 HDR 为 200Gbps。
    Lrate=200 GbpsL_{\text{rate}} = 200\ \text{Gbps}

子网管理器:交通指挥总局

路网修好了,谁来指挥成千上万的车辆?这就是子网管理器(SM,Subnet Manager)的职责——它是 InfiniBand 子网的交通指挥总局。每个 IB 子网里至少有一个 SM,它不参与数据搬运,却控制着每辆车的行驶路线。没有它,交换机甚至不知道自己的端口该往哪转。

SM 的工作分三步:启动时,它像交警一样“点名”,网内所有交换机、HCA 依次上线报到并拿到自己的 16 位编号 LID;然后根据拓扑信息为每一对节点计算转发路径,把路由表下发到每台交换机的转发表;之后持续监控网络状态,一旦有链路断开或设备加入,立刻重新计算路由。

生产环境必须配置主备双 SM(甚至一主多备):主 SM 挂了,备用 SM 会在秒级接管指挥权,保证训练不中断。性能调优方面,最常用的旋钮是 LMC(链路多路径计数):把 LMC 从 1 调到 2 或 4,SM 会为同一目的地址计算多条等价路径,数据就能分多条路走,充分利用带宽。路由算法也有讲究:最短路径路由(SPR)简单但容易让某些链路过载;自适应路由(AR)会实时避堵,是 HDR/NDR 时代的推荐配置。SM 选路的本质是一条路径成本最小化问题:

交通指挥总局看起来不显山露水,但一旦它失联,整个物流网就会陷入瘫痪——所有车辆不知道该走哪条路。配置好主备双 SM 并开启自适应路由,你就拥有一个 7×24 小时不休不眠的“AI 交警”,把每辆车都导向最畅通的高架。

C(p)=∑e∈p(De+We)C(p) = \sum_{e \in p} (D_e + W_e)
公式意思是:一条路径的总成本 = 路径上每条链路的“时延 + 权重”之和。SM 为每对节点挑选总成本最小的路径,也就是为每辆车选最畅通的高架。
  1. C(p)(路径总成本)从源到目标第 p 条路径的总开销,SM 据此选出最优路线。
    C(p)=∑e∈pcosteC(p) = \sum_{e \in p} \text{cost}_e
  2. e ∈ p(路径上的链路)一条路径由若干首尾相连的链路组成,遍历求和。
    e∈pe \in p
  3. D_e(链路时延)单条链路的固有传输时延,与链路长度和介质有关。
    De=链路长度信号速度D_e = \frac{\text{链路长度}}{\text{信号速度}}
  4. W_e(链路权重)基于当前拥塞状态动态调整的惩罚项,越堵权重越高,让 SM 自动绕行。
    We=f(队列深度)W_e = f(\text{队列深度})

HCCL 集成:安装调度大脑

高速公路和交通指挥都有了,物流公司还需要一整套“调度大脑”来统一指挥成千上万辆快递车:哪辆车运哪块包裹、先在哪个仓库汇合……在 NVIDIA 生态里这个大脑叫 NCCL,而在昇腾(Ascend)集群里,它叫 HCCL(Huawei Collective Communication Library,集合通信库)。

HCCL 解决的是“多卡协同干活”的问题。训练大模型时,每张 GPU 各自算完一小块,需要把结果汇合起来形成全量梯度。这种“先各自汇总、再全员分发”的操作叫集合通信(Collective Communication),最经典的是 allreduce。HCCL 把这项复杂任务抽象成几行 API 调用,底层自动选路、分包、超时重传,让普通工程师不用面对裸 IB 协议。

但“调度大脑”不是装上就完事。生产环境通常要设置环境变量:HCCL_CONNECT_TIMEOUT 控制建连超时,默认 120 秒,小规模集群可调小以加速启动;HCCL_DETERMINISTIC 决定算法是否确定性执行,调试时开启、性能优先时关闭;HCCL_BUFFSIZE 控制通信缓冲区大小,调大有助于小消息吞吐。通信模式上,HCCL 支持 ring(环形)、tree(树形)等算法。N 个节点的 ring allreduce,总耗时近似为 2(N-1) 步,每步传输 1/N 的数据量。这个公式直接揭示了大集群扩展的代价:节点越多,单步数据越小,但步数线性增加:

有了 HCCL 这个调度大脑,快递车们不再没头苍蝇般乱转:每辆车按固定路线轮流到每个仓库装一份货,最后一圈跑完,所有仓库都凑齐了完整包裹。Ring 模式像接力赛,节点多了虽然交接次数变多,但每条链路都吃得满满当当——这,就是大规模训练通信效率的秘密。

Tring=2(N−1)×(DB+L)T_{\text{ring}} = 2(N-1) \times \left( \frac{D}{B} + L \right)
公式意思是:Ring AllReduce 总耗时 = 总步数 2(N-1) × 每步耗时(每步数据量 ÷ 带宽 + 单跳时延)。节点翻倍时步数线性增长,这就是为什么通信拓扑和带宽规划如此重要。
  1. 2(N-1)(总步数)Ring AllReduce 分 scatter-reduce 和 all-gather 两个阶段,每阶段 N-1 步。
    T阶段=2(N−1)T_{\text{阶段}} = 2(N-1)
  2. D / B(单步传输时间)D 是每个节点每步传输的数据块大小(即总数据 ÷ N),B 是链路带宽。
    T传送=DBT_{\text{传送}} = \frac{D}{B}
  3. L(单跳时延)数据每经过一台交换机增加的固定时延。
    T跳=LT_{\text{跳}} = L
  4. 总步数 × 单步耗时把每步的传输时间和跳变时延相加,再乘以总步数得到总耗时。
    Tring=2(N−1)(DB+L)T_{\text{ring}} = 2(N-1)\left(\frac{D}{B} + L\right)

故障诊断:路网巡检手册

专线跑得久了,难免出现各种问题:某段桥面破损导致车速骤降、某个匝道的信号灯失灵让车辆排队……InfiniBand 网络同样需要一套巡检手册。最常见的故障是链路层异常:光纤被意外拔松、光模块信号劣化、交换机散热不良导致端口闪断,表现出来就是训练时不时卡住或掉点。

诊断思路遵循“先看车、再看路、最后看指挥”三层:先确认 GPU 和驱动健康(nvidia-smi、hccl_tests 工具),再检查物理链路状态(ibstatus 看端口速率和链路层是否 ACTIVE),最后查网络层与转发细节(ibdiagnet 做全网拓扑一致性检查、ibping 测试任意两端连通性)。

几个关键指标要盯紧:端口物理状态(PORT_STATE)、链路误码率(链路层 CRC 错包计数)、丢包率(期望收到但没收到的包占比)。丢包率是网络健康最直观的度量:正常无损 IB 网络里接近 0,一旦超过 1e-6 就要警惕。此外,SM 日志里的错误记录、接收端队列溢出计数也值得每周巡检:

维护超级物流专线的最佳实践是:固定巡检节奏(每周跑一遍 ibdiagnet)、给每根线缆贴上标签(拓扑文档化)、关键链路留备用光缆(冗余链路)、SM 端配好告警通知。做到这四条,你就拥有了一个稳定可靠的 IB 网络——这也是千卡集群稳定训练的最后一块拼图。

Ploss=NlossNtotalP_{\text{loss}} = \frac{N_{\text{loss}}}{N_{\text{total}}}
公式意思是:丢包率 = 丢失的包数 ÷ 发送的总包数。IB 无损网络的丢包率应长期趋近于 0,任何肉眼可见的丢包都意味着链路或配置出了问题。
  1. P_loss(丢包率)网络传输中丢失数据包的比例,是衡量链路健康的核心指标。
    Ploss=NlossNtotalP_{\text{loss}} = \frac{N_{\text{loss}}}{N_{\text{total}}}
  2. N_loss(丢失包数)发送方已发出、但接收方未收到的包数量。
    Nloss=N发送−N接收N_{\text{loss}} = N_{\text{发送}} - N_{\text{接收}}
  3. N_total(总发包数)发送方累计发出的所有数据包总数。
    Ntotal=∑tN发送(t)N_{\text{total}} = \sum_{t} N_{\text{发送}}(t)
  4. 结果解读正常无损网络该值接近 0;超过 1e-6 要排查链路,超过 1e-4 必须停训练处理。
    Ploss×100%P_{\text{loss}} \times 100\%

AI 应用场景

大模型分布式训练的网络选型与部署

阶段:模型训练(基础设施搭建)

解决的问题:千卡集群训练中,传统以太网带宽不足导致 GPU 空转。只靠调大 batch size 掩盖通信开销,会拖慢收敛速度。采用 IB NDR 网络 + Fat-Tree 无阻塞拓扑 + 双端口 HCA 接入,通信效率可提升 5-8 倍。

具体案例:某大模型团队 512 卡集群,每节点 8×A100,配置 1×双端口 NDR HCA(2×400Gbps),网络收敛比 1:1。HCCL ring 模式下 15GB 梯度 allreduce 耗时从以太网时代的 12 秒降到 0.6 秒,训练吞吐提升 3 倍以上。

训练任务通信故障快速定位

阶段:模型训练(运行监控与运维)

解决的问题:训练跑到第 3 天突然每 20 分钟卡顿一次。传统排查靠重启任务,白白浪费算力。使用 ibstatus 发现某节点端口降速到 40Gbps,再用 ibdiagnet 定位到光纤模块劣化,更换后立即恢复。

具体案例:某推理团队训练 7B 模型时 loss 周期性尖刺,最终定位是 IB 交换机一个 200G 端口 CRC 错误率飙升,导致 HCCL 持续重传。更换光模块后,训练恢复平稳。

多任务共享集群的网络质量保障

阶段:资源调度与多租户管理

解决的问题:多个团队共享同一套 IB 网络,A 团队的大任务把带宽吃满,B 团队任务性能骤降。通过 SM 的 QoS 配置对不同服务等级设置带宽上限,并结合 HCCL 拥塞控制参数,保障高优先级任务。

具体案例:某智算中心给付费用户分配高优先级服务等级,带宽超卖时高优任务流量走低延迟通道,任务劣化从 70% 降到 5% 以内,顺利满足了商业化 SLA。

Python 演示

python41 行
"""IB 网络带宽与 Ring AllReduce 通信耗时估算工具""" IB_SPECS = {    "EDR": 100,   # Gbps    "HDR": 200,   # Gbps    "NDR": 400,   # Gbps}  def calc_bandwidth(link_rate, num_links, oversubscription):    """计算有效总带宽(GB/s)"""    return link_rate * num_links / 8 / oversubscription  def calc_allreduce_time(data_size, bandwidth, latency, n_nodes):    """估算 Ring AllReduce 总耗时(秒)"""    steps = 2 * (n_nodes - 1)    per_step_data = data_size / n_nodes    return steps * (per_step_data / bandwidth + latency)  def main():    data_size = 64 * 1024 * 1024   # 64MB 梯度数据    n_nodes = 8    latency = 2e-6                 # 2 微秒     print("IB规格 | 链路数 | 有效带宽(GB/s) | RingAllReduce耗时(ms)")    print("-" * 78)    for name, rate in IB_SPECS.items():        for links in (8, 16):            bw = calc_bandwidth(rate, links, oversubscription=1.0)            t_ms = calc_allreduce_time(data_size, bw, latency, n_nodes) * 1000            print(f"{name:6s}| {links:5d} | {bw:15.3f} | {t_ms:10.3f}")     print("-" * 78)    print("结论: 链路速率和链路数翻倍, 通信耗时几乎线性下降;")    print("      收敛比越高(阻塞越严重), 有效带宽越低.")  if __name__ == "__main__":    main()
目的:模拟不同 IB 规格(EDR/HDR/NDR)和链路数下的有效带宽,并估算 Ring AllReduce 通信耗时,帮助运维在选型前快速做理论测算。
  1. return link_rate * num_links / 8 / oversubscription将 Gbps 转为 GB/s(除以 8),再除以收敛比得到真实可用带宽,收敛比越大可用带宽越低。
  2. steps = 2 * (n_nodes - 1)Ring AllReduce 的总步数公式,前半程做数据归并、后半程做全员分发,各 N-1 步。
  3. per_step_data = data_size / n_nodes每步每个节点只需传输总数据的 1/N,这是 Ring 模式能打满带宽的关键设计。
  4. calc_allreduce_time(data_size, bw, latency, n_nodes) * 1000将秒换算为毫秒输出,便于直观对比各规格下的通信延迟。

常见误区

误区“IB 和以太网都是网嘛,只是速度不同,配置方法应该差不多。我在服务器上装个 IB 驱动,再把 IP 配好不就行了?”

正解两者底层机制完全不同。IB 专为高性能计算设计了 RDMA 硬件直通、无损网络(链路层流控)、子网管理器等机制,数据搬运不经过 CPU 和内核协议栈。配置上 IB 需要单独的子网管理器、LID 寻址和专用路由计算,远不止“配个 IP”那么简单。把 IB 当以太网用,性能发挥不出三成。

为何常见:都叫“网”,都有交换机、网线和端口速率的概念,表面相似性容易让人忽略协议本质的差异。

误区“直接上最新的 NDR 400G 旗舰卡准没错,贵有贵的道理,一步到位省得以后升级。”

正解网卡选型要匹配 GPU 数量、通信模式、PCIe 代际和预算。如果你的训练通信量只有 100Gbps 需求,配四张 NDR 卡也是闲置。更关键的是,老旧服务器的 PCIe 3.0/4.0 接口可能喂不饱新网卡的吞吐,出现“好马配破车”的瓶颈。正确的做法是先测通信峰值,再按公式计算张数并留 30% 余量。

为何常见:硬件消费习惯让人直觉认为“最贵=最好”,忽略了系统匹配和性价比。

误区“SM 配置文件写好、主备部署完,它自己会跑,我半年都不用管它。”

正解SM 是持续运行的守护者,需要定期巡检。链路新增、设备替换、路由重算、LMC 调整、告警日志分析,都是日常运维事项。主备切换后要确认是否自动恢复;集群扩容后要验证新路由是否生效。放任不管的 SM 可能在关键时刻“掉链子”,导致全网失联。

为何常见:配置完成后集群“看起来”稳定运行,容易让人产生“无事可做”的错觉,忽略了后台状态变化。

误区“我看了监控,丢包率一直是 0,所以网络肯定没问题,不用再查别的指标了。”

正解丢包率是网络病变的“最终症状”,而非早期信号。链路降速(端口协商失败掉到低速率)、CRC 错包计数升高、时延抖动、队列溢出等指标往往先于丢包出现异常。正确做法是把 ibstatus 的端口速率、SM 日志错误数、端口接收错误计数和丢包率一起纳入巡检看板,才能提前发现隐患。

为何常见:丢包率最直观、最好理解,容易成为唯一的心理安慰指标,忽略了其他更隐蔽的退化信号。

误区“装了 HCCL 库,驱动加载了,所有通信应该自动用上全部 IB 带宽,我什么都不用配置。”

正解HCCL 提供的是通信原语和算法骨架,但运行参数需要人工调优:HCCL_BUFFSIZE 决定缓冲区大小、HCCL_CONNECT_TIMEOUT 影响建连节奏、通信模式(ring 还是 tree)要按集群规模选择。不调参直接跑,可能在多节点拥塞时严重掉速,甚至出现初始化超时失败。

为何常见:现代库的“自动配置”宣传容易让人误以为开箱即满速,忽略了分布式通信的复杂性和调参空间。

面试题

Q1. InfiniBand 网络相对传统以太网的核心优势是什么?

单选题 · easy

  • A.采购成本更低
  • B.低时延高带宽← 正确答案
  • C.配置更简单
  • D.兼容性更广

答案:B。IB 的核心优势是通过 RDMA 硬件直通实现低时延和高带宽,数据不经过 CPU 拷贝,时延比以太网低一个量级。A 错在 IB 成本远高于以太网;C 错在 IB 配置复杂度更高;D 错在两者协议不兼容,IB 不能替代所有以太网场景。

Q2. 一张 NDR 规格 IB 网卡的单个端口速率是多少?

单选题 · easy

  • A.100Gbps
  • B.200Gbps
  • C.400Gbps← 正确答案
  • D.800Gbps

答案:C。NDR 单端口速率为 400Gbps(4×100Gbps 通道),是当前主流高性能规格。A 对应 EDR(100Gbps),B 对应 HDR(200Gbps),D 是 XDR 的规划目标,尚未规模商用。

Q3. Fat-Tree 拓扑中,收敛比 R=1 表示什么?

单选题 · mid

  • A.上下行带宽相等← 正确答案
  • B.上行带宽大于下行
  • C.下行带宽大于上行
  • D.不需要核心层

答案:A。收敛比 R = 上行聚合带宽 ÷ 下行聚合带宽。R=1 表示上下行等宽,任意节点间通信无阻塞,这是大规模训练最理想的网络模型。B、C 分别对应 R>1 和 R<1 的阻塞场景,D 与收敛比概念无关。

Q4. InfiniBand 子网管理器(SM)的职责包括哪些?

多选题 · hard

  • A.发现网络节点← 正确答案
  • B.分配节点LID← 正确答案
  • C.计算转发路由← 正确答案
  • D.编译训练代码

答案:ABC。SM 是 IB 子网的“交通指挥总局”,负责发现网内节点、为每个节点分配 16 位 LID、计算节点间路径并下发转发表。编译训练代码属于开发工具链的职责,与 SM 无关,因此 D 错误。

Q5. 在 4 节点 Ring AllReduce 通信中,总共需要多少步传输?

单选题 · mid

  • A.3步
  • B.4步
  • C.6步← 正确答案
  • D.8步

答案:C。Ring AllReduce 分 scatter-reduce 和 all-gather 两个阶段,每阶段 N-1 步,总步数为 2×(N-1)。4 节点时 2×(4-1)=6 步,即 3 步归并 + 3 步分发。其余选项均不符合公式。

Q6. 以下哪些命令是 IB 网络故障排查的常用工具?

多选题 · mid

  • A.运行ibstatus← 正确答案
  • B.运行ibdiagnet← 正确答案
  • C.运行netstat
  • D.运行nvidia-smi

答案:AB。ibstatus 查看端口速率和链路状态,ibdiagnet 做全网拓扑与健康检查,两者是 IB 专属工具。netstat 属于 TCP/IP 协议栈工具,不查 IB 链路;nvidia-smi 是 GPU 状态查看工具,也不直接反映 IB 网络健康。

Q7. 某训练任务跨节点通信峰值带宽需要 600Gbps,使用单端口 HDR(200Gbps)网卡,至少需要几张?

单选题 · hard

  • A.2张
  • B.3张← 正确答案
  • C.4张
  • D.6张

答案:B。600 ÷ 200 = 3 张,这是满足需求的理论下限。但按最佳实践,还应预留 30% 余量,即 600×1.3÷200 = 3.9,向上取整为 4 张。题目问“至少”所以选 B,实际生产建议选 C 4 张。

Q8. GPU 集群中 HCCL 的主要作用是什么?

单选题 · easy

  • A.集合通信库← 正确答案
  • B.显存管理器
  • C.编译器工具
  • D.驱动升级器

答案:A。HCCL 是昇腾集群的集合通信库,提供 allreduce、broadcast 等分布式通信原语,屏蔽底层 IB/以太网差异。显存管理由 CUDA 或驱动负责,编译和驱动升级也都不是 HCCL 的职责,因此 B、C、D 错误。

Q9. 根据 Ring AllReduce 耗时公式,影响总耗时的因素包括?

多选题 · hard

  • A.数据块大小← 正确答案
  • B.链路带宽← 正确答案
  • C.网络时延← 正确答案
  • D.风扇转速

答案:ABC。公式 T = 2(N-1)×(D/B+L) 显示,耗时受每步数据量 D、链路带宽 B 和单跳时延 L 影响。风扇转速最多通过散热间接影响硬件降频,不直接进入通信公式,因此 D 错误。

Q10. 4 节点 Ring AllReduce 中,总数据量 32MB,链路带宽 25GB/s,单跳时延 2μs,总耗时最接近?

单选题 · extreme

  • A.1.34ms
  • B.2.03ms← 正确答案
  • C.2.87ms
  • D.4.06ms

答案:B。每步传输数据 D = 32MB ÷ 4 = 8MB = 8.39×10⁶ 字节;每步耗时 = 8.39e6 ÷ 25e9 + 2e-6 ≈ 0.3376ms;总步数 2×(4-1)=6 步;总耗时 6×0.3376 ≈ 2.03ms。A 只算了单步耗时,C 误用总数据量一次传完,D 是重复累加了时延项。