現代機器學習框架經常使用 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 互動,以最佳化效能並收集遙測資料,如下圖所示:

使用 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 測試前,請務必在執行階段環境中安裝 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 記錄以進行疑難排解」。