Prípadová štúdia: 4x pracovná stanica s umelou inteligenciou RTX 4090

Tento článok dokumentuje kompletnú zostavu zadanú pre výskumného zákazníka, ktorý potreboval inferenčnú pracovnú stanicu LLM s možnosťou montáže do racku, nepretržitej prevádzky a dostatočnou pamäťou VRAM na hosťovanie modelov triedy 70B bez závislosti od cloudu. Všetko tu je merané na skutočnom hardvéri. Žiadne syntetické odhady, žiadne marketingové čísla.

Stavba bola uvedená do prevádzky a odovzdaná v apríli 2026. Porovnávacie testy uvedenia do prevádzky boli vykonané 10. apríla 2026.

Prečo 4× RTX 4090

Požiadavka na pracovnú záťaž bola od začiatku jasná: spustiť kvantizovaný 70B LLM s použiteľnou latenciou jednej požiadavky, obslúžiť súbežné požiadavky v prostredí malého výskumného tímu a všetko udržiavať lokálne z dôvodov kontroly údajov. Otázkou bolo, koľko GPU akého typu.

Model so 70B procesorom na INT4 (AWQ alebo GGUF Q4_K_M) v praxi zaberá približne 38 – 40 GB VRAM. To úplne eliminuje riešenia s jedným GPU – ani RTX 4090 s 24 GB nedokáže tento model hostiť samostatne. Potrebujete aspoň dva, a najlepšie štyri, aby tenzorovo paralelné spracovanie pod vLLM malo priestor pre vyrovnávaciu pamäť KV.

Štyri karty RTX 4090 poskytujú celkovo 96 GB VRAM. To stačí na nabitie modelu Llama 3.3 70B AWQ INT4... gpu_memory_utilization=0.80 a stále majú zmysluplný priestor vyrovnávacej pamäte KV pre dávkové požiadavky. Poskytuje tiež výpočtovú kapacitu – 4× 128 čipov SM bežiacich súčasne – čo je dôležité pre rýchlu rýchlosť spracovania.

Zvažovanou alternatívou bola 4× RTX Pro 6000 Blackwell, ktorá by poskytla 4× 96 GB = 384 GB VRAM. To je úplne iná úroveň: viac VRAM, ako potrebuje ktorýkoľvek jeden 70B model, vhodné na súbežné spúšťanie viacerých veľkých modelov alebo hosťovanie modelov triedy 200B+ s rozumnou kvantizáciou. Pre túto pracovnú záťaž – jeden primárny model, malá súbežná dávka, na rozpočte pre jednu pracovnú stanicu – by táto dodatočná kapacita zostala nevyužitá a rozdiel v nákladoch je značný. 4× RTX 4090 bola správnou odpoveďou na uvedený prípad použitia.

V ponuke existuje aj alternatíva 8× L40. L40 ponúka 48 GB VRAM na kartu, podporu ECC a je navrhnutá pre trvalé zaťaženie dátového centra. Pre tohto zákazníka si pracovné zaťaženie nevyžadovalo zmluvy o spoľahlivosti na úrovni dátového centra, absencia zvláštností ovládačov spotrebiteľskej triedy u L40 bola malou výhodou a rozpočet tam nepresahoval. Stojí za to vedieť ako možnosť upgradu.

Hneď na úvod treba spomenúť jeden architektonický strop: karty RTX 4090 nemajú NVLink. Všetka komunikácia medzi GPU prebieha cez PCIe peer-to-peer. To je dôležité pre tenzorovo-paralelnú inferenciu (diskutovanú v časti o benchmarkoch) a stojí za to to pochopiť pred objednaním. Pozrite si... N03 pre úplné vysvetlenie, kedy je NVLink dôležitý a kedy nie.

Hardvérové ​​špecifikácie

Zložka detail
CPU AMD EPYC 7542 — 32 jadier / 64 vlákien, základná frekvencia 2.9 GHz
Základná doska ASRockRack ROMED8-2T/BCM, rev 3.01
RAM 512 GB DDR4 ECC LRDIMM — 8× 64 GB SK Hynix @ 2666 MT/s
GPU 4× NVIDIA GeForce RTX 4090 — 24 GB VRAM každá, spolu 96 GB
NVMe (modelové úložisko) 2 TB PCIe 4.0 NVMe, namontované na /mnt/nvme/models/
Disk s operačným systémom 512 GB SATA SSD — 100 GB LVM oddiel alokovaný, zvyšok rezervovaný
OS Ubuntu 24.04.4 LTS, jadro 6.8.0-107-generic
Vodič NVIDIA 590.48.01 (otvorený modul jadra)
CUDA 13.1 (súprava nástrojov 13.2), cuDNN 9.20.0
Tvarový faktor Montáž do racku 4U, smerované prúdenie vzduchu spredu dozadu
PSU Duálny ATX – rozdelené napájanie (nie redundantné N+1)

