本文說明 Collective Communication Analyzer (CoMMA),這是一項用於收集 NCCL 遙測資料的 Google Cloud 服務程式庫。NCCL 遙測會收集 NCCL 在執行期間產生的效能指標和作業事件。NVIDIA Collective Communication Library (NCCL) 可加速平行執行的 GPU 之間的高效能通訊,以及分散式運算系統。這種高效能通訊特別適合深度學習和高效能運算 (HPC)。
在 NCCL 2.23 以上版本中,NVIDIA 導入了 NCCL 分析器外掛程式 API,可讓開發人員註冊函式回呼,以便在 NCCL 集體作業期間收集遙測資料。Google 提供集體通訊分析器 (CoMMA),這個程式庫會使用 NVIDIA 的 NCCL 分析器外掛程式 API,為 Google Cloud 服務收集 NCCL 遙測資料。CoMMA 會自動安裝並啟用部分映像檔,但您也可以停用、重新啟用,或手動安裝並啟用 CoMMA,控管資料收集作業。
已啟用 CoMMA 的圖片
對於 A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High (8 個 GPU) 機型,當您使用任何封裝 gIB NCCL 外掛程式的映像檔時,系統會安裝並自動啟用 CoMMA。下列映像檔包含 gIB NCCL 外掛程式:
- 搭載 containerd 的 Container-Optimized OS (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 會自動載入 LD_LIBRARY_PATH 環境變數指定位置中安裝的 CoMMA 程式庫。CoMMA 接著會收集 NCCL 遙測資料,供其他 Google 服務使用。您也可以選擇將這項資料匯出至本機檔案系統。
後續步驟
- 瞭解如何啟用、停用及設定 CoMMA。
- 瞭解如何排解 CoMMA 問題。
- 瞭解如何偵測及解決延遲問題。
- 瞭解如何偵測沒有回應的工作負載。