Hochleistungsfähige GPU-Server-Hardwaretopologie und Cluster-Netzwerk

Terminologie und Grundlagen

Beim Training großer Modelle werden normalerweise Einzelrechner mit 8 GPU-Hosts verwendet, um Cluster zu bilden. Die Modelle umfassen 8*{A100, A800, H100, H800}. Unten sehen Sie die Hardwaretopologie eines typischen 8*A100 GPU-Hosts:

die Hardwaretopologie eines typischen 8xA100 GPU-Hosts

PCIe-Switch-Chip

Geräte wie CPUs, Speicher, Speicher (NVME), GPUs und Netzwerkkarten, die PCIe unterstützen, können zur Herstellung der Interkonnektivität mit dem PCIe-Bus oder einem dedizierten PCIe-Switch-Chip verbunden werden.

Derzeit gibt es fünf Generationen von PCIe-Produkten, die neueste ist Gen5.

NVLink

Definition

Laut Wikipedia ist NVLink eine kabelgebundene serielle Mehrspur-Nahbereichskommunikationsverbindung, die von Nvidia entwickelt wurde. Im Gegensatz zu PCI Express kann ein Gerät aus mehreren NVLinks bestehen, und die Geräte kommunizieren über Mesh-Netzwerke statt über einen zentralen Hub. Das Protokoll wurde erstmals im März 2014 angekündigt und verwendet eine proprietäre Hochgeschwindigkeitssignalverbindung (NVHS).

Zusammenfassend lässt sich sagen, dass NVLink eine Hochgeschwindigkeits-Verbindungsmethode zwischen verschiedenen GPUs innerhalb desselben Hosts ist. Es handelt sich um eine Kommunikationsverbindung mit kurzer Reichweite, die eine erfolgreiche Paketübertragung gewährleistet, eine höhere Leistung bietet und als Ersatz für PCIe dient. Es unterstützt mehrere Lanes, wobei die Verbindungsbandbreite linear mit der Anzahl der Lanes zunimmt. GPUs innerhalb desselben Knotens werden über NVLink in einer Full-Mesh-Manier (ähnlich der Spine-Leaf-Architektur) unter Verwendung der proprietären Technologie von NVIDIA miteinander verbunden.

Entwicklung: Generationen 1/2/3/4

Die Hauptunterschiede liegen in der Anzahl der Lanes pro NVLink und der Bandbreite pro Lane (die angegebenen Zahlen sind bidirektionale Bandbreiten):

bidirektionale Bandbreiten

Beispielsweise:

A100: 2 Lanes/NVSwitch * 6 NVSwitch * 50 GB/s/Lane = 600 GB/s bidirektionale Bandbreite (300 GB/s unidirektional). Hinweis: Dies ist die Gesamtbandbreite von einer GPU zu allen NVSwitches.

A800: Reduziert um 4 Lanes, ergibt 8 Lanes * 50 GB/s/Lane = 400 GB/s bidirektionale Bandbreite (200 GB/s unidirektional).

Netzwerk Performance

Die NVLink-Bandbreite in Echtzeit kann basierend auf DCGM-Metriken erfasst werden.

Die NVLink-Bandbreite in Echtzeit kann basierend auf DCGM-Metriken erfasst werden.

NVSchalter

Eine typische 8*A100 GPU-Host-Hardwaretopologie finden Sie im Diagramm unten.

NVSwitch ist ein NVIDIA Switch-Chip, der im GPU-Modul eingekapselt ist.

NVSwitch ist ein im GPU-Modul gekapselter NVIDIA-Switch-Chip und kein unabhängiger externer Switch.

Unten sehen Sie ein Bild einer echten Maschine von Inspur. Die acht Kästen stellen die acht A100-GPUs dar, und die sechs dicken Kühlkörper auf der rechten Seite decken die NVSwitch-Chips ab:

eine echte Maschine von Inspur.

NVLink-Switch

Obwohl NVSwitch wie ein Switch klingt, handelt es sich tatsächlich um einen Switch-Chip auf dem GPU-Modul, der zum Verbinden von GPUs innerhalb desselben Hosts verwendet wird.

Im Jahr 2022 veröffentlichte NVIDIA diesen Chip als echten Switch namens NVLink Switch, der dazu dient, GPU-Geräte über Hosts hinweg zu verbinden. Die Namen können leicht verwechselt werden.

HBM (Speicher mit hoher Bandbreite)

Origin