Niekoľko poznámok k možnostiam výberu:

CPU. EPYC 7542 je 32-jadrový čip generácie Rome so 128 MB vyrovnávacej pamäte L3 na 8 CCD čipoch. Pre inferenčnú pracovnú stanicu je to nadrozmerné z hľadiska počtu jadier – pri čistej inferencii nenasýtite 64 vlákien. Svoje miesto si zaslúži v rozpočte na linky PCIe: Rome EPYC poskytuje z CPU 128 liniek PCIe 4.0, a preto môžete na túto platformu umiestniť štyri plnohodnotné grafické karty x16 bez zdieľania alebo rozdvojenia liniek. RTX 4090 je zariadenie PCIe 4.0 x16; chcete štyri plné sloty x16 a EPYC ich poskytuje. Pozrite si... W02 pre detaily topológie jazdných pruhov.

FRAME. Systém sa dodával s 512 GB pamäte DDR4 ECC LRDIMM, ktorá presiahla pôvodne špecifikovaných 256 GB. Dodatočná systémová RAM je tu skutočne užitočná: načítavanie modelov z NVMe sa pred prenosom do VRAM prechádza cez systémovú RAM a pri väčších modeloch alebo pri prepínaní medzi modelmi znamená 512 GB, že v RAM môžete súčasne uchovávať viacero váh modelov a vyhnúť sa opakovanému čítaniu z NVMe.

NVMe. Úložisko modelu (2 TB) je na vysokorýchlostnom disku PCIe 4.0 NVMe. Rýchlosť sekvenčného čítania je pri načítavaní dôležitá: 38 GB súbor modelu s rýchlosťou sekvenčného čítania 4 589 MB/s sa načíta približne za 8 – 10 sekúnd. Namerané časy načítania to potvrdzujú: súbor llama.cpp načítal 70B Q4_K_M GGUF za 10.8 sekundy; vLLM (ktorý tiež vytvára grafy CUDA pri načítavaní) trval 95 sekúnd.

Duálny zdroj. Šasi používa dva napájacie zdroje ATX. Ide o rozdelené napájanie: každý zdroj napája časť systému – zvyčajne dve grafické karty a súvisiace komponenty dosky. Ak jeden zdroj zlyhá, stratíte všetky grafické karty na jeho lište. Nejde o redundanciu N+1; ide o usporiadanie kapacity napájania, nie o riešenie prepínania medzi záložnými systémami. Pre produkčné systémy, kde je prevádzkyschopnosť zmluvne podmienená, je toto rozlíšenie dôležité. Pozri W04 pre kompletnú diskusiu o veľkosti zdroja.

Prúdenie vzduchu v podvozku. Šasi je montované do racku s priemyselným smerovaným prúdením vzduchu spredu dozadu. Grafické procesory nie sú umiestnené pod holým nebom; sú umiestnené v kanáli so smerovaným prúdením vzduchu s ventilátormi skrinky, ktoré nasávajú vzduch cez chladiče a odsávajú ho v zadnej časti. Vďaka tomu je systém vhodný na nepretržitú prevádzku v rackovom prostredí. Pozri W05 pre detaily tepelného návrhu.

Zásobník softvéru

Balíček verzia
PyTorch 2.10.0+cu128
vLLM 0.19.0
llama-cpp-python 0.3.20 (CUDA/cuBLAS)
transformátory 4.57.6
HuggingFace Hub, bitsandbytes, zrýchliť aktuálne k dátumu zostavenia

Prostredie Pythonu sa nachádza na adrese /home/logic/llm-env/, modely na NVMe na /mnt/nvme/models/.

Výsledky uvedenia do prevádzky

Základná línia výpočtov GPU

Prvým testom sú vždy hrubé výpočty: násobenie matíc na úrovni FP16 (cesta Tensor Core) a FP32. Toto potvrdzuje, že karty fungujú správne a poskytuje základnú výpočtovú základňu na porovnanie s nominálnymi špecifikáciami.

GPU FP16 (8192×8192) FP32 (4096×4096) Výpočtový limit
GPU 0 XNUMX 171.7 TFLOPS 59.5 TFLOPS 8.9
GPU 1 XNUMX 162.1 TFLOPS 54.9 TFLOPS 8.9
GPU 2 XNUMX 171.0 TFLOPS 58.5 TFLOPS 8.9
GPU 3 XNUMX 171.2 TFLOPS 60.1 TFLOPS 8.9

