现代机器学习框架通常使用 NVIDIA Collective Communications Library (NCCL) 来实现 GPU 间通信原语。
Google 的增强版 NCCL 称为 NCCL/gIB,可在Google Cloud的 A5X、A4X Max、A4X、A4 和 A3 Ultra 实例上使用。在 Google 基础设施上,NCCL/gIB 通常比上游 NCCL 性能更高。由于 NCCL 性能可能会影响整体工作负载性能,因此我们建议您使用 NCCL/gIB。
NCCL/gIB 包含 Google 专属功能和优化,例如:
- gIB 网络插件可在 Google 网络上提供更出色的负载均衡,从而在集体操作期间更稳定地实现高吞吐量和低延迟。
- 自定义调优器插件,用于在 Google Cloud 虚拟机上选择最佳调优选项。
- CoMMA 性能分析器插件可为您的工作负载提供详细的性能指标和诊断数据。
- env 插件可为 Google Cloud 虚拟机提供特定于平台的变量配置。
NCCL/gIB 架构
NCCL/gIB 会与机器学习框架以及集群上的 NVIDIA GPU 进行交互,以优化性能并收集遥测数据,如下图所示:

使用 NCCL/gIB 的优势
虽然可以在 Google Cloud 虚拟机上使用上游 NVIDIA Collective Communications Library,而不会出现稳定性问题,但 NCCL/gIB 针对 Google Cloud 进行了更好的优化,并且对于某些通信模式,即使使用相同的 NCCL 参数,性能差异也可能非常显著。
例如,下图显示了 NCCL/gIB 与上游 NCCL 在 AllReduce 性能方面的比较。在某些消息大小下,NCCL/gIB 的性能比上游 NCCL 高出多达 12 倍。

使用 A3 Ultra (H200) 且无后台流量时的 32 节点 NCCL AllReduce 性能。
同样,在比较 NCCL/gIB 与上游 NCCL 在有后台流量时的 AllGather 性能时,NCCL/gIB 在较大消息大小下的性能比上游 NCCL 高出约 50%,如图所示。

在有噪声背景的共享网络上使用 A3 Ultra (H200) 的 32 节点 NCCL AllGather 性能。
此外,CoMMA 性能分析器插件可为 Google 提供经过改进的自定义遥测数据,使我们能够在出现工作负载级问题时更好地为您提供帮助。
安装 NCCL/gIB
在运行 NCCL 测试之前,您必须在运行时环境中安装 NCCL/gIB。
使用 NCCL/gIB
如需在集群上运行 NCCL/gIB 测试,请从以下列表中选择最符合您要求的页面:
- 在 NVIDIA NGC 容器中使用 gIB NCCL 插件
- 在 Compute Engine 实例上运行 NCCL 测试
- 在采用 Cluster Toolkit 的 GKE 集群上运行 NCCL
- 在 A4X Max GKE 集群上运行 NCCL
- 在 A4X GKE 集群上运行 NCCL
- 在 A4 或 A3 Ultra GKE 集群上运行 NCCL
- 在 Slurm 集群上运行 NCCL 测试
- 在 Cluster Director 中运行 NCCL 测试
如需了解如何在 A5X GKE 集群上运行 NCCL/gIB,请与您的 Google Cloud 代表联系。
如需了解如何在运行测试后解决集群中的任何问题,请参阅收集和了解 NCCL/gIB 日志以进行问题排查。