GPU-Netzwerkübersicht

AI Hypercomputer ist ein Supercomputing-System, mit dem Sie KI- und ML-Arbeitslasten (maschinelles Lernen) mit mehreren Hosts auf GPU-Maschinen bereitstellen können. Die zugrunde liegenden Netzwerkdienste, die Sie in der Bereitstellung verwenden, werden durch den von Ihnen ausgewählten GPU-Maschinentyp bestimmt.

Dieses Dokument soll Architekten, Netzwerktechniker und Entwickler dabei unterstützen, die zugrunde liegenden Netzwerkdienste zu verstehen, die sich auf die GPU-Maschinen beziehen. In diesem Dokument wird davon ausgegangen, dass Sie mit grundlegenden Konzepten für Cloud-Netzwerke und verteiltes Computing vertraut sind.

Die Netzwerkdienste für GPU-Maschinen zu verstehen, ist der erste Schritt für die erfolgreiche Bereitstellung und Verwaltung Ihrer Arbeitslasten und unerlässlich für die Optimierung von Leistung und Goodput. Goodput oder guter Durchsatz misst den effektiven Fortschritt, den ein System bei einer ML-Trainingsaufgabe erzielt. Dieser Messwert bietet im Vergleich zu Messwerten wie der insgesamt verstrichenen Zeit oder der Rohdurchsatzrate zusätzliche Informationen.

Einige GPU-Maschinentypen haben eine eigene, mehrschichtige Hierarchie, die die Kommunikation auf jeder Ebene optimiert. Diese Hierarchie reicht vom Rechenzentrum bis hin zu KI-optimierten Clustern und Compute Engine-Instanzen. In den folgenden Abschnitten werden diese hierarchischen Komponenten erläutert.

GPU-Netzwerkarchitektur

Mit AI Hypercomputer können Sie GPU-Maschinen bereitstellen, die eine hierarchische, schienenorientierte Netzwerkarchitektur verwenden. Die vorhersehbare, leistungsstarke Konnektivität dieses Designs minimiert den Kommunikationsaufwand, was den Durchsatz direkt verbessert, da GPUs mehr Zeit für Berechnungen aufwenden können, anstatt auf Daten zu warten.

Die schienenausgerichtete Anordnung von GPUs besteht aus drei Hauptkomponenten:

  • Subblöcke:Dies sind Grundeinheiten, die aus einer Gruppe von Hosts bestehen, die sich auf demselben physischen Rack befinden. Ein Top-of-Rack-Switch (ToR) verbindet diese Hosts und ermöglicht eine extrem effiziente Single-Hop-Kommunikation zwischen zwei beliebigen GPUs innerhalb des Subblocks. RDMA over Converged Ethernet (RoCE) ermöglicht diese direkte Kommunikation. Eine erweiterte NCCL-Bibliothek, die für die auf Schienen ausgerichtete Topologie von Google optimiert ist, verarbeitet GPU-Kommunikationskollektive.
  • Blöcke:Diese bestehen aus mehreren Teilblöcken, die über ein nicht blockierendes Fabric miteinander verbunden sind, was eine Interconnect-Verbindung mit hoher Bandbreite ermöglicht. Jede GPU in einem Block ist mit maximal zwei Netzwerk-Hops erreichbar. Das System stellt Block- und Unterblockmetadaten zur Verfügung, um eine optimale Jobzuweisung zu ermöglichen.
  • Cluster:Diese bestehen aus mehreren miteinander verbundenen Blöcken, die auf Tausende von GPUs skaliert werden können und mit denen Sie umfangreiche Trainingsarbeitslasten ausführen können. Die Kommunikation zwischen verschiedenen Blöcken erfordert nur einen zusätzlichen Hop, wodurch die hohe Leistung und Vorhersagbarkeit auch bei massivem Umfang beibehalten werden. Um eine intelligente, skalierbare Jobzuweisung zu ermöglichen, sind Orchestratoren auch Metadaten auf Clusterebene verfügbar.

Technologien für die GPU-zu-GPU-Kommunikation

GPU-Maschinen verwenden eine Kombination aus Technologien, um hohe Leistung, hohen Durchsatz und niedrige Latenz für Arbeitslasten zu bieten. Zu diesen Technologien gehören RDMA over Converged Ethernet (RoCE), NVIDIA-NICs und die rechenzentrumsweite, schienenorientierte Netzwerktopologie von Google.