Pre porovnanie: Teoretický vrchol FP16 Tensor Core pre RTX 4090 je ~330 TFLOPS, FP32 ~82.6 TFLOPS. Očakávané sú benchmarkové čísla na ~52 % vrcholu FP16 – meranie je matmul s trvalou priepustnosťou, ktorý nedosahuje teoretický vrchol ručne ladeného jadra GEMM. Potvrdzujú, že všetky štyri polia Tensor Core fungujú a sú konzistentné.

GPU 1 je na FP16 o ~6 % slabší ako ostatné. Ide o bežnú variáciu kremíkových čipov v rámci toho istého bináru. Žiadna hardvérová chyba.

Šírka pásma pamäte GPU

Cesta Na GPU
Interná VRAM (kópia zariadenia) ~ 920 GB / s
Hostiteľ → Zariadenie (PCIe) 26.2–26.3 GB/s
Zariadenie → Hostiteľ (PCIe) 1.4 GB / s
Grafický procesor ↔ Grafický procesor (PCIe peer-to-peer) 19–22 GB/s

Šírka pásma VRAM 920 GB/s je v súlade so špecifikáciou RTX 4090 (špička 1 008 GB/s; rozdiel je réžia benchmarku). Táto hodnota šírky pásma je dôležitá pre priepustnosť dekódovania: každý vygenerovaný token vyžaduje načítanie celej sady vyrovnávacej pamäte KV a váhových tenzorov z VRAM, takže šírka pásma priamo určuje strop rýchlosti generovania.

Údaj o prenosovej rýchlosti GPU-GPU (19 – 22 GB/s cez PCIe peer-to-peer) je architektonickým obmedzením relevantným pre tenzorovo paralelné poskytovanie. S NVLink dosahuje táto cesta rýchlosť 900 GB/s. Iba s PCIe dosiahnete zhruba 2 % z tejto rýchlosti. Pre inferenciu to nie je katastrofálne – väčšina tenzorovo paralelnej komunikácie na modeli 70B AWQ INT4 naprieč 4 GPU sa zmestila do rozsahu, ktorý dokáže PCIe zvládnuť – ale v porovnaní so systémom pripojeným cez NVLink to potláča rýchlosť dekódovania jednej požiadavky. Pozrite si časť s porovnávacími údajmi nižšie a N03 pre širšiu diskusiu.

Jedna anomália: Šírka pásma medzi zariadením a hostiteľom bola nameraná na úrovni 1.4 GB/s, čo je výrazne menej ako očakávaných ~26 GB/s pre PCIe Gen4 x16. Ide o známe správanie CUDA s nepripnutou pamäťou. Ak vaša aplikácia často presúva dáta z GPU na hostiteľa (napr. vzorkovanie z výstupných logitov vo vlastnom kanáli), použite torch.pin_memory() alebo predalokovať pripnuté vyrovnávacie pamäte. Štandardné obslužné kanály vLLM a llama.cpp túto cestu v horúcej slučke nespúšťajú.

Všetky PCIe linky potvrdili Gen4 x16 (16 GT/s) pri zaťažení. V stave nečinnosti ovládač používa režim ASPM na úsporu energie a linky klesnú na Gen1 (2.5 GT/s) – ide o normálny jav a nejde o chybu kabeláže alebo rozširujúcej šasi.

Úložisko NVMe

test priepustnosť IOPS
Sekvenčné čítanie (1 MB bloky) 4,589 MB / s 4,376
Sekvenčný zápis (bloky 1 MB) 4,213 MB / s 4,017
Náhodné čítanie 4K (QD32) 2,325 MB / s 568,000
Náhodný zápis 4K (QD32) 2,273 MB / s 555,000

Toto sú silné čísla NVMe pre spotrebiteľský/prosumer disk PCIe 4.0. Pre obsluhu modelov je relevantným číslom sekvenčné čítanie: 4 589 MB/s znamená, že 38 GB model sa načíta do RAM približne za 8 – 9 sekúnd pred akýmkoľvek prenosom VRAM. Hodnota 568 000 náhodných IOPS je relevantnejšia, ak používate kanál načítania (RAG, vektorové úložisko), kde je pracovná záťaž veľa malých náhodných čítaní – tento disk to zvládne bez toho, aby sa stal úzkym hrdlom.

vLLM záver — Llama 3.3 70B AWQ INT4

Toto je základný benchmark. Model: casperhansen/llama-3.3-70b-instruct-awqPodávanie: vLLM 0.19.0 s tensor_parallel_size=4, max_model_len=2048, gpu_memory_utilization=0.80.

