Zum Inhalt springen
Kurzer Hinweis: flozi00 TechHub ist ein Solo-Nebenprojekt neben einem Vollzeitjob — persönliche Lernnotizen, keine offiziellen Aussagen. Kritische Schritte selbst prüfen.

Scale-up vs. Scale-out: Netzwerkbandbreite und Kollektivoperationen

Ein begrenzter Vergleich von NVLink-Domänen und Netzwerken zwischen Racks mit Ring-All-Reduce-Beispiel und offengelegten Annahmen.

2 Min. Lesezeitflozi00
nvidianvlinkinfinibandethernetrocenetworkingllmhardware
Direkt zum Fachartikel
Sehen · ausprobieren · verstehen

Eine Kollektivoperation zahlt für den tatsächlichen Byte-Pfad

Verfolge Ring-All-Reduce von der Platzierung durch beide Phasen mit konsistenten Bandbreiteneinheiten und Annahmen.

KI-gestützte Lernvisualisierung · schematische Erklärung zum Artikel

Schritt 1 / 4Den tatsächlichen Kommunikationspfad bestimmen

Scale-up verbindet GPUs lokal; Scale-out überschreitet Systemgrenzen. Vergleiche Bytes pro Sekunde mit Bytes pro Sekunde und Einwegkapazität mit Einwegkapazität; geteilte Ports und Netzwerkschnitte zählen mit.

AlgorithmusAktueller SchrittBaustein anklicken, um ihn zu erklären
Lokale Scale-up-Verbindungen
Nahe GPUs teilen eine lokale Domäne hoher Bandbreite.
Scale-out-Netzwerkpfad
NICs, Switches und geteilte Links verbinden Systeme.
N GPUs platzieren und Pfad bestimmen
Dauerhaft erreichte Bandbreite in einer konsistenten Richtung nutzen.
  1. Lokale Scale-up-Verbindungen N GPUs platzieren und Pfad bestimmen
    lokale Pfadkapazität
  2. Scale-out-Netzwerkpfad N GPUs platzieren und Pfad bestimmen
    Netzwerkschnitt und Teilung
Das solltest du mitnehmen

Kommunikationskosten folgen Bytes pro GPU und erreichter Pfadbandbreite, nicht einer rackweiten Gesamtspezifikation.

Die Ringformel ist ein reines Bandbreitenmodell. Die 900- und 100-GB/s-Beispiele sind idealisierte Eingaben, keine gemessenen NVLink-/InfiniBand-Ergebnisse; mehrere Links und Konkurrenz können den Vergleich ändern.

Begriffe und vollständiger Ablauf
All-Reduce
Beiträge aller GPUs kombinieren und das Ergebnis allen GPUs zurückgeben.
Dauerhaft erreichte Bandbreite
Die bei der relevanten Operation tatsächlich erreichte Transferrate.
Netzwerkschnitt
Verbindungen zwischen zwei Gruppen, deren Gesamtkapazität Verkehr begrenzen kann.
  1. Den tatsächlichen Kommunikationspfad bestimmen

    Scale-up verbindet GPUs lokal; Scale-out überschreitet Systemgrenzen. Vergleiche Bytes pro Sekunde mit Bytes pro Sekunde und Einwegkapazität mit Einwegkapazität; geteilte Ports und Netzwerkschnitte zählen mit.

  2. Den beiden Ringphasen folgen

    Reduce-Scatter kombiniert die GPU-Beiträge und lässt auf jeder GPU einen Ergebnisteil zurück. All-Gather verteilt anschließend diese Teile, sodass jede GPU das vollständige reduzierte Ergebnis besitzt.

  3. Übertragene Bytes konsistent zählen

    Der reine Bandbreitenterm des Rings ist 2(N−1)/N mal V/B, wobei jede GPU V beiträgt. Für acht GPUs beträgt der Faktor 1,75; nutze für ein echtes System die erreichte Bandbreite des gewählten Pfads.

  4. Das Modell mit einer Messung vergleichen

    Der Term lässt Startkosten und Konkurrenz aus; NCCL kann einen anderen Algorithmus wählen. Miss tatsächliche Platzierung und Nachrichtengrößen, bevor du den Effekt auf einen Modell-Workload vorhersagst.

Alle Verbindungen

  • Lokale Scale-up-Verbindungen → N GPUs platzieren und Pfad bestimmen: lokale Pfadkapazität
  • Scale-out-Netzwerkpfad → N GPUs platzieren und Pfad bestimmen: Netzwerkschnitt und Teilung
  • N GPUs platzieren und Pfad bestimmen → Reduce-Scatter: Ringaustausch beginnen
  • Reduce-Scatter → All-Gather: reduzierte Teile
  • All-Gather → Bandbreitenterm: 2(N−1)V / (NB): Bytevolumen beider Phasen
  • N GPUs platzieren und Pfad bestimmen → Bandbreitenterm: 2(N−1)V / (NB): N, V und dauerhaftes B
  • Bandbreitenterm: 2(N−1)V / (NB) → Die echte Kollektivoperation prüfen: idealen Term überprüfen
