Switched Cluster-topologier: Fat-Tree, Leaf-Spine, Dragonfly+, Tesseract

Hvert klyngediagram i et leverandørsæt starter på samme måde: en række af felter mærket "node", en række af felter mærket "switch" og pile mellem dem. Diagrammerne er bevidst simple, fordi det reelle valg nedenunder — som topologi, med hvor meget overtegning, med det hastighed per port — er den største enkeltstående omkostningsbeslutning i en AI-klynge efter selve GPU'erne.

Denne artikel omhandler topologilaget mellem N02 (hvilken protokol — InfiniBand, RoCE, almindeligt Ethernet) og N06-N08 (hvordan ledningen rent faktisk opfører sig, når topologien er forbundet). Den dækker de fire familier, der er vigtige i 2026: fedttræ / Clos / bladryg, guldsmed / guldsmed+, tesseract / hypercube, og torus familie, der overlevede i to specifikke hjørner af HPC. Det ender med den ærlige konklusion: cirka ni ud af ti Kentino-kunder har ikke brug for noget af dette, og artiklen findes for den tiende.

Målgruppe: folk, der vurderer størrelsen på en træningsklynge med 8 til 64 noder og netværket omkring den. Ikke en Cisco/NVIDIA-konfigurationskogebog — den mentale model, der gør kogebogen læsbar.

Tre forskellige ting, folk kalder "båndbredde"

Før vi tegner bokse og pile, ordforrådet. Tre begreber bruges i flæng i klyngesalgslitteratur, og de har ikke det samme nummer:

Semester Hvad den egentlig måler Hvor den bider dig
Samlet båndbredde Summen af ​​alle linkkapaciteter i stoffet. Nummeret på leverandørens datablad. Ubrugelig i sig selv. En aggregatstruktur på 1 TB/s kan stadig være en flaskehals for én strømning.
Tværsnitsbåndbredde Gennemløb på tværs af et vilkårligt snit gennem stoffet. Reel arbejdsbelastningsgennemstrømning, når trafikken er uensartet — det, du måler under allreduce.
Bisektion båndbredde Tværsnitsbåndbredde på tværs af værst snit, der deler knuder i to lige store halvdele. Det tal, der bestemmer, om allreduce rammer linjehastigheden i skala.

En 32-ports 400 GbE-switch har 12.8 Tb/s aggregat båndbredde. Sæt 16 noder på den med 400 GbE hver, og du har 3.2 Tb/s halvering båndbredde (8 noder × 400 Gb/s på hver side af snittet). For et allreduce-trin, hvor hver af 16 GPU'er sender halvdelen af ​​sin gradient på tværs af halveringen, er de 3.2 Tb/s det, som trintiden divideres med – ikke 12.8.

Genvejen: Bisektionsbåndbredden er det eneste af disse tre tal, der forudsiger træningsskridttiden på en allreduce-bundet arbejdsbelastning. Når et tilbud i en leverandørbrochure aggregerer, skal du mentalt tage det værst tænkelige snit og dividere i overensstemmelse hermed for at komme tilbage til halvering.

For en klynge med 16 noder og 8 GPU'er hver (128 GPU'er i alt) på 100 GbE single-NIC-noder:

Topologi Aggregeret BW Tværsnitsvægt (gennemsnit) Halvering BW
Enkelt 32-ports 100 GbE-switch 1.6 Tb/s 800 Gb / s 800 Gb / s
Fedttræ, 1:1 (fuld halvering) 3.2 Tb/s 1.6 Tb/s 1.6 Tb/s
Fat-tree, 2:1 overtegnet 2.4 Tb/s 800 Gb / s 800 Gb / s
Guldsmed+ (4 grupper af 4) 2.0 Tb/s ~1.0 Tb/s ~800 Gb/s (dårligste par)
4D tesseract (uden kontakt) 1.6 Tb/s ~800 Gb/s 800 Gb / s
3D-torus 4×2×2 1.5 Tb/s ~600 Gb/s 600 Gb / s