test Výsledok
Čas načítania modelu 95.0 s
Jedna požiadavka, maximálne 512 tokenov – priepustnosť 8.0 tok/s
Jedna požiadavka, maximálne 512 tokenov – čas na stene 64.3 s
Dávka (32 súbežných požiadaviek, max. 256 tokenov) – agregácia 179.3 tok/s
Dávka – priemerná latencia na požiadavku 1,428 ms
Krátka výzva, maximálne 16 tokenov – priemerná latencia 2,043 ms

Rýchlosť dekódovania jednej požiadavky 8.0 tok/s vyžaduje kontext. vLLM 0.19.0 spustil model AWQ s awq jadro, nie awq_marlin, awq_marlin jadro je rýchlejšia cesta pre AWQ na grafických procesoroch Ada Lovelace (RTX 4090) a Blackwell – poznámky k benchmarkom naznačujú, že nebolo vybrané počas tohto uvedenia do prevádzky a očakáva sa 2–3-násobné zlepšenie rýchlosti dekódovania jednej požiadavky. S awq_marlin, rovnaký model na rovnakom hardvéri by mal dosiahnuť približne 16 – 24 tok/s v jednom streame.

Z hľadiska produkcie je relevantnejšie číslo 179.3 tok/s na základe 32 súbežných požiadaviek. Toto číslo uvidí malý tím, ktorý súčasne dosiahne koncový bod, ako kombinovaný systémový výstup. Nepretržité dávkovanie vo vLLM znamená, že súbežné požiadavky amortizujú vyrovnávaciu pamäť KV a výpočet pozornosti v rámci dávky, a preto 32-násobok počtu používateľov neprodukuje 32-násobok latencie.

Latencia 2 043 ms pri požiadavke so 16 tokenmi predstavuje spodnú hranicu TTFT (čas do prvého tokenu) pod vLLM v tejto konfigurácii. Pre interaktívne prípady použitia (chat, asistencia s kódom) je to pomalšia strana. Hlavným faktorom je tenzorovo-paralelná réžia rozptylu/zhromažďovania naprieč štyrmi GPU cez PCIe – každý krok predbežného naplnenia vyžaduje AllReduce naprieč všetkými štyrmi kartami cez PCIe fabric. S NVLink by to bolo zhruba 50 – 100 ms TTFT; s PCIe P2P pri 20 GB/s sa to rozširuje ďalej. Toto sú priame náklady architektúry bez NVLink na jednotlivé požiadavky citlivé na latenciu (pozri N03).

lama.cpp — Lama 3.3 70B Q4_K_M GGUF

Modelka: Llama-3.3-70B-Instruct-Q4_K_M.ggufBackend: llama-cpp-python 0.3.20 s CUDA/cuBLAS, všetky vrstvy prenesené na GPU.

test Výsledok
Čas načítania modelu 10.8 s
Jedna požiadavka, maximálne 256 tokenov – priepustnosť 19.9 tok/s
Rýchle spracovanie (1 302 tokenov) 1,568 tok/s
Generovanie, maximálny počet tokenov 512 (vygenerovaných 110) 20.3 tok/s

Súbor llama.cpp dosahuje približne 20 tak/s pri dekódovaní jedného streamu – lepšie ako súčasné číslo vLLM AWQ a možno ho pripísať ceste jadra založenej na cuBLAS v súbore llama.cpp, ktorá dobre spolupracuje s kvantizáciou Q4_K_M. Súbor llama.cpp nepodporuje súbežné dávkovanie viacerých simultánnych požiadaviek tak, ako to robí vLLM, takže 20 tak/s je strop na reláciu, nie agregovaná kapacita. Pre interaktívne pracovné postupy s jedným používateľom je rýchlosť 20 tak/s v súbore llama.cpp pohodlná pre čítanie anglického výstupu.

Rýchlosť spracovania výzvy 1 568 token/s je vysoká. To meria, ako rýchlo dokáže model spracovať výzvu (fáza predbežného dopĺňania). Rýchle predbežné dopĺňanie je dôležité, keď spúšťate model na dlhých systémových výzvach alebo v kontexte dokumentu. Pri rýchlosti 1 568 token/s sa kontext dokumentu so 4 000 tokenmi spracuje za menej ako 3 sekundy pred začiatkom generovania.

Ekonomické aspekty a porovnanie s cloudovými alternatívami nájdete T01 (tok/s za euro) a T02 (cena za milión tokenov v on-premise vs. cloud).

Na čo slúžia tieto dva motory

Situácia Správna voľba
Viacerí používatelia súčasne pristupujú k koncovému bodu API vLLM (kontinuálne dávkovacie váhy)
Jeden interaktívny používateľ, citlivý na latenciu llama.cpp (nižšia TTFT, porovnateľné dekódovanie pri 20 tok/s)
Spracovanie dlhých dokumentov, dávková úloha vLLM (lepšie využitie GPU prostredníctvom dávkového spracovania)
Jednoduché lokálne skriptovanie alebo vývojové testovanie llama.cpp (čas načítania 10 s oproti 95 s, jednoduchšie nastavenie)

