本文說明 Collective Communication Analyzer (CoMMA),這個程式庫用於收集 Google Cloud 服務的 NCCL 遙測資料。NCCL 遙測會收集 NCCL 執行期間產生的成效指標和作業事件。NVIDIA Collective Communication Library (NCCL) 可加速平行和分散式運算系統中執行的 GPU 之間的高效能通訊。這種高效能通訊特別適用於深度學習和高效能運算 (HPC)。
NVIDIA 在 NCCL 2.23 以上版本推出 NCCL 分析器外掛程式 API,可讓開發人員註冊函式回呼,在 NCCL 集合運算期間收集遙測資料。Google 提供 Collective Communication Analyzer (CoMMA),這個程式庫使用 NVIDIA 的 NCCL 分析器外掛程式 API,收集 Google Cloud 服務的 NCCL 遙測資料。CoMMA 會自動安裝並啟用部分映像檔,但您也可以停用、重新啟用或手動安裝並啟用 CoMMA,以控管資料收集。
已啟用 CoMMA 的映像檔
如果是 A5X、A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High (8 個 GPU) 機型,只要使用任何封裝 gIB NCCL 外掛程式的映像檔,系統就會安裝並自動啟用 CoMMA。下列映像檔包含 gIB NCCL 外掛程式:
- Container-Optimized OS with containerd (cos_containerd) 節點映像檔:Google Kubernetes Engine (GKE) 會使用這些映像檔建立 GKE Autopilot 叢集。CoMMA 二進位檔位於
/home/kubernetes/bin/gib目錄中。 - 深度學習軟體層容器映像檔:您可以使用這些映像檔,在 GKE 叢集上部署及設定 AI 和機器學習框架與程式庫。
如果您使用上述任一映像檔,且想停用 CoMMA 收集 NCCL 遙測資料的功能,請參閱「停用 CoMMA」。不過,您必須啟用 CoMMA,才能使用進度落後偵測或無回應工作負載偵測等功能。如果您不使用這些映像檔,但想啟用 CoMMA 來收集 NCCL 遙測資料,請參閱「安裝 CoMMA」。
優點
CoMMA 收集的 NCCL 遙測資料有助於找出 GPU 通訊中的效能瓶頸,尤其是落後者。CoMMA 會收集精細資料,例如集體通訊作業的延遲時間直方圖。診斷服務可以處理並使用這些資料,找出落後者。
使用 CoMMA 收集遙測資料有以下好處:
偵測落後者和無回應工作負載的必要條件:CoMMA 會收集精細的 NCCL 遙測資料,找出 GPU 對 GPU 通訊的效能瓶頸或落後者。CoMMA 提供詳細的 NCCL 遙測資料,有助於找出並解決大規模 AI 和機器學習訓練工作負載中的問題。
舉例來說,CoMMA 會擷取 NCCL 作業中使用的演算法。這項資訊對於效能分析和調整非常重要,因為不同的演算法可能會根據工作負載和系統設定,而有明顯不同的效能特性。
CoMMA 也能協助排解效能不佳和錯誤的問題。這項功能會追蹤源自較低層級傳輸層 (例如 TCP、RDMA 或交換器架構) 的錯誤,並回溯至特定 NCCL 集合和啟動節點。這項功能可辨識心跳遙測信號何時停止回應,並追蹤工作負載無回應的可能原因。
低負擔追蹤:CoMMA 在收集 NCCL 遙測資料時,會使用最少的運算資源,因此非常適合用於對效能敏感且長時間執行的機器學習工作負載,例如大型語言模型 (LLM) 訓練。
擴大 NCCL 遙測範圍:CoMMA 使用 NCCL 分析器外掛程式 API。與傳輸外掛程式相比,這個 API 收集的 NCCL 遙測資料範圍更廣。傳輸型外掛程式主要收集基礎網路傳輸的遙測資料,包括透過網路硬體和網路通訊協定傳輸的資料。分析器外掛程式會收集 NCCL 通訊作業的遙測資料,包括集體通訊、Proxy 作業和資料移轉的時間。
瞭解 CoMMA 的運作方式
在應用程式執行階段,NCCL 會自動載入 CoMMA 程式庫,這些程式庫安裝在 LD_LIBRARY_PATH 環境變數指定的位置。CoMMA 接著會收集 NCCL 遙測資料,供其他 Google 服務使用。您也可以選擇將這項資料匯出至本機檔案系統。
後續步驟
- 瞭解如何啟用、停用及設定 CoMMA。
- 瞭解如何排解 CoMMA 相關問題。
- 瞭解如何偵測及解決進度落後者。
- 瞭解如何偵測無回應的工作負載。