AI Hypercomputer verwendet bestimmte Netzwerkdienste, die vom ausgewählten GPU-Maschinentyp abhängen. Wenn Sie diese Dienste verstehen, können Sie die Leistung und den Goodput optimieren, also den effektiven Fortschritt einer Trainingsaufgabe für maschinelles Lernen.
Netzwerk nach Infrastruktur
Die Netzwerkarchitektur für Ihre Bereitstellung hängt von der gewählten Infrastruktur ab: allgemeine GPUs oder geclusterte GPUs.
Standard-VPC-Netzwerk für allgemeine GPUs
Allgemeine GPUs verwenden das standardmäßige Google CloudVPC-Netzwerk.
- Architektur: Basiert auf einem standardmäßigen, mandantenfähigen VPC-Design für Inferenz, Modellbereitstellung und explorative Forschung.
- Protokolle: verwendet TCP/IP über die Google Virtual NIC (gVNIC).
Hochleistungs-Fabrics für geclusterte GPUs
Mit AI Hypercomputer können Sie GPU-Maschinen bereitstellen, die eine hierarchische, Rail-ausgerichtete Netzwerkarchitektur verwenden. Die vorhersehbare, leistungsstarke Konnektivität dieses Designs minimiert den Kommunikationsaufwand. Dadurch wird der Goodput direkt verbessert, da GPUs mehr Zeit für Berechnungen aufwenden können, anstatt auf Daten zu warten.
Die Rail-ausgerichtete Anordnung von geclusterten GPUs umfasst drei Komponenten:
- Unterblöcke: Eine Gruppe von Hosts, die sich auf demselben physischen Block 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 Subblock. RDMA-RoCE (Remote Direct Memory Access over Converged Ethernet) 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: Eine Gruppe von Unterblöcken, die über ein nicht blockierendes Hochgeschwindigkeitsnetzwerk mit hoher Bandbreite verbunden sind. 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: Eine Sammlung miteinander verbundener Blöcke, die auf Tausende von GPUs skaliert werden können, sodass Sie umfangreiche Trainingsarbeitslasten ausführen können. 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. Damit eine intelligente, umfangreiche Jobplatzierung möglich ist, sind auch Metadaten auf Clusterebene für Orchestratoren verfügbar.
Technologien für die GPU-zu-GPU-Kommunikation
GPU-Maschinen verwenden eine Kombination von Technologien, um eine hohe Leistung, einen hohen Durchsatz und eine niedrige 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.
Die NVLink-Technologie von NVIDIA erstellt direkte Datenpfade mit extrem hoher Geschwindigkeit zwischen den NVIDIA-NICs auf jeder Maschine. Außerdem ermöglicht RoCE eine effiziente RDMA zwischen GPUs auf verschiedenen Maschinen.
GPU-Netzwerkstacks
Ein Netzwerkstack ist eine Sammlung von Softwareprotokollen, Treibern und Schichten, die zusammenarbeiten, um die GPU-zu-GPU-Kommunikation zu implementieren. Verschiedene GPU-Maschinentypen verwenden unterschiedliche Netzwerkstacks. In der folgenden Tabelle sind die Netzwerkstacks und die zugehörigen Maschinentypen definiert:
| Netzwerkstack | Beschreibung | GPU-Maschinentyp |
|---|---|---|
| GPUDirect RDMA | Ermöglicht einen direkten Pfad für den Datenaustausch zwischen einer GPU und einem anderen Gerät. Für A5X-, A4X Max- und A4X-Instanzen verwendet dieser Netzwerkstack RoCE. Weitere Informationen finden Sie unter Clusterkonfigurationsoptionen mit GPUDirect RDMA. | |
| GPUDirect-TCPXO | Verbessert GPUDirect-TCPX durch Auslagern des TCP-Protokolls. Mit GPUDirect-TCPXO erreicht der Maschinentyp A3 Mega die doppelte Netzwerkbandbreite des Maschinentyps A3 High. Informationen zum Maximieren der Netzwerkbandbreite in GKE-Clustern, die GPUDirect-TCPXO verwenden, finden Sie unter GPU-Netzwerkbandbreite in Clustern im Standardmodus maximieren. Wählen Sie dort den Tab „GPUDirect-TCPXO“ aus. | |
| 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 Clustern im Standardmodus maximieren. Wählen Sie dort den Tab „GPUDirect-TCPX“ aus. |
|
| Standard-TCP/IP | Das grundlegende Netzwerkprotokoll für allgemeine Arbeitslasten (Standard). Sie bietet hohe Zuverlässigkeit und umfassende Kompatibilität mit Standard-VPC-Diensten. |
|
Host- und Speicherdatenebenen-Netzwerk
Multi-GPU-Instanzen erfordern unterschiedliche Netzwerkkonfigurationen für die Kommunikation mit der Compute-Instanz im Vergleich zur GPU-zu-GPU-Informationsverarbeitung.
Ein separater Netzwerkpfad (manchmal auch als Nord-Süd-Netzwerk oder Frontend-Netzwerk bezeichnet) verarbeitet die gesamte Kommunikation mit der Compute-Instanz. Dieser Traffic umfasst den Laufwerkszugriff, die Kommunikation zwischen VMs, den Internetzugriff, den Zugriff auf Cloud Storage, die Verwaltung auf Hostebene und die Kommunikation mit anderen Google Cloud-Diensten.
Zur Verwaltung dieses Traffics verwenden GPU-Maschinentypen die Google Virtual NIC (gVNIC) oder, bei A5X- und A4X Max-Bare-Metal-Instanzen, die Intel Infrastructure Data Path Function (IDPF)-Netzwerkschnittstelle über Google Titanium NICs. Titanium-NICs entlasten die CPU von Netzwerkverarbeitungsaufgaben, damit diese vollständig für Ihre Arbeitslasten zur Verfügung steht. Durch diese Trennung wird sichergestellt, dass der Traffic für allgemeine Zwecke und der dedizierte GPU-zu-GPU-Traffic unterschiedliche physische Schnittstellen verwenden, sodass sie nicht um dieselben Systemressourcen konkurrieren müssen.
Umgebung mit mehreren VPCs
Alle Arbeitslasten werden in der Virtual Private Cloud (VPC) von Google Cloudausgeführt.
Hochleistungsbeschleuniger-Maschinen verfügen über ein spezielles Hardwaredesign, das mehrere physische Netzwerkschnittstellen verwendet, um verschiedene Arten von Traffic zu verarbeiten. Damit dieses spezielle Hardwaredesign verarbeitet werden kann, ist eine Umgebung mit mehreren VPCs erforderlich, unabhängig davon, ob Sie Slurm, GKE oder Compute Engine zum Ausführen Ihrer Arbeitslasten verwenden.
Die jeweilige Multi-VPC-Konfiguration hängt vom GPU-Maschinentyp und dem Netzwerkstack ab:
A5X, A4X Max, A4X, A4 und A3 Ultra mit GPUDirect RDMA: Diese Maschinen werden von zwei Arten physischer Netzwerkkarten unterstützt: eine, die Traffic für allgemeine Zwecke unterstützt, und eine, die RDMA-Traffic unterstützt. Netzwerkschnittstellen, die der physischen NIC für allgemeine Zwecke zugeordnet sind (die Schnittstelle
nic0und eine zusätzliche Netzwerkschnittstelle), sind an reguläre VPC-Netzwerke angehängt. RDMA-Netzwerkschnittstellen, die der RDMA-fähigen physischen NIC zugeordnet sind, werden an ein separates VPC-Netzwerk mit einem RDMA-Netzwerkprofil angehängt, um GPUDirect RDMA zu verwenden. Insgesamt verwenden diese Maschinentypen bis zu drei VPC-Netzwerke. Bei A5X-, A4X Max- und A4X-Bereitstellungen innerhalb eines einzelnen Subblocks übernimmt die NVLink-Fabric mit mehreren Knoten die GPU-zu-GPU-Kommunikation. Das RDMA-VPC-Netzwerk ist daher optional. Informationen zum Einrichten dieser Netzwerkinfrastruktur finden Sie unter VPCs und Subnetze erstellen.A3 Mega mit GPUDirect-TCPXO: Diese Maschinen erfordern acht separate VPCs für die GPU-NICs, die für die Kommunikation mit hoher Bandbreite vorgesehen sind. Eine detaillierte Anleitung zum Abschließen dieser Konfiguration finden Sie unter VPCs und Subnetze erstellen.
A3 High mit GPUDirect-TCPX: Diese Maschinen erfordern vier separate VPCs für die GPU-NICs, die für die Kommunikation mit hoher Bandbreite vorgesehen sind. Eine detaillierte Anleitung zum Abschließen dieser Konfiguration finden Sie unter VPCs und Subnetze erstellen.
Diese Multi-VPC-Konfiguration sorgt dafür, dass Speichervorgänge 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 vom GPU-Maschinentyp ab. Eine detaillierte Anleitung zur Netzwerkanordnung, zu Bandbreitengeschwindigkeiten und zu NICs für alle unterstützten GPU-Maschinentypen finden Sie unter Netzwerk und GPU-Maschinen.
Das folgende Diagramm zeigt die Netzwerkarchitektur für eine geclusterte GPU-Maschine und verdeutlicht die Trennung von Traffic für allgemeine Zwecke und dediziertem GPU-zu-GPU-Traffic auf verschiedenen Netzwerkebenen.
Wie im vorherigen Diagramm dargestellt, verwenden diese GPU-Maschinen dedizierte Netzwerkpfade für verschiedene Arten von Traffic. Der 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 leistungsstarke GPU-zu-GPU-Kommunikation 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
Mit den folgenden Netzwerkbibliotheken und -komponenten können Sie GPUs mit dem Netzwerkstack von Google verwenden, um die Netzwerkbandbreite und -leistung zu maximieren:
- gVNIC: 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 hilft, Probleme mit „Noisy Neighbors“ zu reduzieren. gVNIC wird für alle Maschinenfamilien 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. NCCL wurde speziell für Umgebungen mit mehreren GPUs und Knoten entwickelt, die NVIDIA-GPUs und -Netzwerke verwenden. Führen Sie NCCL-Tests aus, um die Leistung bereitgestellter Cluster zu bewerten. Weitere Informationen finden Sie unter Netzwerkleistung testen.
- GKE Multi-Netzwerke: Mit der Multi-Netzwerk-Unterstützung für Pods können Sie mehrere Schnittstellen auf Knoten und Pods in einem GKE-Cluster aktivieren. Weitere Informationen 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 Software-Stacks finden Sie unter Betriebssystem- und Docker-Images.
Nächste Schritte
- Informationen zum Sichern Ihrer Bereitstellungen finden Sie unter Best Practices für die Verwendung von Dienstkonten.
- Informationen zum Härten Ihres Netzwerks finden Sie unter VPC-Firewallregeln.
- Weitere Informationen zur Beschleuniger-Konnektivität finden Sie unter Übersicht über GPU-Netzwerke.