PCIe linky a topologie v multi-GPU AI serveru

V konzumní AI komunitě koluje vytrvalý mýtus, že „PCIe x8 versus x16 u inference nehraje roli“. Z větší části je to pravda a lidé, kteří to opakují, skoro nikdy nevědí proč. Také obvykle narazí ve chvíli, kdy se jich zeptáte, proč desktopová deska neuživí čtvrtou GPU v plné šířce pásma nebo proč se EPYC server s 8 GPU nechová jako dva slepené čtyřkartové desktopy.

Tento článek je ta delší verze. Vysvětluje, co jsou PCIe linky, jak se přidělují na procesorech, se kterými Kentino staví, co dělá bifurkace a switche, kde se hodí NVLink (a kde ne) a kdy na topologii skutečně záleží. Na závěr přináší konkrétní schémata pro 4 a 8 GPU na EPYC platformách, které dodáváme.

Co je PCIe linka, ve zkratce

PCIe linka je dvojice diferenciálních sériových spojů — pro každý směr jeden — mezi root complexem procesoru (nebo navazujícím switchem) a zařízením. Více linek se sdružuje do širšího spoje: x1, x4, x8, x16. Šířka pásma roste lineárně s počtem linek a s každou generací se zhruba zdvojnásobuje.

Generace Hrubě na linku x16 hrubě x16 využitelně (~)
Gen3 8 GT/s 16 GB/s ~15.75 GB/s
Gen4 16 GT/s 32 GB/s ~31.5 GB/s
Gen5 32 GT/s 64 GB/s ~63 GB/s
Gen6 64 GT/s 128 GB/s ~121 GB/s

Dvě výhrady. Šířka pásma platí pro každý směr zvlášť — spoj Gen5 x16 zvládne 64 GB/s v každém směru současně, a proto marketingové slidy uvádějí buď „64 GB/s“, nebo „128 GB/s“. A Gen6 se dnes nedodává v žádné GPU, kterou si můžete koupit. Specifikace je hotová, ale k květnu 2026 není křemík ve workstationových kartách; první Gen6 koncová zařízení jsou výhradně datacentrové díly, se kterými Kentino nestaví. Pro naši reálnou nabídku — RTX 5090, RTX 4090, RTX Pro 6000 Blackwell (obě varianty), L40, L4 — je stropem Gen5 x16.

Rozpočet linek na jeden socket

Právě tady je vidět hranice mezi desktopem, workstationem a serverem. Počty linek na procesorech v aktuálních sestavách Kentino, po odečtení toho, co je vyhrazeno pro čipset / DMI:

Třída CPU Generace PCIe linek celkem Využitelné pro GPU / síťovky / NVMe
Intel Core (LGA1700/1851) mix Gen5/4 20 ~20 (velmi těsné)
Intel Xeon W7 / W9 (Sapphire R.) Gen5 112 ~112
AMD Ryzen 9000 (AM5) Gen5 28 ~24
AMD Threadripper 7000 Gen5 92 ~88
AMD Threadripper Pro 7000 WX Gen5 128 ~128
AMD EPYC Genoa (9004) Gen5 128 ~128 (jeden socket)
AMD EPYC Turin (9005) Gen5 128 ~128 (jeden socket)
AMD EPYC se dvěma sockety Gen5 160 sdíleno přes xGMI

Okamžitě z toho plynou tři důsledky.

Spotřebitelský desktopový procesor neuživí čtyři GPU v plné šířce pásma. S 20–28 linkami celkem přidělíte jednu x16 hlavnímu slotu, jednu x4 NVMe disku a jste na konci. Sestavy „desktop se 4 GPU“, které dělí x16 na 4×x4, pro inferenci fungují, protože většina inference x4 Gen5 (~16 GB/s) nevytíží. Pro trénink napříč kartami nefungují, a to kvůli provozu při synchronizaci gradientů.

Workstationový Xeon W nebo Threadripper Pro pohodlně uživí čtyři GPU na x16 — 64 linek pro GPU a spousta zbývá na NVMe a síťovku 25/100 GbE.

