運用 NCCL/gIB 最佳化調整叢集網路

新式機器學習架構通常會使用 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 互動,以盡可能提高效能並收集遙測資料,如以下圖表所示:

機器學習架構會管理機器學習工作負載,並同時連線至 NVIDIA GPU 和 NCCL,而 NCCL 則會連線至各種 Google 工具和外掛程式。

使用 NCCL/gIB 的好處

雖然可以在 Google Cloud VM 上使用上游 NVIDIA Collective Communications Library,不會發生穩定性問題,但 NCCL/gIB 更適合 Google Cloud ,而且即使使用相同的 NCCL 參數,某些通訊模式的效能差異也可能非常顯著。

舉例來說,下圖比較了 NCCL/gIB 與上游 NCCL 的 AllReduce 效能。在特定訊息大小下,NCCL/gIB 的效能比上游 NCCL 高出 12 倍。

圖表:顯示 NCCL/gIB 在 AllReduce 工作中優於上游 NCCL。

使用 A3 Ultra (H200) 的 32 節點 NCCL AllReduce 效能,沒有背景流量。

同樣地,在比較 NCCL/gIB 與上游 NCCL 的 AllGather 成效 (有背景流量) 時,NCCL/gIB 在較大的訊息大小方面,比上游 NCCL 的成效高出約 50%,如這張圖所示。

圖表:顯示 NCCL/gIB 在 AllGather 工作中優於上游 NCCL。

在共用網狀架構上,使用 A3 Ultra (H200) 進行 32 節點 NCCL AllGather 效能測試,背景有雜訊。

此外,CoMMA 分析器外掛程式可為 Google 提供更完善的自訂遙測資料,有助於我們在發生工作負載層級問題時,為您提供更優質的協助。

使用 NCCL/gIB

如要在叢集上執行 NCCL/gIB 測試,請從下列清單中選擇最符合需求的頁面:

如要瞭解如何在執行測試後解決叢集問題,請參閱「收集及解讀 NCCL/gIB 記錄以進行疑難排解」。