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.
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
x16
x16
x16
x16
x16
x16
x16
x16
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
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.currentje 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:
- 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.
- 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.
- 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.
- 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.
- 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.