Záťažový test – trvalé zaťaženie

Na overenie tepelnej a elektrickej stability pri maximálnom zaťažení boli vykonané tri 60-sekundové záťažové testy: testovanie iba GPU, testovanie iba CPU a kombinované testovanie GPU a CPU.

Vypálenie GPU (násobenie matice FP16 pri 100 %, 60 s)

GPU Trvalý výkon TFLOPS Maximálna teplota Maximálny výkon
GPU 0 XNUMX 165.8 67 ° C 482 W
GPU 1 XNUMX 153.2 64 ° C 450 W
GPU 2 XNUMX 166.4 72 ° C 501 W
GPU 3 XNUMX 166.2 62 ° C 481 W
Spolu 651.6 ~1 929 W kombinovane

Nulové chyby vo výpočtoch na všetkých štyroch grafických procesoroch. Teploty stúpli z východiskovej hodnoty ~28 °C na stabilnú úroveň do 40. sekundy. Grafický procesor č. 2 sa zahrial najviac pri 72 °C – v tejto polohe je to najteplejšia karta v dráhe prúdenia vzduchu v šasi. Prahová hodnota tepelného škrtenia na RTX 4090 je 83 °C; najvyššia nameraná teplota (72 °C) ponecháva 11 °C rezervu. Systém v žiadnom bode neškrtil.

Horné limity výkonu boli pre všetky štyri karty nastavené na rôzne hodnoty (480 W, 450 W, 500 W, 480 W). Ide o menšiu nezrovnalosť, ktorá by sa mala normalizovať: nvidia-smi -pl 480 -i 0,1,2,3 (alebo akýkoľvek vhodný limit) stanoviť konzistentné stropy pred použitím v produkčnej fáze.

Kombinované vypaľovanie GPU + CPU (všetky 4 GPU + 64 vlákien CPU súčasne, 60 s)

GPU Trvalý výkon TFLOPS Maximálna teplota Maximálny výkon
GPU 0 XNUMX 164.9 69 ° C 480 W
GPU 1 XNUMX 152.5 67 ° C 450 W
GPU 2 XNUMX 165.2 73 ° C 519 W
GPU 3 XNUMX 165.1 66 ° C 480 W
Spolu 647.7 ~1 929 W kombinovane

Pridanie 64 vlákien CPU pri 100 % zaťažení znížilo celkový počet TFLOPS GPU iba o 0.6 %. EPYC 7542 spotrebuje pri plnom zaťažení približne 200 W TDP; kombinovaný systém bežal na celkovej spotrebe približne 2.1 – 2.2 kW. Všetky teploty zostali v rámci tolerancie: GPU 2 dosiahla vrchol 73 °C pri kombinovanom zaťažení, stále 10 °C pod prahom škrtiacej klapky.

Priemerné zaťaženie dosiahlo počas fázy vyťaženia CPU viac ako 55 (očakávané pre 64 vlákien). Systém bol počas celého obdobia plne stabilný; žiadne tepelné udalosti, žiadne výpočtové chyby, žiadne panické problémy s jadrom.

Toto potvrdzuje, že systém je vhodný pre nepretržité inferenčné pracovné zaťaženie 24 hodín denne, 7 dní v týždni, kde je CPU tiež vyťažený (predspracovanie, tokenizácia, réžia obsluhujúcej infraštruktúry).

Čo fungovalo dobre

Platforma EPYC. Rozpočet na linku PCIe je skutočne vyriešený. Všetky štyri karty RTX 4090 fungujú na plný Gen4 x16 pri záťaži (potvrdené v 04d Kontrola stavu PCIe). Žiadne rozdvojenie, žiadne degradované sloty. Niektoré zostavy AMD Ryzen so štyrmi GPU používajú dva alebo viac slotov v režime x8; na EPYC Rome to tak nie je.

FRAME. 512 GB je pohodlných. Počas načítavania modelu llama.cpp sa 38 GB súbor GGUF mapuje do pamäte; mať k dispozícii 512 GB znamená, že môžete spúšťať viacero procesov popri serveri LLM bez toho, aby ste súperili o pamäť.

Sekvenčná rýchlosť NVMe. Sekvenčné čítanie rýchlosťou 4 589 MB/s skracuje časy načítania. V rámci pracovného postupu iterácie modelu – načítanie, testovanie, prepínanie modelov – sa to nasčíta za viac ako jeden deň.

