總覽

本文說明 Collective Communication Analyzer (CoMMA),這是一項用於收集 Google Cloud 服務 NCCL 遙測資料的程式庫。NCCL 遙測會收集 NCCL 在執行期間產生的效能指標和作業事件。NVIDIA 集體通訊程式庫 (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) 機型,只要使用任何封裝 NCCL Google Infrastructure Bundle (gIB) 外掛程式的映像檔,系統就會安裝並自動啟用 CoMMA。下列圖片包含 NCCL gIB 外掛程式:

如果您使用任何圖片,並想禁止 CoMMA 收集 NCCL 遙測資料,請參閱「停用 CoMMA」。不過,您必須啟用 CoMMA,落後偵測等功能才能運作。如果您不使用這些映像檔,但想啟用 CoMMA 來收集 NCCL 遙測資料,請參閱「安裝 CoMMA」。

優點

CoMMA 收集的 NCCL 遙測資料有助於找出 GPU 通訊的效能瓶頸,特別是落後者。CoMMA 會收集精細資料,例如集體通訊作業的延遲時間直方圖。診斷服務隨後會處理並使用這項資料,找出延遲的作業。

使用 CoMMA 收集遙測資料可享有下列優點:

  • 偵測落後者時需要:CoMMA 會收集細微的 NCCL 遙測資料,找出 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 服務使用。您也可以選擇將這項資料匯出至本機檔案系統。

後續步驟