Traditionell werden GPU-Speicher und regulärer Speicher (DDR) auf der Hauptplatine montiert und über PCIe mit dem Prozessor (CPU, GPU) verbunden. Dies führt zu einem Geschwindigkeitsengpass bei PCIe, wobei Gen4 64 GB/s und Gen5 128 GB/s bietet. Um dies zu überwinden, stapeln einige GPU-Hersteller (nicht nur NVIDIA) mehrere DDR-Chips und verpacken sie mit der GPU. Auf diese Weise kann jede GPU mit ihrem eigenen Speicher interagieren, ohne über den PCIe-Switch-Chip zu routen, was die Geschwindigkeit deutlich erhöht. Dieser „High Bandwidth Memory“ wird als HBM abgekürzt. Der HBM-Markt wird derzeit von südkoreanischen Unternehmen wie SK Hynix und Samsung dominiert.

Evolution: HBM 1/2/2e/3/3e

Entwicklung HBM

Laut Wikipedia verwendet der AMD MI300X eine 192 GB HBM3-Konfiguration mit einer Bandbreite von 5.2 TB/s. HBM3e ist eine erweiterte Version von HBM3 mit Geschwindigkeiten von 6.4 GT/s bis 8 GT/s.

Bandbreiteneinheiten

Die Leistung des GPU-Trainings im großen Maßstab hängt direkt mit der Datenübertragungsgeschwindigkeit zusammen. Dabei geht es um verschiedene Verbindungen, wie etwa PCIe-Bandbreite, Speicherbandbreite, NVLink-Bandbreite, HBM-Bandbreite und Netzwerkbandbreite. Die Netzwerkbandbreite wird normalerweise in Bits pro Sekunde (b/s) ausgedrückt und bezieht sich normalerweise auf unidirektional (TX/RX). Die Bandbreite anderer Module wird im Allgemeinen in Bytes pro Sekunde (B/s) oder Transaktionen pro Sekunde (T/s) ausgedrückt und bezieht sich normalerweise auf die gesamte bidirektionale Bandbreite. Beim Vergleich von Bandbreiten ist es wichtig, diese Einheiten zu unterscheiden und umzurechnen.

Typischer 8A100/8A800-Host

Host Topology: 2-2-4-6-8-8

  • 2 CPUs (und deren jeweiliger Speicher, NUMA)
  • 2 Speichernetzwerkkarten (für den Zugriff auf verteilten Speicher, In-Band-Verwaltung usw.)
  • 4 PCIe Gen4 Switch-Chips
  • 6 NVSwitch-Chips
  • 8 GPUs
  • 8 GPU-dedizierte Netzwerkkarten
Hosttopologie

Das folgende Diagramm bietet eine detailliertere Ansicht:

Das folgende Diagramm bietet eine detailliertere Ansicht

Speichernetzwerkkarten

Diese sind über PCIe direkt mit der CPU verbunden. Ihre Aufgaben umfassen:

Lesen und Schreiben von Daten aus verteilten Speichern, z. B. Lesen von Trainingsdaten und Schreiben von Prüfpunkten.

Normale Knotenverwaltung, SSH, Überwachung usw.

Die offizielle Empfehlung lautet, BF3 DPU zu verwenden, aber solange die Bandbreite den Anforderungen entspricht, funktioniert jede Lösung. Verwenden Sie für kosteneffiziente Netzwerke RoCE, für optimale Leistung verwenden Sie IB.

NVSwitch Fabric: Intra-Node-Vollnetz

Die 8 GPUs sind in einer Full-Mesh-Konfiguration über 6 NVSwitch-Chips verbunden, auch NVSwitch-Fabric genannt. Jeder Link im Full-Mesh hat eine Bandbreite von n * bw-per-nvlink-lane:

Bei A100 mit NVLink3 sind es 50 GB/s pro Lane, sodass jede Verbindung im Vollnetz 12 x 50 GB/s = 600 GB/s (bidirektional) und 300 GB/s unidirektional beträgt.

Bei A800, einer reduzierten Version, werden 12 Lanes auf 8 Lanes reduziert, so dass jede Verbindung 8*50 GB/s = 400 GB/s (bidirektional) und 200 GB/s unidirektional beträgt.

Verwenden von nvidia-smi topo zum Anzeigen der Topologie

Unten sehen Sie die tatsächliche Topologie, die von nvidia-smi auf einer 8*A800-Maschine angezeigt wird (Netzwerkkarten sind paarweise verbunden, NIC 0~3 sind verbunden):

die tatsächliche Topologie angezeigt von nvidia-smi

Zwischen GPUs (oberer linker Bereich): Alle sind NV8, was auf 8 NVLink-Verbindungen hinweist.

