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, hängen vom GPU-Maschinentyp ab, den Sie auswählen.

Dieses Dokument soll Architekten, Netzwerktechniker und Entwicklern helfen, die zugrunde liegenden Netzwerkdienste zu verstehen, die sich auf die GPU-Maschinen beziehen. Es wird davon ausgegangen, dass Sie mit Cloud-Netzwerken und Konzepten für verteiltes Computing vertraut sind.

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

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 Goodput direkt verbessert, da die GPUs mehr Zeit für Berechnungen aufwenden können, anstatt auf Daten zu warten.

Die schienenorientierte Anordnung von GPUs besteht aus drei Hauptkomponenten:

  • Unterblöcke:Dies sind die Grundeinheiten, die aus einer Gruppe von Hosts bestehen, die sich physisch auf einem einzelnen Rack befinden. Ein ToR-Switch (Top-of-Rack) verbindet diese Hosts und ermöglicht eine extrem effiziente Kommunikation mit nur einem Hop zwischen zwei GPUs im Unterblock. RDMA over Converged Ethernet (RoCE) ermöglicht diese direkte Kommunikation. Eine erweiterte NCCL-Bibliothek, die für die Rail-Topologie von Google optimiert ist, übernimmt die GPU-Kommunikationskollektive.
  • Blöcke:Diese bestehen aus mehreren Unterblöcken, die über eine nicht blockierende Struktur miteinander verbunden sind, was eine Interconnect-Verbindung mit hoher Bandbreite ermöglicht. Jede GPU in einem Block ist in maximal zwei Netzwerk-Hops erreichbar. Das System stellt Block- und Unterblockmetadaten bereit, um eine optimale Jobplatzierung zu ermöglichen.
  • Cluster:Diese bestehen aus mehreren miteinander verbundenen Blöcken, die auf Tausende von GPUs skaliert werden können. So lassen sich Trainingsarbeitslasten im großen Maßstab ausführen. Für die Kommunikation zwischen verschiedenen Blöcken ist nur ein weiterer Hop erforderlich. So bleiben Leistung und Planbarkeit auch in dieser Größenordnung hoch. 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 geringe Latenz für Arbeitslasten zu bieten. Dazu gehören RDMA over Converged Ethernet (RoCE), NVIDIA-Netzwerkkarten und die Rail-Netzwerktopologie von Google im gesamten Rechenzentrum.

Diese Maschinentypen verwenden die NVLink-Technologie von NVIDIA, um direkte Datenpfade mit extrem hoher Geschwindigkeit zwischen den NVIDIA-NICs auf jeder Maschine zu erstellen. Außerdem ermöglicht RoCE eine effiziente RDMA-Kommunikation zwischen GPUs auf verschiedenen Maschinen.

GPU-Netzwerkstacks

Ein Netzwerkstack 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:

Protokollstapel 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 die Auslagerung des TCP-Protokolls. Mit GPUDirect-TCPXO verdoppelt sich die Netzwerkbandbreite des A3 Mega-Maschinentyps im Vergleich zu den Maschinentypen A3 High und A3 Edge. Informationen zur Maximierung der Netzwerkbandbreite in GKE-Clustern, die GPUDirect-TCPXO verwenden, finden Sie unter GPU-Netzwerkbandbreite in Standardmodusclustern maximieren und wählen Sie 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 Host- und Speicherebene

Sämtlicher Traffic, der nicht direkte GPU-zu-GPU-Kommunikation ist, wird über einen separaten Netzwerkpfad geleitet. Dazu gehören der 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-Netzwerkkarten entlasten die CPU von Netzwerkverarbeitungsaufgaben, sodass sich die CPU auf Ihre Arbeitslasten konzentrieren kann. Durch diese Trennung wird sichergestellt, dass Traffic für allgemeine Zwecke und dedizierter GPU-zu-GPU-Traffic unterschiedliche physische Schnittstellen verwenden und nicht um dieselben Systemressourcen konkurrieren.

Umgebung mit mehreren VPCs

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. Damit Beschleuniger mit diesem speziellen Hardwaredesign zurechtkommen, ist eine Umgebung mit mehreren VPCs nötig. Das gilt 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 den allgemeinen Host-Traffic (gVNIC) und erfordern ein zusätzliches VPC-Netzwerk für den allgemeinen Host-Traffic sowie ein gemeinsames VPC-Netzwerk für den gesamten GPU-zu-GPU-Traffic. Für das VPC-Netzwerk 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 Konfiguration mit mehreren VPCs sorgt dafür, dass Speicheroperationen und andere Systemaufgaben nicht mit der wichtigen GPU-zu-GPU-Kommunikation um Bandbreite konkurrieren.

Die erforderliche Netzwerkkonfiguration mit mehreren VPCs, die Sie einrichten müssen, hängt von Ihrem GPU-Maschinentyp ab. Einen detaillierten Leitfaden zur Netzwerkanordnung, Bandbreitengeschwindigkeit 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 Traffic für allgemeine Zwecke und dediziertem GPU-zu-GPU-Traffic auf verschiedene Netzwerkebenen hervorgehoben.

Netzwerkarchitektur für AI Hypercomputer-GPU-Maschinen.

Wie im obigen Diagramm dargestellt, verwenden die GPU-Maschinen dedizierte Netzwerkpfade für verschiedene Arten von Traffic. Traffic für allgemeine Zwecke, einschließlich Verwaltungs- und Speicherzugriff, wird über Google Titanium-Netzwerkkarten geleitet, die mit einer VPC verbunden sind. Für die GPU-zu-GPU-Kommunikation mit hoher Leistung werden separate Netzwerkschnittstellen und VPCs verwendet, 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 ihre Komponenten

Die folgenden Netzwerkbibliotheken und -komponenten ermöglichen es Ihnen, GPUs mit dem Netzwerkstack von Google zu verwenden, um die Netzwerkbandbreite und ‑leistung zu maximieren:

  • 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 Primitive für gemeinsame Kommunikationsvorgänge. Sie 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 Multi-Netzwerk-Unterstützung 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