Samme antal noder, samme ledningshastighed, forskellige tal afhængigt af hvad du mener. Det er den indramning, resten af ​​artiklen bruger.

Fedttræ, Clos, bladryg — det samme i tre accenter

Charles Clos beviste i 1953, at et flertrinnetværk af små crossbar-switche kan være ikke-blokerende – ethvert input kan nå ethvert output uden konflikt – til en brøkdel af prisen for én kæmpe crossbar. Ethvert moderne datacenternetværk er en variant af denne idé. Navngivningen er blevet indviklet:

  • A Luk netværk er den matematiske struktur: indgangs-, mellem- og udgangsfaser af mindre kontakter.
  • A fedttræ (Charles Leiserson, 1985) er en Clos-variant, hvor stammerne tættere på roden bliver gradvist tykkere, så bisektionsbåndbredden skaleres med N.
  • A foldet lukning vikler udgangsfasen tilbage til indgangsfasen. bladryg er en foldet Clos i to lag. En foldet Clos i tre lag med blad, ryg og superryg er, hvad de fleste i praksis kalder et fedtræ.
Rygsøjle 1 Rygsøjle 2 Rygsøjle 3 Rygsøjle 4 Blad 1 Blad 2 Blad 3 Blad 4

To-lags bladryg: hvert blad er forbundet med hver ryg. To knuder kommunikerer i præcis to hop. Fuld bisektion = ingen overabonnement på ryglaget.

Hvert blad forbinder sig til hver rygsøjle. Any-to-any trafik er højst blad → rygsøjle → blad, to hop. Med tilstrækkelig rygsøjlebåndbredde er stoffet ikke-blokerende: hver node kan samtidig kommunikere med alle andre noder med linjehastighed.

overtegningsforhold er den knap, der bestemmer prisen. Hvis hvert blad har 32 downlinks på 100 GbE (3.2 Tb/s ind i racket) og 8 uplinks på 100 GbE (800 Gb/s ud af racket), er overabonnementet 4:1 — fire gange mere båndbredde ind i racket end ud af det. Fuld halvering betyder 1:1: lige så meget uplink som downlink. 2:1 er almindeligt i generelle datacentre. 1:1 (fuld halvering) er AI-klyngens basislinje.

Konfiguration Leaf uplinks Ryggradsantal Omtrentlig pris for switch+optik (2026) Halvering BW
Enkelt 64-ports 400 GbE-switch (et rack) n / a 1 ~50 tusind dollars 12.8 Tb/s (én rack)
2-lags bladryg, 4:1 overtegnet 8× 100 GbE 2× 32-port ~120 tusind dollars 800 Gb / s
2-lags bladryg, 2:1 overtegnet 16× 100 GbE 4× 32-port ~180 tusind dollars 1.6 Tb/s
2-lags bladryg, fuld halvering (1:1) 32× 100 GbE 8× 32-port ~280 tusind dollars 3.2 Tb/s
2-lags, 400 GbE uplinks, fuld bisektion 8× 400 GbE 4× 32-port ~220 tusind dollars 3.2 Tb/s, færre kabler

Prisen fordobles omtrent fra 4:1 til 1:1, fordi du køber dobbelt så mange spine-porte og dobbelt så mange optikker. Grunden til, at alle seriøse AI-klynger betaler denne præmie: overabonnement ødelægger alt reduceret gennemløb. Synkroniseret 8-flow allreduce på et 4:1 overskrevet stof kører ikke med en kvart hastighed — det kollapser under PFC-modtryk (N07) og kan miste 60-80% af den teoretiske kapacitet i praksis. Matematikken siger "divider med 4." Virkeligheden siger "divider med 5-10."

NVIDIAs DGX SuperPOD-referencearkitektur specificerer et trelags fedttræ med fuld bisektion på Quantum-2 NDR InfiniBand ved 400 Gb/s pr. port. Metas publicerede RoCE-træningsklynger og Microsofts Azure ND-serie bygger den samme form på Spectrum-X Ethernet. Branchen er gået over til fuld bisektion af fedttræ til AI-træning, og udviklingen i 2024-2026 gør fat-treet bredere (400 GbE → 800 GbE pr. port) eller skinneoptimeret (næste afsnit), uden at ændre den grundlæggende topologi.

Skinneoptimeret fat-tree — den AI-specifikke dialekt

Standard-fat-tree behandler alle netværkskort ens. AI-træning bekymrer sig om som GPU'ens NIC sender som gradient, fordi alle trafikmønstre ikke er ensartede. skinneoptimeret Varianten tildeler hver GPU i en node til en specifik "skinne" - en dedikeret blad-spine-sti - og sikrer, at den i-te GPU på hver node kun kommunikerer med den i-te GPU på hver anden node gennem den i-te skinne.

Node 1 GPU0 GPU1 GPU2 GPU3 Skinne 0 Skinne 1 Skinne 2 Skinne 3 Rygsøjle 0 Rygsøjle 1 Rygsøjle 2 Rygsøjle 3 8 uafhængige fede træer, en pr. GPU-slot (Rail). Allreduce på GPU N-brug kun jernbane N — nul ECMP kollision mellem skinner.

Rail-optimeret fat-tree: Hvert GPU-slot er knyttet til et dedikeret uafhængigt rygsøjleplan. Allreduce-ringen på GPU 3 bruger kun Rail 3.

Otte uafhængige to-lags fedttræer, et pr. GPU-slot. Allreduce-ringen på GPU 3 på tværs af 16 noder bruger kun Skinne 3 krydser aldrig andre skinner. Fordele: nul ECMP-kollisioner mellem skinner, enklere routing, lavere switch-radix pr. plan. Afvejning: et job, der spænder over GPU-slots (tensorparallelt inde i en node, dataparallelt på tværs af noder), opdeles alligevel på tværs af skinner af NCCL, så topologien hjælper kun, hvis arbejdsbyrden justeres. For dataparallel og skinnebevidst NCCL er det en klar gevinst; for tensorparallelt spændende skinner fordamper besparelsen.

Dragonfly og Dragonfly+ — når du ikke har råd til fat-tree

Omkostningerne ved fedttræet vokser omtrent som N log N — hver fordobling af antallet af noder kræver mere båndbredde i rygraden, og det tredje niveau fordobler antallet af switche pr. endpoint. For 1024 noder kan et ikke-blokerende fedttræ med tre niveauer opbygges. For 10,000 noder bliver antallet af switche og optikomkostningerne hårde. Dragonfly, foreslået af John Kim, William Dally et al. i 2008, blev designet specifikt til at skalere forbi denne mur.

Ideen: klynge noder ind i grupperInden for en gruppe er alle switche tæt forbundet (ofte en mindre Clos). Mellem grupper har hver gruppe én direkte forbindelse til hver anden gruppe. Resultatet er et netværk med diameter 3 (gruppe-lokalt hop, intergruppe-hop, gruppe-lokalt hop), der skalerer til enorme nodeantal med langt færre langdistancekabler end fat-tree.

Gruppe A sss sss inden for koncernen Gruppe B sss sss inden for koncernen Gruppe C sss sss inden for koncernen Gruppe D sss sss inden for koncernen Globale links (hvert par af grupper er direkte forbundet)

Dragonfly: tæt intragruppe Clos, ét globalt link pr. gruppepar. Diameter 3. Skalerer til 1000+ noder med færre langdistancekabler end fat-tree.

Den store besparelse er optisk kablingLangdistanceoptik mellem racks er den dyreste del af et fat-tree. Dragonfly erstatter dem med ét fat link pr. gruppepar, ikke ét pr. blad-ryg-kombination. For en klynge med G grupper af S noder hver, behøver fat-tree omtrent G × S × log(G × S) kabler; Dragonfly behøver G(G − 1)/2 intergruppekabler plus stoffet pr. gruppe. Ved G = 32 grupper af 32 noder (1024 i alt) falder antallet af langdistancekabler med omtrent en størrelsesorden.

Guldsmed+ (Mellanox, 2017) forfiner dette for InfiniBand. Intragruppens struktur bliver et lille todelt Clos, så gruppeudvidelse ikke kræver omledningsføring, og intergruppeforbindelser bruger adaptiv routing til at undgå overbelastede grupper. Dette er topologien i Frontier (ORNL, exascale AMD MI250X) og El Capitan (LLNL, MI300A) — begge forbundet med HPE Slingshot-11-switche i et dragonfly-arrangement, maksimal diameter på tre hop, 12.8 Tb/s pr. switch.

Fangsten er fejltilstand for små job, der spænder over grupperI et "fat-tree" ser to noder i modsatte ender af klyngen den samme bisektionsbåndbredde som to noder med ét rack fra hinanden (modulo hop-antal). I en Dragonfly deler to noder i forskellige grupper deres intergruppe-link med alle andre cross-group flows. Hvis dit 16-GPU træningsjob lander på 8 noder i gruppe A og 8 i gruppe B, deler du ét intergruppe-link med alle andre, der tilfældigvis spænder over det samme par. Adaptiv routing hjælper; det eliminerer ikke konflikten.

Praktisk implikation: Dragonfly fungerer perfekt ved hyperscaler-problemstørrelser (1000+ noder, job dimensioneret til at fylde grupper) og ikke så godt for mellemstore klynger med forskellige små job. Det er den forkerte topologi til en træningsklynge med 16 noder — fat-tree er billigere og hurtigere i den skala. Det er den rigtige topologi til en supercomputer med 1024 noder og blandet arbejdsbelastning.

Tesseract — 4D-hyperkuben

En tesserakt er en 4D hyperkube: 16 hjørner, der hver er forbundet med præcis 4 naboer, diameter 4 (længste korteste vej mellem to vilkårlige noder). Generaliser til k dimensioner, og du får en k-terning: 2k noder, hver med k direkte links, diameter k. Hamming-distance routing — XOR-kilde- og destinationsadresser, vend én bit ad gangen — er trivielt deterministisk og belastningsbalanceret under tilfældig trafik.

1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111

Tesseract (4D hyperkube): 16 noder, hver med 4 naboer. Heltrukne linjer = 3D-kubekanter; stiplede linjer = 4. dimensions links. Diameter 4. Hver node-etiket er en 4-bit adresse; naboer adskiller sig med præcis én bit.

Hyperkube-topologier dominerede massiv parallel databehandling i 1980'erne. Tilslutningsmaskine CM-2 (Thinking Machines, 1987) var 65,536 noder forbundet som en 12-dimensionel hyperkube. Intel iPSC/2 kørte 7D hyperkuber. Den CM-5 (Thinking Machines, 1991) opgav hyperkuber til fordel for fat-tree, fordi hyperkube-tilgangen ikke skalerede yndefuldt forbi omkring 1024 noder - hver ny dimension fordobler antallet af noder og kræver omkabling af hver eksisterende node.

I 2026 dukker udtrykket "tesseract" stadig op tre steder, der er værd at skelne mellem:

  1. Som et forsknings- / DiRAC HPC-systemnavn. DiRAC Tesseract på EPCC (Edinburgh) er en HPE SGI 8600-klynge med 1476 noder på Intel Omni-Path. "Tesseract" er branding; strukturen minder mere om fat-tree.
  2. Som et forskningsterm for "SDN-kontrolplan" (Tesseract: et 4D-kontrolplan, Yan et al.). Ikke relateret til fysisk topologi.
  3. Som den underliggende topologi for kompakte, afbryderløse acceleratorklynger. En klynge med 16 noder, der er forbundet som en bogstavelig 4D-hyperkube, har interessante egenskaber: hver node har præcis 4 NIC'er, ingen central switch, deterministisk routing, diameter 4. Vi dækker dette grundigt i N05 (switchløse topologier).

Hvad en tesseract tilbyder i 2026: ingen switch-skat, deterministisk routing via Hamming-distance XOR og lav diameter (log₂(N)). Hvad gør det svært: fast N (skal være en potens af 2), kabelkompleksiteten vokser med dimensionen, antallet af NIC'er pr. node er lig med k, og moderne AI-kollektiver (NCCL-ring/træ) udnytter ikke hyperkube-strukturen nativt.

Torus — overleveren i to specifikke hjørner

Den k-ære n-kube generaliserer hyperkuben: i stedet for en binær adresse med ét link pr. dimension, brug et k-by-k-by-k gitter med omvikling. En 3D torus har hver node forbundet til 6 naboer (±x, ±y, ±z). En 6D torus har 12 naboer.

IBM Blue Gene/L og /P kørte på en 3D-torus og skalerede til hundredtusindvis af noder, hvor hver node kun havde 6 højhastighedsforbindelser. Fujitsu Tofu (K-computerens sammenkobling, 2011) generaliserede dette til en 6D mesh/torus — 158,976 noder på Fugaku (aktive indtil 2026), arrangeret 24×23×24×2×3×2.

Cerebras wafer-skala motor bruger en 2D torus on-wafer: hvert processeringselement har 4 naboer, wrap-around, ~1 ns pr. hop. Det fungerer, fordi on-wafer-ledninger er næsten frie; off-wafer-kabler ville ikke være det.

Hvorfor torus går tabt alle andre steder: asymmetriske stier og dårlig opførsel for ikke-ensartede AI-arbejdsbelastninger. Moderne AI-arbejdsbelastninger (NCCL-ring/træ, NVIDIAs hierarkiske algoritmer) antager båndbreddeensartet any-to-any. Torus overtræder dette. I 2026 overlever torusen tre stederCerebras' on-wafer-forbindelse, Fujitsu Fugaku og efterfølgere, og inden for SXM-noder via NVSwitch. Uden for disse nicher er alle nye AI-klynger i 2025-2026 Clos.

Sammenligningstabel

Topologi Diameter Bisektion BW (16 noder, 100 GbE) Nødvendige kontakter Kabler (ca.) Omkostningsforhold vs. fedttræ 1:1 Vækstmodel
Enkelt kontakt 1 800 Gb/s (switch-begrænset) 1× 32-port 16 0.3 × Hård hætte ved kontaktradix
Fedttræ 1:1 (fuld halvering) 2 1.6 Tb/s 2 ryg + 2 blade 64 1.0 × Tilføj blade/torne
Fedttræ 2:1 2 800 Gb / s 2 ryg + 2 blade 48 0.7 × Tilføj blade
Guldsmed+ 3 800 Gb/s (begrænset gruppepar) 4 (2 pr. gruppe) 32-40 0.6× ved 16N; vipper over 64N Tilføj grupper
4D tesseract (uden kontakt) 4 ~800 Gb/s (effektiv) 0 32 0.4 × Fordobles ved at tilføje en dim
3D-torus (4×2×2, uden kontakt) 4 ~600 Gb/s 0 48 0.5 × Enhver rektangulær størrelse

Cluster uplink — hvordan topologien møder omverdenen

En switched fabric er en ø. Den skal oprette forbindelse til virksomhedens netværk (modelregistre, datasætlagring, S3, telemetri), til udvikler-arbejdsstationer (SSH, Jupyter, kopiering af checkpoints) og til andre klynger (træning → inferensoverdragelse). Denne forbindelse er klynge-uplink.

To modeller med meget forskellige konsekvenser:

Enkelt uplink-punkt. Et par spine-switche (eller en dedikeret uplink-router) afslutter al ekstern forbindelse. Nem at firewalle, nem at hastighedsbegrænse, nem at overvåge. Fejltilstand: Det link er et enkelt fejlpunkt; mætning af det (en stor checkpoint-kopi ud, en 10 GB dataset shard pull) påvirker alle noder samtidigt.

Distribueret uplink. Hvert blad har en separat uplink til campusnetværket, ofte langsommere 25 GbE oven på 100 GbE-strukturen. Datasæthentninger og ekstern trafik forbliver lokale på bladet — ingen overbelastning på den interne struktur. Fejltilstand: hvert blad er en sikkerhedsgrænse, firewalling er N gange mere arbejde, overvågning er sværere.

For Kentino-basisscenariet (træningsklynge med 4-16 noder) er det enkelte uplink-punkt det rigtige svar. Den interne struktur er kun RDMA (RoCE eller InfiniBand), tunet til lav latenstid og tabsfri adfærd. Uplinket er almindeligt Ethernet, TCP, normal QoS. Må ikke Placer datasættets objektlager på den samme tabsfrie struktur som GPU'en allreduce — en S3-klient med dårlig opførsel bør ikke kunne udløse PFC-modtryk på træningstrafik. To strukturer: dataplan (tabsfri RDMA) og administrations-/uplink-plan (tabsfri TCP). N08 dækker den praktiske opsætning.

Kentino's ærlige holdning

De fleste Kentino-kunder køber 1 til 4 noder. I den skala:

  • 1 knude. Intet spørgsmål om topologi. PCIe inde i kassen (K07), ét 25 GbE administrations-NIC ude, færdig.
  • 2 noder. Et direkte kabel mellem to RDMA-netværkskort. Ingen switch. Ingen topologi at vælge imellem.
  • 3-4 knuder. En enkelt 32-ports 100 GbE-switch håndterer alt fra data til data med fuld bisektion til en samlet pris på 30-50 dollars. Stadig ingen topologi at vælge.

Topologisamtalen starter kl. 8 knuder, når en switchs portantal bliver stramt og bliver obligatorisk kl. 16 knuder. Nedenfor er det rigtige svar "én god switch, fuld bisektion på hver port, kom videre med dit liv." Over det er det rigtige svar "to-lags leaf-spine, 100 eller 200 GbE pr. node, fuld bisektion (1:1), og rør aldrig ved overabonnementsknappen, medmindre nogen tvinger dig."

Dragonfly+ er det rigtige svar på hyperscaler-problemer i størrelse. Tesseract/hypercube er interessant som en switchless-mulighed for kompakte klynger (N05Torus er et leverandørlåst valg for HPC-operatører med topologibevidste arbejdsbelastninger. For alle andre i Kentino-prisintervallet er fat-tree standarden. Fuld bisektion, hvis du har råd til det; 2:1, hvis du ikke har råd; aldrig 4:1 for AI-træning.

Hvad skal jeg gøre næste

Hvis du skalerer et ombyttet stof til en rigtig klynge:

  1. Skriv antallet af noder, GPU'er pr. node og linjehastighed pr. NIC ned. Multiplicer. Divider med 2. Det er dit mål for halveringstal.
  2. Beslut, om dine job dækker hele klyngen eller skal placeres i ét rack. Rack-lokale job tolererer overabonnement. Klyngeomspændende job gør ikke.
  3. Kør nccl-tests/all_reduce_perf på en midlertidig fat-tree-konfiguration, før man forpligter sig til kabeltrækningen. Hvis 8-node allreduce allerede mister 20% af den teoretiske busbw, har du et andet problem end topologi.
  4. Optimer ikke de næste 5 år. Køb til den klynge, du har brug for i år, med en klar ekspansionssti. Fedttræsbladryg er den billigste topologi at vokse trinvis.
  5. Match uplinket med din datasæts indtagelseshastighed, ikke til den interne strukturhastighed. De fleste klynger har brug for 25-100 GbE udgående, ikke 400.
  6. To stoffer, altid. Dataplan og administrationsplan er adskilte, selv ved 4 noder.

Opfølgningerne i dette nummer går dybere: N05 dækker topologier uden kontakter (tesseract- og torus-mulighederne, når du virkelig ikke ønsker nogen kontakt); N06 dissekerer, hvor hvert mikrosekund af latenstid kommer fra, når stoffet er oppe; N07 dækker routing- og overbelastningskontrolarbejdet, der afgør, om din smukke topologi rent faktisk fungerer; N08 er den praktiske RDMA-opsætning og cluster-uplink-designet.


Dette er en del af Kentino Wiki, en referenceserie om AI-beregning, robotteknologi og de systemer, der forbinder dem. Kommentarer og rettelser er velkomne på info@kentino.com.