Zwischen Netzwerkkarten:

Auf derselben CPU: NODE, was bedeutet, dass kein NUMA-Überschreiten erforderlich ist, jedoch das Überschreiten von PCIe-Switch-Chips erforderlich ist.

Auf verschiedenen CPUs: SYS, was auf die Notwendigkeit hinweist, NUMA zu überschreiten.

Zwischen GPUs und NICs:

Auf derselben CPU und unter demselben PCIe-Switch-Chip: NODE, was nur die Kreuzung von PCIe-Switch-Chips anzeigt.

Auf derselben CPU, aber unter unterschiedlichen PCIe-Switch-Chips: NODE, was auf die Kreuzung von PCIe-Switch-Chips und PCIe-Host-Bridge hinweist.

Auf verschiedenen CPUs: SYS, das die Überquerung von NUMA, PCIe-Switch-Chips und der längsten Distanz anzeigt.

GPU-Trainingscluster-Netzwerk: IDC GPU Fabric

GPU-Knoten-Verbindungsarchitektur:

GPU-Knoten-Verbindungsarchitektur

Computernetzwerk:

Die GPU-Netzwerkschnittstellenkarten (NICs) sind direkt mit den Top-of-Rack-Switches (Leaf) verbunden. Diese Leaf-Switches sind in einer Full-Mesh-Topologie mit den Spine-Switches verbunden und bilden ein Inter-Host-GPU-Rechnernetzwerk. Der Zweck dieses Netzwerks besteht darin, den Datenaustausch zwischen GPUs auf verschiedenen Knoten zu erleichtern. Jede GPU ist über einen PCIe-Switch-Chip mit ihrer NIC verbunden: GPU <–> PCIe-Switch <–> NIC.

Speichernetzwerk:

Zwei direkt mit der CPU verbundene Netzwerkkarten sind mit einem anderen Netzwerk verknüpft, hauptsächlich für Datenlese-/-schreibvorgänge und die SSH-Verwaltung.

RoCE im Vergleich zu InfiniBand:

Sowohl die Rechen- als auch die Speichernetzwerke benötigen RDMA, um die für KI erforderliche hohe Leistung zu erreichen. Derzeit gibt es zwei RDMA-Optionen:

RoCEv2: Öffentliche Cloud-Anbieter verwenden dieses Netzwerk normalerweise für 8-GPU-Hosts, wie z. B. den CX6 mit einer 8*100-Gbit/s-Konfiguration. Es ist relativ kostengünstig und erfüllt gleichzeitig die Leistungsanforderungen.

InfiniBand (IB): Bietet bei gleicher NIC-Bandbreite eine um über 20 % bessere Leistung als RoCEv2, ist aber doppelt so teuer.

Analyse von Engpässen bei der Datenverbindungsbandbreite:

Analyse von Engpässen bei der Datenverbindungsbandbreite

Die wichtigsten Verbindungsbandbreiten sind im Diagramm angegeben:

Intra-Host-GPU-Kommunikation: Nutzt NVLink mit einer bidirektionalen Bandbreite von 600 GB/s (300 GB/s unidirektional).

Intra-Host-GPU-zu-NIC-Kommunikation: Verwendet PCIe Gen4-Switch-Chips mit einer bidirektionalen Bandbreite von 64 GB/s (32 GB/s unidirektional).

GPU-Kommunikation zwischen Hosts: Nutzt NICs zur Datenübertragung. Die Mainstream-Bandbreite für inländische A100/A800-Modelle beträgt 100 Gbit/s (12.5 GB/s unidirektional), was zu einer deutlich geringeren Leistung im Vergleich zur Intra-Host-Kommunikation führt.

  • 200 Gbit/s (25 GB/s): Nähert sich der unidirektionalen Bandbreite von PCIe Gen4.
  • 400 Gbit/s (50 GB/s): Übertrifft die unidirektionale Bandbreite von PCIe Gen4.

Daher ist die Verwendung von 400-Gbit/s-NICs in diesen Modellen nicht sehr effektiv, da für die volle Ausnutzung von 400 Gbit/s die Leistung von PCIe Gen5 erforderlich ist.

Typische 8H100/8H800-Hosts

Es gibt zwei Arten von GPU-Board-Formfaktoren:

  • PCIe Gen5
  • SXM5: Bietet höhere Leistung.

H100-Chiplayout:

Die interne Struktur eines H100-GPU-Chips umfasst:

Die interne Struktur eines H100-GPU-Chips

4-nm-Prozesstechnologie.