Diese Maschinentypen verwenden die NVLink-Technologie von NVIDIA, um ultraschnelle, direkte Datenpfade zwischen den NVIDIA-NICs auf jeder Maschine zu erstellen. Außerdem ermöglicht RoCE effizienten RDMA zwischen GPUs auf verschiedenen Maschinen.

GPU-Netzwerkstacks

Ein Netzwerk-Stack ist eine Sammlung von Softwareprotokollen, Treibern und Layern, die zusammenarbeiten, um die GPU-zu-GPU-Kommunikation zu implementieren. Für verschiedene GPU-Maschinentypen werden unterschiedliche Netzwerkstacks verwendet. In der folgenden Tabelle werden die Netzwerk-Stacks und die zugehörigen Maschinentypen definiert:

Netzwerkstapel Beschreibung GPU-Maschinentyp
GPUDirect RDMA GPUDirect RDMA ermöglicht einen direkten Pfad für den Datenaustausch zwischen einer GPU und einem anderen Gerät. Bei A4X Max- und A4X-Instanzen wird in diesem Netzwerk-Stack RDMA over Converged Ethernet (RoCE) verwendet. Mit dieser Technologie können Peer-Geräte direkt auf den GPU-Speicher zugreifen und Daten in den GPU-Speicher schreiben. Die CPU wird dabei umgangen, um eine effizientere Verbindung für den leistungsstarken Datenaustausch zu schaffen. Weitere Informationen finden Sie unter Clusterkonfigurationsoptionen mit GPUDirect RDMA.
GPUDirect-TCPXO GPUDirect-TCPXO verbessert GPUDirect-TCPX durch Auslagerung des TCP-Protokolls. Durch die Nutzung von GPUDirect-TCPXO erreicht der Maschinentyp A3 Mega die doppelte Netzwerkbandbreite der Maschinentypen A3 High und A3 Edge. Informationen zum Maximieren der Netzwerkbandbreite in GKE-Clustern, die GPUDirect-TCPXO verwenden, finden Sie unter GPU-Netzwerkbandbreite in Standardmodusclustern maximieren. Wählen Sie dort den Tab „GPUDirect-TCPXO“ aus.
GPUDirect-TCPX GPUDirect-TCPX erhöht die Netzwerkleistung, indem Datennutzlasten direkt vom GPU-Speicher an die Netzwerkschnittstelle übertragen werden. Informationen zum Maximieren der Netzwerkbandbreite in GKE-Clustern, die GPUDirect-TCPX verwenden, finden Sie unter GPU-Netzwerkbandbreite in Standardmodusclustern maximieren. Wählen Sie dort den Tab „GPUDirect-TCPX“ aus.

Netzwerk der Datenebene für Host und Speicher

Ein separater Netzwerkpfad verarbeitet den gesamten Traffic, der nicht direkt von GPU zu GPU erfolgt. Dieser Traffic umfasst den Zugriff auf Cloud Storage, die Verwaltung auf Hostebene und die Kommunikation mit anderen Google Cloud -Diensten. Zur Verwaltung dieses Traffics verwenden die GPU-Maschinentypen Google Titanium-NICs.

Titanium-NICs lagern Netzwerkverarbeitungsaufgaben von der CPU aus, sodass sich die CPU auf Ihre Arbeitslasten konzentrieren kann. Durch diese Trennung wird sichergestellt, dass allgemeiner Traffic und dedizierter GPU-zu-GPU-Traffic unterschiedliche physische Schnittstellen verwenden, sodass sie nicht um dieselben Systemressourcen konkurrieren.

Multi-VPC-Umgebung

Alle Arbeitslasten werden in der VPC (Virtual Private Cloud) von Google Cloudausgeführt.

Hochleistungsbeschleuniger-Maschinen haben ein spezielles Hardwaredesign, bei dem mehrere physische Netzwerkschnittstellen verwendet werden, um verschiedene Arten von Traffic zu verarbeiten. Für dieses spezielle Hardwaredesign ist eine Multi-VPC-Umgebung erforderlich, unabhängig davon, ob Sie Slurm, GKE oder Compute Engine zum Ausführen Ihrer Arbeitslasten verwenden.