Jednosocketový EPYC Genoa nebo Turin dá 128 linek, což je jediný rozumný způsob, jak postavit server s 8 GPU a všemi osmi kartami na x16. Dvousocketový EPYC nominálně linky přidá, ale zisk je menší, než vypadá, protože provoz mezi sockety teče přes xGMI, které je konečné a sdílené.

Bifurkace: jak rozdělit x16 na menší kusy

PCIe slot je fyzicky x16, ale hostiteli lze říct, aby jej elektricky prezentoval jako menší spoje. Standardní dělení jsou:

  • x16 → 2 × x8
  • x16 → 4 × x4
  • x8 → 2 × x4

Bifurkace sídlí v procesoru a zpřístupňuje ji BIOS základní desky. Jestli ji opravdu využijete, závisí na tom, aby platily tři věci najednou: procesor ji podporuje, BIOS nabízí příslušnou volbu a riser/backplane je zapojený tak, aby linky dělil správně. První dvě bývají na deskách serverové třídy (Supermicro, ASRock Rack, Gigabyte) v pořádku. Na té třetí se lidé spálí — každý výrobce mapuje linky jinak.

Bifurkace je trik, díky kterému dostanete do šasi víc GPU, než na kolik má procesor slotů x16. Server EPYC s 8 GPU málokdy znamená 8 nativních root portů x16; je to kombinace nativních a bifurkovaných slotů vedených přes risery, kde každá GPU dostane x16 nebo x8 podle uspořádání.

Co tím ztratíte: šířku pásma na kartu. Bifurkovaný spoj x8 Gen5 má 32 GB/s — polovinu oproti x16. U inference je to neviditelné. U tréninku na více GPU se to projeví při synchronizaci gradientů a předávání aktivací.

PCIe switche a retimery

Pokud bifurkace nestačí — řekněme, že chcete osm GPU a všechny na x16 — řešením je PCIe switch. Učebnicovým příkladem je řada Broadcom PEX. Switch třídy PEX 89000 vezme jeden x16 upstream od procesoru a rozvětví jej do více downstream portů x16. Downstream porty upstream spoj přeprodávají; pokud všech osm GPU zatíží hostitele současně, sdílejí jeden upstream x16.

Tohle je architektura uvnitř HGX baseboardů od NVIDIA (a SXM systémů, které Kentino nestaví). Funguje proto, že u slušně napsaných multi-GPU workloadů jde většina provozu mezi GPU navzájem (NVLink nebo PCIe peer-to-peer), nikoli mezi GPU a hostitelem. Upstream spoj nese jen váhy při načítání, občasné checkpointy a I/O úložiště. Inference jej nevytíží; trénink většinou také ne, pokud kolektivní operace zůstanou mezi GPU.

Retimery jsou něco jiného: jde o opakovače signálu, které umožní vést spoj Gen5 po kabelu delším, než dovoluje specifikace. Topologii nemění — jen dělají zvolenou topologii fyzicky realizovatelnou. Každé šasi EPYC s 8 GPU, které Kentino dodává, retimery používá, protože kabelové trasy ze základní desky do pozic pro GPU překračují nativní dosah Gen5.

NVLink — co to je a kde chybí

NVLink je proprietární propojení NVIDIA mezi GPU, oddělené od PCIe. Využívá vyhrazenou sadu vysokorychlostních linek na hraně GPU (nebo přes konektor SXM či NVLink Bridge) a zajišťuje přímý přístup do paměti mezi GPU s mnohem vyšší šířkou pásma než PCIe.

Propojení Souhrnná šířka pásma Karty, které jej podporují (v roce 2026)
PCIe Gen5 x16 64 GB/s Všechny současné PCIe GPU
NVLink 4 bridge 600 GB/s A100, PCIe varianty H100 (většinou již vyřazené)
NVLink 5 (SXM) 1800 GB/s H100 SXM, H200, GB200, B200 — vše pouze SXM
NVLink (Pro 6000 SXM) N/A RTX Pro 6000 Blackwell je PCIe, bez NVLink

