【CUDA】MNNVL和NVLink SHARP的关系
一、概括
MNNVL = 多节点 NVLink(底层互联) 集群
NVLS = MNNVL 集群上的 SHARP 卸载(上层加速)
即:NVLS 是 MNNVL 场景下的一个高级特性 / 加速模式。
二、说明
- MNNVL = Multi-Node NVLink:多节点 NVLink,指跨服务器 / 跨节点用 NVLink + NVSwitch 把 GPU 直接连起来,形成一个大的 “逻辑节点”,NCCL 可以在上面做高速通信。
- NVLS = NVLink SHARP:是第三代 NVSwitch(Hopper 架构,NVLink4)上的在网计算卸载,把 NCCL 的 AllReduce 等集体操作直接 offload 到 NVSwitch 硬件上执行,不占用 GPU 核和 CPU。
1、一句话关系
MNNVL 是 “通路 / 拓扑”,NVLS 是 “在这个通路上的硬件卸载能力”:
- MNNVL:解决 “多节点怎么用 NVLink 连起来” → 构建跨节点 NVLink 全连接 Fabric。
- NVLS:解决 “在这个 NVLink Fabric 上,集体通信怎么加速” → 把 NCCL 运算卸载到 NVSwitch。
2、更细一点的对应
- 硬件前提
- 都需要:Hopper(H100)及以后 GPU + 第三代 NVSwitch + NVLink4。
- MNNVL:节点间通过 NVSwitch 组网。
- NVLS:在同一个 NVSwitch 域(clique)内启用 SHARP 卸载。
- 层级关系
- MNNVL = 多节点 NVLink 集群(底层互联)
- NVLS = MNNVL 集群上的 SHARP 卸载(上层加速)
- 即:NVLS 是 MNNVL 场景下的一个高级特性 / 加速模式。
- NCCL 视角
- 没 MNNVL:跨节点走 InfiniBand / Ethernet。
- 有 MNNVL:跨节点走 NVLink,但 AllReduce 仍在 GPU 上算。
- 有 MNNVL + NVLS:跨节点走 NVLink,AllReduce 交给 NVSwitch 算,延迟更低、GPU 占用更少。
3、极简总结
- MNNVL = 多节点 NVLink 组网(路)
- NVLS = NVLink 网络上的硬件卸载(加速器)
- 关系:NVLS 运行在 MNNVL 构建的 NVLink Fabric 之上,是 MNNVL 的增强特性。
flowchart TD subgraph A [多节点NVLink集群] direction LR Node1[GPU节点1] --- NVSwitch_Fabric[NVSwitch Fabric<br>跨节点NVLink全连接] --- Node2[GPU节点2] end subgraph B [NVLS加速层] SHARP[SHARP引擎<br>AllReduce卸载] end A -- 提供底层 NVLink 通路 --> B B -- 运行于 MNNVL 之上 --> C[集体通信加速<br>低延迟 / 少GPU占用] MNNVL[多节点NVLink组网(路)] -.-> A NVLS[NVLink SHARP(加速器)] -.-> B更简洁:
