GPU 網路總覽

AI Hypercomputer 是超級運算系統,可協助您使用 GPU 機器部署多主機人工智慧 (AI) 和機器學習 (ML) 工作負載。部署作業中使用的基礎網路服務取決於您選擇的 GPU 機型

本文旨在協助架構師、網路工程師和開發人員瞭解與 GPU 機器相關的基礎網路服務。本文假設您對雲端網路和分散式運算概念有基本瞭解。

瞭解 GPU 機器的網路服務,是成功部署及管理工作負載的第一步,也是提升效能和有效輸送量的必要條件。有效處理量 (或有效處理量) 是指系統在機器學習訓練工作上的有效進展。與總經過時間或原始輸送量等指標相比,這項指標可提供額外的洞察資訊。

部分 GPU 機型具有獨特的層疊式階層,可最佳化各層級的通訊。這個階層範圍從資料中心架構到 AI 最佳化叢集和 Compute Engine 執行個體。以下各節將說明這些階層式元件。

GPU 網路架構

AI Hypercomputer 可協助您部署使用階層式、軌道對齊網路架構的 GPU 電腦。這種設計可預測且高效能的連線能力,能盡量減少通訊負擔,讓 GPU 將更多時間用於運算,而非等待資料,直接提升有效輸送量。

GPU 的導軌對齊排列方式包含三個主要元件:

  • 子區塊:這些是基礎單位,由位於同一機架上的主機群組組成。機架頂端 (ToR) 交換器會連線這些主機,在子區塊內的任意兩個 GPU 之間,實現極有效率的單一躍點通訊。透過融合乙太網路 (RoCE) 的 RDMA 可促進這類直接通訊。經過強化且針對 Google 的軌道對齊拓撲最佳化的 NCCL 程式庫,可處理 GPU 通訊集合。
  • 區塊:由多個子區塊組成,並透過無阻斷結構互連,可實現高頻寬互連。區塊內的任何 GPU 最多只能透過兩次網路躍點連線。系統會公開區塊和子區塊中繼資料,以便最佳化工作放置位置。
  • 叢集:由多個互連區塊組成,可擴充至數千個 GPU,並支援執行大規模訓練工作負載。不同區塊之間的通訊只會增加一個額外躍點,即使大規模擴充,也能維持高效能和可預測性。如要啟用大規模智慧型工作放置功能,叢集層級的中繼資料也可供協調器使用。

GPU 間通訊技術

GPU 機器結合多種技術,為工作負載提供高效能、高輸送量和低延遲。這些技術包括透過融合乙太網路 (RoCE) 的 RDMA、NVIDIA NIC,以及 Google 資料中心全域的軌道對齊網路拓撲。

這些機型使用 NVIDIA 的 NVLink 技術,在每部機器的 NVIDIA NIC 之間建立超高速的直接資料路徑。此外,RoCE 可在不同機器的 GPU 之間啟用高效 RDMA。

GPU 網路堆疊

網路堆疊是一組軟體通訊協定、驅動程式和層,可共同實作 GPU 對 GPU 的通訊。不同 GPU 機型使用的網路堆疊不同。下表定義網路堆疊及其相關聯的機器類型:

網路堆疊 說明 GPU 機型
GPUDirect RDMA GPUDirect RDMA 可在 GPU 和其他裝置之間建立直接的資料交換路徑。對於 A4X Max 和 A4X 執行個體,這個網路堆疊會使用 RDMA over Converged Ethernet (RoCE)。這項技術可讓對等裝置直接讀取及寫入 GPU 的記憶體,略過 CPU 來建立更有效率的連線,以進行高效能的資料交換。詳情請參閱「使用 GPUDirect RDMA 的叢集設定選項」。
GPUDirect-TCPXO GPUDirect-TCPXO 可卸載 TCP 通訊協定,因此效能比 GPUDirect-TCPX 更出色。使用 GPUDirect-TCPXO 時,A3 Mega 機型提供的網路頻寬是 A3 High 和 A3 Edge 機型的兩倍。如要瞭解如何盡量提高使用 GPUDirect-TCPXO 的 GKE 叢集網路頻寬,請參閱「在標準模式叢集中盡量提高 GPU 網路頻寬」,然後選取「GPUDirect-TCPXO」分頁標籤。
GPUDirect-TCPX GPUDirect-TCPX 可讓資料封包酬載直接從 GPU 記憶體傳輸至網路介面,進而提升網路效能。如要瞭解如何盡量提高使用 GPUDirect-TCPX 的 GKE 叢集網路頻寬,請參閱「盡量提高標準模式叢集中的 GPU 網路頻寬」,然後選取「GPUDirect-TCPX」分頁標籤。