Die untere Reihe besteht aus 18 Gen4 NVLink-Lanes mit einer gesamten bidirektionalen Bandbreite von 900 GB/s (18 Lanes * 25 GB/s/Lane).

Der mittlere blaue Abschnitt ist der L2-Cache.

Die Seiten enthalten HBM-Chips, die als GPU-Speicher dienen.

Intra-Host-Hardwaretopologie:

Ähnlich der A100 8-GPU-Struktur, mit folgenden Unterschieden:

Die Anzahl der NVSwitch-Chips wurde von 6 auf 4 reduziert.

Intra-Host-Hardwaretopologie

Die Verbindung zur CPU wurde von PCIe Gen4 x16 auf PCIe Gen5 x16 mit einer bidirektionalen Bandbreite von 128 GB/s aktualisiert.

Netzwerk:

Ähnlich wie der A100, aber die Standardkonfiguration wurde auf 400 Gbps CX7 NICs aktualisiert. Andernfalls wäre die Bandbreitenlücke zwischen dem PCIe-Switch und NVLink/NVSwitch noch größer.

Typische 4*L40S/8*L40S-Hosts

Der L40S ist eine neue Generation kostengünstiger, multifunktionaler GPUs, die 2023 auf den Markt kommen sollen und als Konkurrent zum A100 positioniert sind. Obwohl er nicht für das Training großer Basismodelle geeignet ist (wie später erläutert wird), wird er als für fast jede andere Aufgabe geeignet beworben.

Vergleich der Konfigurationen und Funktionen von L40S und A100

Eines der Hauptmerkmale des L40S ist seine kurze Markteinführungszeit, d. h. die Zeitspanne von der Bestellung bis zur Lieferung ist im Vergleich zum A100/A800/H800 viel kürzer. Dies hat sowohl technische als auch nichttechnische Gründe, wie z. B.: Die Entfernung von FP64 und NVLink.

Die Verwendung von GDDR6-Speicher, der nicht von der Produktionskapazität (und fortschrittlicher Verpackung) von HBM abhängig ist.

Die niedrigeren Kosten sind auf mehrere Faktoren zurückzuführen, die später näher erläutert werden.

Die größte Kostensenkung dürfte bei der GPU selbst liegen, da bestimmte Module und Funktionen entfernt oder günstigere Alternativen verwendet werden.

Einsparungen bei den Gesamtsystemkosten, beispielsweise durch den Wegfall einer Schicht PCIe Gen4-Switches. Im Vergleich zu 4x/8x GPUs sind die Kosten der übrigen Systemkomponenten nahezu vernachlässigbar.

Leistungsvergleich zwischen L40S und A100

Nachfolgend finden Sie einen offiziellen Leistungsvergleich:

Leistungsvergleich zwischen L40S und A100

Leistung: 1.2x bis 2x (je nach Szenario).

Stromverbrauch: Zwei L40S-Einheiten verbrauchen ungefähr so ​​viel Strom wie ein einzelner A100.

Es ist wichtig zu beachten, dass die offizielle Empfehlung für L40S-Hosts eine einzelne Maschine mit 4 statt 8 GPUs ist (die Gründe dafür werden später erläutert). Daher werden Vergleiche im Allgemeinen zwischen zwei 4L40S-Einheiten und einer einzelnen 8A100-Einheit angestellt. Darüber hinaus haben viele Leistungsverbesserungen in verschiedenen Szenarien eine wichtige Voraussetzung: Das Netzwerk muss ein 200-Gbit/s-RoCE- oder IB-Netzwerk sein, was als Nächstes erläutert wird.

L40S-Systembaugruppe

Empfohlene Architektur: 2-2-4

Im Vergleich zur 100-2-2-4-6-8-Architektur des A8 ist die offiziell empfohlene L40S-GPU-Hostarchitektur 2-2-4. Die physische Topologie einer einzelnen Maschine ist wie folgt:

Empfohlene Architektur 2-2-4

Die auffälligste Änderung ist die Entfernung des PCIe-Switch-Chips zwischen CPU und GPU. Sowohl die Netzwerkkarte als auch die GPU sind direkt mit dem integrierten PCIe Gen4 x16 (64 GB/s) der CPU verbunden:

  • 2 CPUs (NUMA)
  • 2 Dual-Port CX7 NICs (jede NIC 2*200 Gbps)
  • 4 L40S-GPUs

Darüber hinaus ist nur eine Dual-Port-Speicher-NIC vorhanden, die direkt mit einer der CPUs verbunden ist.

Diese Konfiguration bietet jeder GPU eine durchschnittliche Netzwerkbandbreite von 200 Gbit/s.