Du bestimmst das Tempo. Pausiere jederzeit oder wähle einen Schritt aus.

Ein GPU-Cluster über mehrere Racks hat meist eine schnelle Scale-up-Verbindung zwischen nahen GPUs und ein Scale-out-Netzwerk zwischen Systemen oder Racks. Für GB200 NVL72 nennt NVIDIA eine NVLink-Domäne mit 72 GPUs, 1,8 TB/s bidirektional je GPU und 130 TB/s aggregiert über das Rack. Dies sind Kapazitäten der Verbindungen, keine Geschwindigkeiten einer bestimmten Kollektivoperation oder Anwendung. NVIDIAs Tuning-Anleitung nennt 900 GB/s theoretisch in einer Richtung je GPU.

Ein 800-Gb/s-XDR-InfiniBand-Port überträgt nominell 100 GB/s in einer Richtung, wenn Bit in Byte umgerechnet werden. Daraus ergibt sich ein Verhältnis von 9:1 zwischen theoretischer NVLink-Kapazität je GPU und einem ideal exklusiven 800-Gb/s-Port. Das bedeutet keinen allgemeinen neunfachen Geschwindigkeitsgewinn für Anwendungen: Eine GPU kann mehrere Netzwerkverbindungen haben, ein Port kann geteilt sein, und Topologie, Software und Nachrichtengröße verändern die tatsächlich erreichte Bandbreite.

Modell für Ring-All-Reduce

Bei Ring-All-Reduce über NN GPUs mit je GPU beigetragenen VV Byte und nachhaltiger Übertragungsbandbreite BB je GPU ergibt sich als reiner Bandbreitenterm:

Tring≈2(N−1)NVB.T_{\mathrm{ring}} \approx \frac{2(N-1)}{N}\frac{V}{B}.

Der Faktor umfasst Reduce-Scatter und All-Gather. Die Dokumentation von NVIDIAs nccl-tests verwendet denselben Faktor 2(N−1)/N2(N-1)/N, um die Algorithmus- mit der Busbandbreite bei All-Reduce zu verknüpfen. Anlauflatenz, Topologiekonflikte und Überlappung mit Berechnungen fehlen in der Formel. Für BB ist die erreichte Bandbreite des tatsächlichen Pfads nötig, nicht automatisch der Nennwert eines Ports.

Als bewusst idealisiertes Beispiel seien N=8N=8 und V=2V=2 dezimale GB je GPU angenommen. Der Ringfaktor ist 1,75. Bei angenommenen 900 GB/s beträgt der Bandbreitenterm 1,75×2/900≈3,91{,}75 \times 2/900 \approx 3{,}9 ms; bei angenommenen 100 GB/s sind es 3535 ms. Das sind theoretische Untergrenzen, keine gemessenen NVLink-gegen-InfiniBand-Benchmarkwerte. In einem realen Cluster kann der Pfad NVLink und Netzwerk enthalten; NCCL kann zudem einen anderen Algorithmus wählen.

Welche Netzwerkgrenze zählt?

Bei Tensor-Parallelismus können häufige Kollektivoperationen über Aktivierungen eine schnelle lokale GPU-Verbindung wertvoll machen. Bei Datenparallelismus werden Gradienten oft seltener ausgetauscht; im großen Cluster kann auch dieser Verkehr dominieren. Pipeline-Parallelismus überträgt Aktivierungen zwischen Stufen. Expert-Parallelismus fügt All-to-All-Verkehr hinzu, dessen Lastverteilung vom Routing abhängt. Für keines dieser Muster gibt es unabhängig von Tensorgrößen, Platzierung und Überlappung mit Berechnungen ein festes „bestes Netzwerk“.

Beim Scale-out zählt die verfügbare Bandbreite über den betreffenden Netzwerkschnitt, nicht nur die Portgeschwindigkeit. Überbuchung, Routing und Staus können den effektiven Durchsatz senken. Die 130 TB/s des NVL72 sind die Summe der GPU-Verbindungsraten (72 × 1,8 TB/s ≈ 129,6 TB/s), nicht die Bandbreite einer GPU oder einer Kollektivoperation. Ein sinnvoller Vergleich hält Einheiten und Bezugsgrößen gleich: eine Richtung gegen bidirektional, je GPU gegen je Rack und Nennwert gegen Messwert.

Für Beschaffung oder Platzierung sollte die Zielaufgabe mit der vorgesehenen Parallelisierung gemessen und ein Kollektivbenchmark wie nccl-tests ausgeführt werden. Systemtopologie, GPU-Anzahl, Nachrichtengrößen und erreichte Bandbreite gehören zum Ergebnis. Ein Datenblattverhältnis zeigt Kapazität, sagt aber die Anwendungsleistung nicht voraus.