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

現代機器學習框架經常使用 NVIDIA Collective Communications Library (NCCL) 做為 GPU 對 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 VM 上選取最佳調整選項。
  • CoMMA 分析器外掛程式提供工作負載的詳細成效指標和診斷資料。
  • env 外掛程式提供 Google Cloud VM 的平台專屬變數設定。

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 測試前,請務必在執行階段環境中安裝 NCCL/gIB。

使用 NCCL/gIB

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

如要瞭解如何在採用 A5X 的 GKE 叢集上執行 NCCL/gIB,請洽詢 Google Cloud 代表。

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