Nicht empfohlene Architektur: 2-2-8

Nicht empfohlene Architektur 2-2-8

Wie gezeigt, erfordert eine einzelne Maschine mit 4 GPUs im Vergleich zu einer einzelnen Maschine mit 8 GPUs die Einführung von zwei PCIe Gen5-Switch-Chips.

Es heißt, dass der aktuelle Preis eines einzelnen PCIe Gen5-Switch-Chips 10,000 US-Dollar beträgt (dies ist allerdings nicht verifiziert) und dass für eine einzelne Maschine zwei Chips erforderlich sind, was sie unwirtschaftlich macht.

Es gibt nur einen Hersteller, der PCIe-Switches produziert, mit begrenzter Produktionskapazität und langen Vorlaufzeiten.

Die Netzwerkbandbreite pro GPU wird halbiert.

Networking

Die offizielle Empfehlung betrifft 4-GPU-Modelle, gepaart mit einem 200-Gbit/s-RoCE/IB-Netzwerk.

Analyse von Bandbreitenengpässen bei Datenverbindungen

Analyse von Bandbreitenengpässen bei Datenverbindungen

Am Beispiel von zwei L40S-GPUs unter derselben CPU ergeben sich zwei mögliche Verbindungsoptionen:

  1. Direkte CPU-Verarbeitung:

Pfad: GPU0 <–PCIe–> CPU <–PCIe–> GPU1

Bandbreite: PCIe Gen4 x16 mit einer bidirektionalen Bandbreite von 64 GB/s (32 GB/s unidirektional).

CPU-Verarbeitungsengpass: Muss noch ermittelt werden.

  • Umgehen der CPU-Verarbeitung:

Pfad: GPU0 <–PCIe–> NIC <– RoCE/IB-Switch –> NIC <–PCIe–> GPU1

Bandbreite: PCIe Gen4 x16 mit einer bidirektionalen Bandbreite von 64 GB/s (32 GB/s unidirektional).

Durchschnittliche Bandbreite pro GPU: Jede GPU verfügt über einen unidirektionalen 200-Gbit/s-Netzwerkport, was 25 GB/s entspricht.

NCCL-Unterstützung: Die neueste Version von NCCL wird für das L40S angepasst, mit dem Standardverhalten zum externen Weiterleiten von Daten und zurück.

Obwohl diese Methode länger zu dauern scheint, ist sie Berichten zufolge schneller als die erste Methode, vorausgesetzt, die NICs und Switches sind ordnungsgemäß mit einem 200-Gbit/s-RoCE/IB-Netzwerk konfiguriert. In dieser Netzwerkarchitektur sind bei ausreichender Bandbreite die Kommunikationsbandbreite und Latenz zwischen zwei beliebigen GPUs konsistent, unabhängig davon, ob sie sich auf derselben Maschine oder unter derselben CPU befinden. Dies ermöglicht eine horizontale Skalierung des Clusters.

Kosten- und Leistungsüberlegungen:

Die Kosten für GPU-Maschinen werden reduziert. Bei Aufgaben mit geringeren Anforderungen an die Netzwerkbandbreite werden die Kosten für NVLINK jedoch effektiv auf das Netzwerk übertragen. Daher ist ein 200-Gbit/s-Netzwerk unerlässlich, um die Leistung des Multi-GPU-Trainings mit dem L40S voll auszunutzen.

Bandbreitenengpässe bei Methode Zwei:

Der Bandbreitenengpass zwischen GPUs innerhalb desselben Hosts wird durch die NIC-Geschwindigkeit bestimmt. Selbst bei der empfohlenen 2*CX7-Konfiguration:

  • L40S: 200 Gbit/s (unidirektionale NIC-Geschwindigkeit)
  • A100: 300 GB/s (unidirektionales NVLINK3) == 12 x 200 Gbit/s
  • A800: 200 GB/s (unidirektionales NVLINK3) == 8 x 200 Gbit/s

Es ist offensichtlich, dass die Inter-GPU-Bandbreite des L40S 12-mal langsamer ist als die des A100 NVLINK und 8-mal langsamer als die des A800 NVLINK, was ihn für datenintensives grundlegendes Modelltraining ungeeignet macht.

Überlegungen zum Testen:

Wie bereits erwähnt, ist selbst beim Testen einer einzelnen 4-GPU-L40S-Maschine ein 200-Gbit/s-Switch erforderlich, um eine optimale Inter-GPU-Leistung zu erzielen.

Hinterlasse einen Kommentar

Nach oben scrollen