NVSwitch
NVSwitch 是连接多块 NVIDIA GPU 的交换芯片。它将多个 NVLink 端口组织为高带宽交换结构,使高密度服务器或机柜中的 GPU 更接近全互联,降低某些 GPU 对必须绕行的拓扑差异。
快速开始¶
在支持 NVSwitch 的系统上运行:
观察 GPU 对之间是否呈现均匀 NVLink 路径。随后使用 NCCL Tests 运行不同进程数的 All-Reduce,确认实际 Bus Bandwidth 与拓扑预期一致。
为什么需要交换¶
少量 GPU 可用直连 NVLink 构成网状结构,但 GPU 数量增长后,完全两两直连需要的端口迅速增加。NVSwitch 将每块 GPU 的 NVLink 接入交换平面,让多个 GPU 之间通过交换芯片通信。
交换结构并不消除通信成本,但能提供更均匀的带宽和更少的拓扑限制,特别适合高频全局通信。
大模型并行¶
张量并行与专家并行可能在每层交换激活或 Token。若并行组跨越带宽不均的 GPU 对,最快 GPU 也会等待最慢路径。NVSwitch 系统有利于将大并行组放在同一高带宽域中。
数据并行也受益于高带宽互联,但其通信频率通常低于层内张量并行。选择并行维度时应优先把最通信密集的维度放入 NVSwitch 域。
性能案例¶
在八卡训练中,比较两种进程布局:
- Tensor Parallel 为 8:每层使用八卡集合通信;
- Tensor Parallel 为 4、Data Parallel 为 2:层内通信缩小,梯度同步在两个副本间进行。
哪种更快取决于模型大小、Batch、通信算法和网络。NVSwitch 让第一种布局更可行,但不会自动使其优于第二种。应比较每步时间、通信比例和显存余量。
运行与维护¶
NVSwitch 系统需要对应 Driver、Fabric Manager 或平台服务。设备初始化不完整、固件不匹配或链路降级可能导致拓扑异常。
排查顺序:检查系统服务与错误日志,确认所有 GPU 可见,再测 NCCL 小规模通信,最后运行目标框架。不要直接在大规模训练任务中猜测链路故障。
常见问题¶
- NVSwitch 不是普通以太网交换机,也不连接 CPU、SSD 等任意设备;
- NVSwitch 不会把多卡变成单个逻辑 GPU,软件仍需模型并行;
- 显存依然分布在各卡,跨卡访问仍有延迟与带宽成本;
- 不同机箱、GPU 代际和 NVSwitch 代际的总带宽不能直接比较;
- 跨节点通信仍需要 InfiniBand 或 RoCE。
链路原理见 NVLink,跨节点扩展见 InfiniBand,并行策略见 分布式训练。