Klíčový fakt pro každou sestavu, kterou Kentino dodává: žádná z našich karet nemá NVLink. RTX 4090 konektor, který měla 3090, vypustila. 5090 jej nemá. RTX Pro 6000 Blackwell (Workstation i Max-Q) je pouze PCIe. Stejně tak L40 a L4.

Není to opomenutí. NVIDIA si NVLink vyhrazuje pro datacentrové GPU v provedení SXM a pro několik málo PCIe karet s NVLink bridge — a i ty se postupně vyřazují, jak se vyšší třída plně přesouvá na SXM. Pokud chcete NVLink, kupujete HGX s moduly H100/H200/B200 za desetinásobnou cenu, a to Kentino nestaví.

Bez NVLink jdou kolektivní operace mezi GPU (all-reduce, all-gather, reduce-scatter) přes PCIe peer-to-peer. Efektivní šířku pásma mezi libovolnými dvěma kartami omezuje pomalejší z obou PCIe spojů a to, jaký switch nebo root port leží mezi nimi. V systému EPYC s 8 GPU je P2P mezi GPU na stejném switchi rychlé; P2P přes různé root complexy jde skrz procesor a je pomalejší.

U inference to skoro nikdy nevadí — inference je limitovaná pamětí lokální GPU a dávkované aktivace přecházejí mezi GPU jen občas. U tréninku s tenzorovým paralelismem je to jediný největší důvod, proč sestava 8×5090 na EPYC není ekvivalentem uzlu 8×H100 HGX, i když hrubé FLOPS vypadají srovnatelně.

Kdy se šířka pásma PCIe skutečně vyčerpá

Workload Vytíží PCIe? Poznámky
Inference na jedné GPU (LLM, dávka 1) Ne Model sedí ve VRAM; PCIe jen pro tokeny
Inference na jedné GPU (LLM, velká dávka) Ne Průchodnost roste s dávkou; PCIe stále nevytížené
Inference v počítačovém vidění na jedné GPU Někdy Při plnění z paměti CPU je x8 znát
Inference na více GPU (tenzorový paralelismus) Někdy Aktivace přecházejí mezi GPU v každé vrstvě
Inference na více GPU (pipeline paralelismus) Zřídka Jen aktivace na hranicích jednotlivých fází
Načítání modelu z NVMe / sítě Ano Llama-405B Q8 o 140 GB spotřebuje každé GB/s, které máte
Trénink, jedna GPU Ne Stejné jako u inference
Trénink, více GPU, ZeRO-1/2 Ano All-reduce gradientů spoj pořádně zatíží
Trénink, více GPU, ZeRO-3 / FSDP Ano, silně All-gather parametrů v každém dopředném kroku
Trénink, více GPU, tenzorový paralelismus Ano, silně Bez NVLink jde o nejhorší případ

Vzorec je konzistentní: inference PCIe nevytíží, trénink ano. Pokud má sestava celý život obsluhovat inferenci — což platí pro většinu kupujících — x8 Gen5 na kartu stačí a do stejného rozpočtu linek se vejde víc GPU. Pokud trénujete, chcete každou kartu na x16 a GPU seskupené tak, aby kolektivní operace nešly nejpomalejší cestou.

Topologie sestavy se 4 GPU (EPYC Genoa, jeden socket)

Tohle je standardní konfigurace Kentino se 4 GPU na AMD EPYC. Funguje i na Threadripper Pro 7000 WX se stejným rozdělením linek.

AMD EPYC Genoa / Turin — 128 linek PCIe Gen5
GPU 0
x16
GPU 1
x16
GPU 2
x16
GPU 3
x16
Zbylých ~32 linek: NVMe x4, síťovka x8, BMC, management

4 GPU na EPYC: každá GPU má vyhrazený spoj x16 Gen5 přímo do root complexu procesoru. Žádný switch, žádné přeprodání kapacity.

Každá GPU dostane plný spoj x16 Gen5 rovnou do root complexu procesoru. Žádná bifurkace, žádný switch, pro samotné GPU žádný retimer (risery jej podle uspořádání šasi mít mohou). P2P mezi libovolnými dvěma GPU jde přes interní fabric EPYCu a je symetrické — všechny čtyři karty jsou z hlediska topologie stejně daleko.

Je to nejčistší dostupná multi-GPU sestava. Přesně tu dodáváme pro 4× RTX 5090, 4× RTX 4090, 4× RTX Pro 6000 Blackwell a 4× L40.

Topologie sestavy s 8 GPU (EPYC Genoa / Turin, jeden socket)

128 linek nestačí na to, aby osm GPU dostalo plných x16 — spotřebovalo by to celý rozpočet a na NVMe ani na síť by nezbylo nic. Standardní uspořádání jsou:

Varianta A: všech 8 GPU na x16 se switch fabricem

AMD EPYC Genoa / Turin — 128 linek Gen5
PEX switch A (x16 upstream)
G0
x16
G1
x16
G2
x16
G3
x16
PEX switch B (x16 upstream)
G4
x16
G5
x16
G6
x16
G7
x16
Zbylých ~96 linek CPU: pole NVMe, síťovky, BMC, správa

Varianta A: dva PCIe switche, každý s jedním x16 upstream do procesoru a čtyřmi downstream GPU na x16. P2P uvnitř switche je rychlé; P2P mezi switchi jde přes procesor.

Každý switch se připojuje k procesoru upstream spojem x16 Gen5 a rozvětvuje jej do čtyř downstream portů x16. GPU 0–3 sdílejí upstream spoj 64 GB/s k procesoru, GPU 4–7 sdílejí další. P2P mezi GPU 0 a 1 je rychlé (stejný switch); P2P mezi GPU 0 a GPU 4 prochází root complexem procesoru a je pomalejší. Osmikartové sestavy Kentino na šasi Supermicro a Bone64c jdou podle tohoto modelu.

Varianta B: všech 8 GPU na x8, přímo k procesoru

AMD EPYC Genoa / Turin — 128 linek Gen5, bifurkovaně
G0
x8
G1
x8
G2
x8
G3
x8
G4
x8
G5
x8
G6
x8
G7
x8
8 × x8 = 64 linek pro GPU. ~64 linek volných pro NVMe / síťovky / BMC

Varianta B: 8 GPU na x8 přímo k procesoru přes bifurkaci. Žádný switch, žádné přeprodání kapacity, 32 GB/s na kartu. Pouze pro sestavy určené čistě k inferenci.

Žádný switch, žádné přeprodání kapacity, nižší latence mezi CPU a GPU. Každá karta dostane 32 GB/s místo 64. U inference je to neviditelné. U tréninku s intenzivní kolektivní komunikací je to citelně horší než varianta A — spoj na kartu je užší a chybí rychlé P2P uvnitř switche.

Výchozí osmikartová sestava Kentino je varianta A (switch fabric) u systémů schopných tréninku a varianta B (bifurkace napřímo) u sestav určených čistě k inferenci, kde se rozpočet linek lépe využije na NVMe a dvě síťovky 100 GbE.

Integrita signálu na Gen5

Gen5 je natolik rychlé, že na fyzické vrstvě záleží způsobem, jakým u Gen3 nebo Gen4 nezáleželo. Spoj Gen5 na standardním FR4 plošném spoji uběhne ~7 palců, než se zavře oko signálu. Kabel Gen5 uběhne bez retimeru ~20 cm. To stačí na slot vedle procesoru; nestačí to na riser kabel ve 4U šasi vzdálený 40 cm.