主機和儲存資料層網路

所有非 GPU 對 GPU 直接通訊的流量,都會透過獨立的網路路徑處理。這類流量包括存取 Cloud Storage、主機層級管理,以及與其他 Google Cloud 服務通訊。為管理這類流量,GPU 機器類型會使用 Google Titanium NIC

Titanium NIC 會卸載 CPU 的網路處理工作,讓 CPU 專心處理工作負載。這種分離方式可確保一般用途流量和專屬 GPU 對 GPU 流量使用不同的實體介面,避免爭用相同的系統資源。

多個虛擬私有雲環境

所有工作負載都在 Google Cloud的虛擬私有雲 (VPC) 中運作。

高效能加速器機器的硬體設計經過特別調整,可使用多個實體網路介面處理不同類型的流量。無論您使用 Slurm、GKE 或 Compute Engine 執行工作負載,都必須採用多個 VPC 環境,才能處理這種專用硬體設計。

具體的多 VPC 設定取決於 GPU 機型及其網路堆疊:

  • A4X Max、A4X、A4 和 A3 Ultra (搭配 GPUDirect RDMA):這些機器會使用預設的虛擬私有雲網路處理一般用途主機流量 (gVNIC),且需要一個額外的虛擬私有雲網路處理一般用途主機流量,以及一個共用虛擬私有雲網路處理所有 GPU 對 GPU 的流量。GPU 流量 VPC 必須啟用 RDMA 網路設定檔。如要進一步瞭解 A4 VM 和 A3 Ultra VM 的這項設定,請參閱「建立虛擬私有雲和子網路」。

  • 搭載 GPUDirect-TCPXO 的 A3 Mega:這些機器需要八個獨立的 VPC,用於 GPU NIC,專門用於高頻寬通訊。如需完成這項設定的詳細步驟,請參閱「建立虛擬私有雲和子網路」。

  • 搭載 GPUDirect-TCPX 的 A3 High:這些機器需要四個獨立的 VPC,用於 GPU 網路介面卡,專門用於高頻寬通訊。如需完成這項設定的詳細步驟,請參閱「建立虛擬私有雲和子網路」。

這項多虛擬私有雲設定可確保儲存空間作業和其他系統工作不會與重要的 GPU 間通訊爭奪頻寬。

您需要設定的多重虛擬私有雲網路設定,會因 GPU 機型而異。如需所有支援的 GPU 機型適用的網路配置、頻寬速度和 NIC 詳細指南,請參閱「網路和 GPU 機器」。

下圖顯示 GPU 機器的網路架構,重點在於將一般用途流量和專屬 GPU 對 GPU 流量分別導向不同的網路層。

AI Hypercomputer GPU 電腦的網路架構。

如上圖所示,GPU 機器會為不同類型的流量使用專屬網路路徑。一般用途流量 (包括管理和儲存空間存取) 會透過連線至虛擬私有雲的 Google Titanium 網路介面卡傳輸。高效能 GPU 對 GPU 通訊使用獨立的網路介面和 VPC,並透過 RDMA 等技術進行最佳化,確保 AI 和 ML 工作負載的高頻寬和低延遲。

網路程式庫和元件

如要盡可能地利用網路頻寬和效能,您可以使用下列網路程式庫和元件,搭配 Google 的網路堆疊使用 GPU:

  • gVNIC:Google Virtual NIC (gVNIC) 是專為 Compute Engine 設計的虛擬網路介面。gVNIC 可提升效能、提高一致性,並減少鄰近干擾問題。所有機器系列、機器類型和世代都支援且建議使用,也是主機對主機通訊的建議 vNIC。詳情請參閱「使用 Google 虛擬 NIC」。
  • NCCL:NVIDIA Collective Communications Library (NCCL) 提供最佳化的基本元素,用於集體通訊作業。專為多 GPU 和多節點環境設計,使用 NVIDIA GPU 和網路。執行 NCCL 測試,評估已部署叢集的效能。 詳情請參閱「部署及執行 NCCCL 測試」。
  • GKE 多網路:Pod 支援多網路功能之後,您就能在 GKE 叢集的節點和 Pod 中啟用多個介面。如要瞭解如何在 GPUDirect 環境中設定多重網路,請參閱「在標準模式叢集中盡量提高 GPU 網路頻寬」和「搭配 GPUDirect RDMA 的叢集設定選項」。

如要進一步瞭解可用的軟體堆疊,請參閱「作業系統和 Docker 映像檔」。

後續步驟