Termoprádlo. Najhorší prípad trvalej teploty 73 °C (GPU 2, kombinované napaľovanie) s 10 °C rezervy. Pri typickom inferenčnom zaťažení nebudú GPU bežať nepretržite so 100 % využitím – dekódovanie je viazané na šírku pásma VRAM, nie na výpočtový výkon – takže skutočné prevádzkové teploty budú nižšie ako vrchol záťažového testu.

llama.cpp 1 568 tok/s výzva na vyhodnotenie. Toto číslo nás pozitívne prekvapilo. Predfillovací proces cuBLAS na štyroch snímačoch 4090 je rýchly. Z toho profitujú aplikácie s dlhým kontextom.

Čo nás prekvapilo

Jadro vLLM AWQ zlyhalo. Benchmark bežal s awq jadro namiesto awq_marlinSada pre uvedenie do prevádzky to spustila automaticky na základe aktuálnej konfigurácie modelu. S awq_marlin, očakáva sa, že priepustnosť jednej požiadavky vzrastie z 8 tok/s na 16 – 24 tok/s. Ide o opravu konfigurácie softvéru, nie o hardvérové ​​obmedzenie – pri nastavovaní produkčného poskytovania si overte reťazec metódy kvantizácie vLLM.

Šírka pásma D2H. Rýchlosť prenosu medzi zariadením a hostiteľom pri 1.4 GB/s nás počas úvodnej analýzy zaskočila. Ide o správanie CUDA bez pripnutia pamäte, nie o chybu PCIe. Pre štandardné obslužné zásobníky (vLLM, llama.cpp) to nevadí. Pre vlastný inferenčný kód, ktorý presúva tenzory do CPU na následné spracovanie, použite pripnuté alokácie pamäte.

Opravené chyby GPU 3 PCIe AER. Počas benchmarku vLLM zaznamenala grafická karta GPU 3 (zbernica c1:00.0) opravené chyby PCIe (RxErr + BadTLP). Tieto chyby boli hardvérovo automaticky opravené a neovplyvnili výpočet. Pravdepodobná príčina: Zaseknutie rozširujúceho kábla PCIe alebo opätovné vyjednávanie linky pri rýchlosti Gen4. Odporúča sa monitorovať pri trvalom produkčnom zaťažení; ak sa počet chýb zvýši, znova pripojte kábel rozširujúceho kábla GPU 3. Počas samotných záťažových testov sa nevyskytli žiadne chyby.

Krátka klapka prepojenia sieťovej karty. Sieťové rozhranie krátko prestalo fungovať a opäť sa aktivovalo počas zaťaženia GPU benchmarkom (13:38 UTC). Pravdepodobne išlo o prechodový výpadok napájania zo súčasného zapnutia GPU. V produkcii s nvidia-persistenced spustený (čo udržiava kontexty GPU inicializované), prechodové javy napájania pri spustení načítania sú menšie. Povoliť nvidia-persistenced ako služba systemd pred produkciou.

Čo by sme urobili inak pre v2

Umožniť awq_marlin od začiatku. Overte cestu kvantizačného jadra vLLM počas uvádzania do prevádzky, nie po ňom. Pridajte kontrolu identity jadra do skriptu uvádzania do prevádzky.

Pred benchmarkingom normalizujte limity výkonu GPU. Štyri karty sa dodávali s rôznymi nakonfigurovanými limitmi (480 W, 450 W, 500 W, 480 W). Nastavenie konzistentného limitu (nvidia-smi -pl) pred prvým benchmarkovým testom poskytuje čistejšie a porovnateľnejšie čísla a zabraňuje nekonzistentnému odberu energie počas kombinovaného spaľovania.

Pridajte monitorovací zásobník pri doručení. Nastavenie Prometheusa s exportérom DCGM a Grafanou trvá niekoľko hodín a v reálnom čase zobrazuje teplotu GPU, využitie VRAM a mieru chybovosti PCIe. Toto odošlite ako súčasť štandardného uvedenia do prevádzky, a nie ako úlohu po dodaní. Pozri L05 pre sprievodcu nastavením zásobníka.

Pin nvidia-persistenced do súboru systemd jednotky počas inštalácie operačného systému. Je to jednoriadková veta, ale neustále sa vynecháva. Bez nej prvé zaťaženie grafickej karty po období nečinnosti trvá o niekoľko sekúnd dlhšie a spôsobuje prechod napájania, ktorý spôsobuje výpadok sieťovej karty.

Rozšírenie LVM. Disk s operačným systémom (512 GB SATA) má pre LVM oddiel pridelených iba 100 GB. Zvyšných 374 GB je nepridelených. Nie je dôvod ich ponechať: lvextend a resize2fs venujte 30 sekúnd a tento priestor vám vrátime na réžiu operačného systému, protokoly a vrstvy Dockeru.