Co to znamená:

  • Na riserech záleží. Risery pro Gen4 signál Gen5 nepropustí. Potřebujete risery certifikované pro Gen5, obvykle s retimerem v cestě. Cenový rozdíl je reálný — €80–€150 na riser.
  • Délka kabelu má tvrdý strop. Nad 30 cm je potřeba retimer, nad 70 cm dva. Proto na Gen5 prakticky neexistují produkty typu „externí GPU box“.
  • Nespolehlivý spoj potichu sjede na Gen4 nebo Gen3. Systém naběhne, GPU se objeví v nvidia-smi, inference běží. A šířka pásma je čtvrtinová oproti tomu, co jste zaplatili. nvidia-smi --query-gpu=pcie.link.gen.current,pcie.link.width.current je první věc, kterou je u nové sestavy třeba zkontrolovat.
  • Na BIOSu záleží. Některé desky Supermicro a ASRock Rack mají ve výchozím stavu rychlost spoje na „Auto“ a volí konzervativně. Vynuťte Gen5 výslovně a po startu si to ověřte.

Viděli jsme sestavy, kde jedna z osmi GPU trénovala týdny na Gen3 x8, protože se nikdo nepodíval. Úloha běžela. Byla 4× pomalejší, než měla být.

Kdy na topologii záleží a kdy ne

Většinou nezáleží, pokud: provozujete inferenci na jedné GPU při jakékoli velikosti modelu; inferenci na více GPU s replikovaným paralelismem (každá GPU má vlastní kopii); dávkovou inferenci limitovanou šířkou pásma VRAM; nebo model načtete jednou a pak ho hodiny obsluhujete.

Hodně záleží, pokud: trénujete na více GPU s modelem rozděleným mezi karty (tenzorový nebo pipeline paralelismus); používáte FSDP nebo ZeRO-3, kde se parametry shardují a v každém kroku znovu shromažďují; provozujete RLHF nebo jiné workloady s častou synchronizací gradientů; vyměňujete modely za provozu; nebo plníte GPU ze vzdáleného úložiště, kde je PCIe hrdlem láhve.

Pro většinu kupujících — inferenční servery pro provoz LLM/VLM, backendy pro robotiku, hosting AI serverů — je topologie otázkou kontroly spoje, ne architektury. Pro těch pár, kdo dělají trénink na více GPU doopravdy, je topologie (switch versus bifurkace, NVLink versus nic) tím architektonickým rozhodnutím — a proto je sestava 8×5090 na EPYC pro některé tréninkové úlohy správný nástroj a pro jiné špatný.

Co dělat dál

Pokud specifikujete multi-GPU sestavu, tohle jsou otázky, které si zodpovězte dřív, než se rozhodnete pro procesor:

  1. Kolik GPU a v jaké šířce linek? 4 × x16 se vejde na workstation; 8 × x16 vyžaduje EPYC a switche; 8 × x8 vyžaduje EPYC a bifurkaci.
  2. Inference, nebo trénink? Jen inference: x8 na GPU stačí, ušetříte za switch. Trénink s tenzorovým paralelismem: x16 a switch, tečka.
  3. Co dalšího potřebuje linky? Síťovka 100 GbE si vezme x16. Čtyři disky U.2 NVMe si vezmou x16. Naplánujte to dřív, než se zavážete.
  4. Jak jste na tom s risery pro Gen5? Počítejte s €100 na riser a ověřte si certifikaci pro Gen5 i retimery tam, kde jsou potřeba. Podrobnosti k riserům viz W03.
  5. Jste si jistí, že NVLink nepotřebujete? Pokud je Váš tréninkový workload limitovaný propojením, žádná topologie PCIe Vás nezachrání. V tu chvíli se bavíme o hardwaru třídy HGX — který Kentino nestaví. Lepší to vědět předem než až po zaracknutí.

Jakmile je systém postavený a jednou proměřený, na PCIe topologii tři roky nemyslíte. Momenty, kdy dávat pozor: první den (ověřit rychlost spoje u každé GPU), po každé aktualizaci BIOSu (nastavení link trainingu se resetuje), po každém fyzickém přesazení karty (kabely se pohnou, spoje sjedou níž) a před každým tréninkovým během, který stojí skutečné peníze.


Tento článek je součástí Kentino Wiki, referenční série o AI výpočtech, robotice a systémech, které je propojují. Komentáře a opravy uvítáme na info@kentino.com.