Die spezifische Multi-VPC-Konfiguration hängt vom GPU-Maschinentyp und seinem Netzwerkstack ab:

  • A4X Max, A4X, A4 und A3 Ultra mit GPUDirect RDMA:Diese Maschinen verwenden das Standard-VPC-Netzwerk für allgemeinen Host-Traffic (gVNIC) und erfordern ein zusätzliches VPC-Netzwerk für allgemeinen Host-Traffic sowie ein freigegebenes VPC-Netzwerk für den gesamten GPU-zu-GPU-Traffic. Für die VPC für GPU-Traffic muss das RDMA-Netzwerkprofil aktiviert sein. Weitere Informationen zu dieser Konfiguration für A4-VMs und A3-Ultra-VMs finden Sie unter VPC und Subnetze erstellen.

  • A3 Mega mit GPUDirect-TCPXO:Für diese Maschinen sind acht separate VPCs für die GPU-NICs erforderlich, die für die Kommunikation mit hoher Bandbreite vorgesehen sind. Eine detaillierte Anleitung zum Ausführen dieser Konfiguration finden Sie unter VPCs und Subnetze erstellen.

  • A3 High mit GPUDirect-TCPX:Für diese Maschinen sind vier separate VPCs für die GPU-NICs erforderlich, die für die Kommunikation mit hoher Bandbreite vorgesehen sind. Eine detaillierte Anleitung zum Ausführen dieser Konfiguration finden Sie unter VPCs und Subnetze erstellen.

Diese Multi-VPC-Konfiguration sorgt dafür, dass Speicheroperationen und andere Systemaufgaben nicht mit der Bandbreite für die kritische GPU-zu-GPU-Kommunikation konkurrieren.

Die erforderliche Multi-VPC-Netzwerkkonfiguration, die Sie einrichten müssen, hängt von Ihrem GPU-Maschinentyp ab. Einen detaillierten Leitfaden zur Netzwerkanordnung, Bandbreitengeschwindigkeiten und NICs für alle unterstützten GPU-Maschinentypen finden Sie unter Netzwerk und GPU-Maschinen.

Das folgende Diagramm zeigt die Netzwerkarchitektur für eine GPU-Maschine. Dabei wird die Trennung von Allzweck-Traffic und dediziertem GPU-zu-GPU-Traffic auf verschiedene Netzwerkebenen hervorgehoben.

Netzwerkarchitektur für AI Hypercomputer-GPU-Maschinen.

Wie im vorherigen Diagramm dargestellt, verwenden die GPU-Maschinen dedizierte Netzwerkpfade für verschiedene Arten von Traffic. Allgemeiner Traffic, einschließlich Management- und Speicherzugriff, wird über Google Titanium-Netzwerkkarten geleitet, die mit einer VPC verbunden sind. Die leistungsstarke GPU-zu-GPU-Kommunikation nutzt separate Netzwerkschnittstellen und VPCs, die mit Technologien wie RDMA optimiert sind. So werden eine hohe Bandbreite und eine niedrige Latenz für KI- und ML-Arbeitslasten gewährleistet.

Netzwerkbibliotheken und ‑komponenten

Um die Netzwerkbandbreite und ‑leistung zu maximieren, können Sie mit den folgenden Netzwerkbibliotheken und ‑komponenten GPUs mit dem Netzwerk-Stack von Google verwenden:

  • gVNIC:Die Google Virtual NIC (gVNIC) ist eine virtuelle Netzwerkschnittstelle, die speziell für Compute Engine entwickelt wurde. gVNIC verbessert die Leistung, erhöht die Konsistenz und reduziert Probleme mit „Noisy Neighbors“. gVNIC wird auf allen Maschinenfamilien, Maschinentypen und Generationen unterstützt und empfohlen und ist die empfohlene vNIC für die Host-zu-Host-Kommunikation. Weitere Informationen finden Sie unter Google Virtual NIC verwenden.
  • NCCL:Die NVIDIA Collective Communications Library (NCCL) bietet optimierte Primitiven für kollektive Kommunikationsvorgänge. Es wurde speziell für Umgebungen mit mehreren GPUs und Knoten entwickelt, in denen NVIDIA-GPUs und Netzwerke verwendet werden. Führen Sie NCCL-Tests aus, um die Leistung bereitgestellter Cluster zu bewerten. Weitere Informationen finden Sie unter NCCCL-Test bereitstellen und ausführen.
  • GKE-Multi-Netzwerke:Die Unterstützung mehrerer Netzwerke für Pods ermöglicht mehrere Schnittstellen auf Knoten und Pods in einem GKE-Cluster. Details zum Einrichten von Multi-Networking im Kontext von GPUDirect finden Sie unter GPU-Netzwerkbandbreite in Clustern im Standardmodus maximieren und Clusterkonfigurationsoptionen mit GPUDirect RDMA.

Weitere Informationen zu den verfügbaren Softwarestacks finden Sie unter Betriebssystem- und Docker-Images.

Nächste Schritte