Zvážte druhé NVMe na ukladanie modelov. Jeden 2 TB NVMe disk momentálne obsahuje všetky modely a bude sa dopĺňať s rastúcou knižnicou modelov. Druhý 4 TB NVMe disk v poli RAID 0 alebo jednoducho ako samostatný disk. /mnt/nvme2 Príkaz mount by zvýšil flexibilitu a udržal vysoký výkon sekvenčného čítania v rámci väčšej celkovej knižnice.

Porovnanie: Alternatívy k tejto zostave

Zákazníkovu pracovnú záťaž bolo možné zvládnuť s iným hardvérom. Tu je úprimné porovnanie:

konfigurácia Celkový počet VRAM Prepojenie GPU↔GPU Poznámky
4× RTX 4090 (táto zostava) 96 GB PCIe P2P, 19–22 GB/s Vhodné pre triedu 70B. Žiadny NVLink = penalizácia PCIe P2P na TP.
4× RTX Pro 6000 Blackwell 384 GB PCIe P2P (bez NVLink na Pro 6000) Rovnaká topológia PCIe, 4× viac VRAM – prehnané pre jednu 70B pamäť, správne pre viacero modelov alebo 200B+
8× L40 384 GB PCIe P2P ECC triedy dátového centra, rovnaká topológia bez NVLink, vyššie náklady
8× RTX 4090 192 GB PCIe P2P Dvojnásobná priepustnosť; šasi s 8 GPU využíva AMD EPYC Genoa/Turín (podľa zostavy K-AI)

4× RTX 4090 s 96 GB je minimálna uskutočniteľná konfigurácia na spustenie Llama 3.3 70B AWQ INT4 pod vLLM s významnou dávkovou priepustnosťou. Nie je to strop; zostava s 8 GPU úmerne zvyšuje kapacitu. Pre výskumného zákazníka, ktorý chce jednu vyhradenú pracovnú stanicu – nie obslužný klaster – je 4× často tým správnym miestom, kde začať.

Ani konfigurácia 4×, ani konfigurácia 8× nemá NVLink medzi GPU, čo znamená, že tenzorovo-paralelná inferencia funguje cez PCIe. Praktickým dôsledkom je latencia TTFT pre jednotlivé požiadavky, nie agregovaná dávková priepustnosť. Pre pracovnú záťaž veľkosti tímu (desiatky požiadaviek za hodinu, nie tisíce) to nie je limitujúcim faktorom. Požiadavky na TTFT pod 100 ms nájdete v časti N03 a dôvody, prečo sa zostava zameriava na viacero grafických procesorov pripojených cez PCIe, a nie na systémy NVSwitch Fabric.

Celkové plánovanie napájania a elektrických zariadení

Pri trvalom zaťažení grafickej karty (GPU) bol celkový výkon systému približne 1 900 – 2 200 W merané na koľajniciach GPU (1 914 W spotreba iba GPU; odhadom ~2 100 W kombinovane s CPU, jednotkami a doskou). Zohľadnite straty účinnosti zdroja (predpokladajte 90 %) a naplánujte minimálny obvod 16 A/230 V, s preferovaným 20 A pre rezervu.

Dvojité rozloženie zdroja rozdeľuje toto napätie medzi dva výstupy. Oba výstupy musia byť na obvodoch, ktoré dokážu nezávisle zvládnuť záťaž: ak zdroj A napája dve grafické karty s výkonom 500 W každá plus 200 W dosky/procesora, to predstavuje 1 200 W na obvode. Zvoľte zodpovedajúcu veľkosť.

Rozpočet na chladenie miestnosti: tento systém považujte za trvalo udržateľný výkon 2.5 kW (konzervatívne, zahŕňa straty účinnosti a rezervu). V prípade serverovne alebo rackového priestoru s viacerými systémami sa súhrnný počet rýchlo zvyšuje.

Vidieť P01 pre jednofázové verzus trojfázové úvahy a P04 pre dimenzovanie ističov.

Cenové pásmo

Zostava s touto špecifikáciou – platforma EPYC 7542, 512 GB ECC RAM, 4× RTX 4090, 2 TB NVMe, rackové šasi s duálnym zdrojom – spadá do 18 000 – 24 000 € bez DPH rozsah za aktuálne ceny komponentov, v závislosti od výberu šasi, načasovania získavania pamäte RAM a dostupnosti grafického procesora. Dodacia lehota je 10 – 28 dní v závislosti od dostupnosti komponentov, potvrdenej pri objednávke.

Tento rozsah nezahŕňa inštaláciu, rackové PDU, sieťové pripojenie (10 GbE prepínač, kabeláž) ani žiadne softvérové ​​licencie. Systém sa dodáva s predinštalovaným Ubuntu 24.04 LTS a predkonfigurovaným Python venv; prineste si vlastné váhy modelu.

