新式機器學習架構通常會使用 NVIDIA Collective Communications Library (NCCL),進行 GPU 對 GPU 的通訊基本作業。
Google 強化版的 NCCL 稱為 NCCL/gIB,適用於 Google Cloud的 A3 Ultra、A4 和 A4X VM。在 Google 基礎架構上,NCCL/gIB 的效能通常優於上游 NCCL。由於 NCCL 效能可能會影響整體工作負載效能,因此建議您使用 NCCL/gIB。
NCCL/gIB 包含 Google 專屬功能和最佳化項目,例如:
- gIB 網路外掛程式可改善 Google 網路的負載平衡,在集體作業期間,更穩定地提供高輸送量和低延遲。
- 自訂調整外掛程式,可選取 VM 上最佳的調整選項 Google Cloud 。
- CoMMA 分析器外掛程式會提供工作負載的詳細效能指標和診斷資料。
NCCL/gIB 架構
NCCL/gIB 會與機器學習架構和叢集中的 NVIDIA GPU 互動,以盡可能提高效能並收集遙測資料,如以下圖表所示:

使用 NCCL/gIB 的好處
雖然可以在 Google Cloud VM 上使用上游 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/gIB 測試,請從下列清單中選擇最符合需求的頁面:
- 在 Compute Engine VM 上執行 NCCL 測試
- 在採用預設設定的 GKE 叢集上執行 NCCL
- 在採用 A4X 的自訂 GKE 叢集上執行 NCCL
- 在採用 A4 或 A3 Ultra 的自訂 GKE 叢集上執行 NCCL
- 在 Slurm 叢集上執行 NCCL 測試
- 在 Cluster Director 中執行 NCCL 測試
如要瞭解如何在執行測試後解決叢集問題,請參閱「收集及解讀 NCCL/gIB 記錄以進行疑難排解」。