Na čo je táto zostava vhodná

  • Výskum a inferencia LLM v malom tíme. Spustenie modelu 70B pre tím 5–15 používateľov. Agregát 179 tok/s pod vLLM pohodlne zvláda súbežné relácie.
  • Vyhodnotenie a iterácia modelu. Rýchle načítanie NVMe znamená rýchle prepínanie medzi kandidátskymi modelmi. Rozpočet PCIe platformy EPYC znamená, že všetky štyri GPU sú vždy na plnej šírke pásma.
  • Nasadenia suverénne k dátam. Všetka inferencia je lokálna. Žiadne tokeny neopúšťajú budovu. Toto je primárny neekonomický dôvod na spustenie lokálneho riešenia pre výskumné kontexty.
  • Vstupný bod 70B s nízkym rozpočtom. RTX 4090 je GPU s najvyššou dostupnou kapacitou VRAM pre spotrebiteľov. S 24 GB na kartu a štyrmi kartami vás celkovo 96 GB zavedie do triedy 70B bez toho, aby ste museli prekročiť cenu profesionálnych GPU.

Na čo táto zostava nie je vhodná

  • TTFT s jednou požiadavkou pod 100 ms. Tenzorovo-paralelná topológia PCIe P2P kladie pre veľké modely minimálnu hodnotu TTFT. Ak potrebujete rýchlu interaktívnu latenciu na modeloch s kapacitou 70B+, táto architektúra je nesprávnou voľbou. Chcete grafické procesory pripojené cez NVLink, čo znamená úplne inú triedu hardvéru (pozri N03).
  • Súčasné spúšťanie viacerých veľkých modelov. S celkovou pamäťou VRAM 96 GB gpu_memory_utilization=0.80, máte k dispozícii približne 77 GB. Druhý model s 70B INT4 by sa nezmestil. Ak potrebujete hostiť dva modely súčasne, prejdite na platformu s väčším množstvom VRAM na GPU alebo s viacerými GPU.
  • Obsluha veľkovýroby. Pre stovky súbežných používateľov alebo dostupnosť zálohovanú SLA nie je táto architektúra (žiadne doplnky sieťovej karty na šasi so 4 GPU, s jedným uzlom, spotrebiteľské GPU s vypnutým ECC) správnym základom. 8-GPU server K-AI s L40 alebo RTX Pro 6000 Blackwell, správnym monitorovaním a dvoma sieťovými kartami je.
  • Trénovanie veľkých modelov. Pri celkovej kapacite 96 GB VRAM môžete jemne doladiť (LoRA, QLoRA) modely s procesorom 70B, ale nie je možné ich trénovať s plnými parametrami. Pre trénovanie je rozpočet VRAM obmedzenejší ako pre inferenciu. Ak je trénovanie súčasťou plánu pracovnej záťaže, zohľadnite to.

Získané ponaučenia a čo robiť ďalej

Štyri kroky, ktoré je potrebné vykonať pred uvedením tohto systému do výroby:

  1. Overte cestu k jadru vLLM. beh vllm serve --help a potvrďte awq_marlin je vybraný pre modely AWQ na grafických procesoroch Ada Lovelace. Očakávaný výsledok: dekódovanie jednej požiadavky sa zvýši z 8 tak/s na 16–24 tak/s.
  2. Normalizujte limity výkonu. beh nvidia-smi -pl 480 -i 0,1,2,3 (upravte podľa zvoleného limitu) a pred akýmkoľvek porovnávacím testovaním v produkcii alebo spustením pracovnej záťaže sa uistite, že všetky štyri karty hlásia rovnaký limit.
  3. Umožniť nvidia-persistenced ako služba Systemd. Zabraňuje prechodovému prerušeniu napájania pri prvom zaťažení, ktoré spôsobilo prerušenie sieťovej karty. Jednoducho povedané, urobte to počas nastavovania operačného systému.
  4. Nasaďte monitorovací zásobník. Prometheus + exportér DCGM + Grafana. Teplota GPU, využitie VRAM, počítadlá chýb PCIe, hĺbka frontu. Bez neho bude prvým príznakom problému skôr sťažnosť používateľa než upozornenie. Pozri L05.

Súvisiace čítanie: N03 (NVLink vs. PCIe P2P – keď je rozdiel dôležitý), W02 (Topológia PCIe liniek na EPYC), W04 (Veľkosť zdroja a duálny zdroj vs. N+1), W05 (tepelný návrh pre rackové systémy GPU), T01 (porovnanie tok/s na euro), T02 (cena na milión tokenov v on-premise vs. cloude).


Tilbage na blog