Vai al contenuto
LF Lomazzi Federico

Home/Appunti/Intelligenza artificiale

Intelligenza artificiale

Vi spiego come costruirsi con 600~700 euro un mostro da 512 GB per far girare AI di frontiera in locale..

Lomazzi Federico 8 min di lettura

Sfruttando il surplus enterprise si può assemblare attorno ad un Dell PowerEdge R930 un sistema con quattro Xeon E7-8890 v3, 72 core, 144 thread e 512 GB di DDR4 ECC su 16 canali, abbastanza da ospitare enormi modelli GGUF e MoE senza GPU. Il target di 4/5 token al secondo è quanto testo sulla MIA configurazione, che è perfino carente di banda RAM, e realisticamente su modelli MoE ben quantizzati ed ottimizzati dovreste arrivare a sfiorare i 7 token/secondo, sebbene non su qualunque modello dense da 200 GB. Ma già permette perfettamente di lavorare.

Esempio di sistema surplus con 512 GB di RAM costruito per eseguire grandi modelli AI in locale

Se avete mai provato a costruirvi una macchina per far girare in locale un LLM davvero grande saprete certamente dove si finisce quasi subito, ovvero sulle GPU, sulla VRAM che non basta mai e su cifre che cominciano ad assomigliare al prezzo di un'automobile. Facile a dirsi riversare su di un Mac Apple Studio (M3M Ultra) da 256 GB, ma c'è da sborsare intorno alle 6K. C'è un'altra strada, molto meno elegante e decisamente più rumorosa ma molto funzionale, che parte da una cosa che oggi il mercato del surplus praticamente regala: i vecchi server enterprise quad-socket costruiti quando 512 GB o 1 TB di RAM erano configurazioni da grandi aziende. Il Dell PowerEdge R930 è uno di quei mostri, un 4U nato per database, virtualizzazione ed elaborazioni pesanti che oggi può essere trasformato in una macchina CPU-only per grandi modelli open-weight spendendo una frazione ridicola di quello che costava da nuovo. Non stiamo parlando di addestrare da zero un modello di frontiera, cosa completamente diversa, ma di CARICARLO ED ESEGUIRLO in locale, che è esattamente il tipo di lavoro nel quale una montagna di RAM ed una banda memoria molto alta possono ancora fare cose sorprendenti.

La base è il R930 e qui conviene chiarire subito anche il discorso dei 600 o 700 euro, perché se comprate ogni singolo pezzo separatamente prendendo sempre il prezzo più alto finirete inevitabilmente oltre. Una motherboard completa R930 con le parti proprietarie può stare attorno ai 200 euro, quattro Xeon E7-8890 v3 possono costare complessivamente meno di 200 euro, 512 GB di DDR4 ECC Registered surplus circa altri 200 euro, poi controller, SSD ed alimentatori fanno salire il conto. Il trucco, quindi, NON è comprare un R930 come se fosse un normale PC assemblato, anche perché non lo è affatto, ma cercare liquidazioni e barebone il più possibile completi con chassis, motherboard, memory riser, backplane, ventole, CPU, controller e possibilmente alimentatori già dentro, aggiungendo dopo soltanto ciò che manca. Sul mercato del ricondizionato compaiono ancora R930 con quattro E7-8890 v3 ed H730P attorno ai 500 euro prima della spedizione ed è proprio sfruttando questi lotti, oppure aste e smontaggi da datacenter (Troostwijk Auctions, Surplex ma con un occhio più attento che su Alibaba o Ebay..), che il bersaglio dei 600/700 euro diventa possibile; acquistando tutto a pezzi ai prezzi pieni indicati sopra, invece, considerate più realisticamente una cifra vicina ai 900/1000 euro.

Il cuore della macchina sono quattro Intel Xeon E7-8890 v3, processori Haswell del 2015 che oggi sembrano reperti archeologici ma che messi insieme significano 72 core, 144 thread, frequenza base di 2,50 GHz con Turbo fino a 3,30 GHz e soprattutto 45 MB di cache L3 per processore, quindi 180 MB complessivi. Ma il dato interessante per un LLM non è soltanto il numero dei core, è la memoria: ogni E7-8890 v3 dispone di quattro canali ed Intel dichiara fino ad 85 GB/s di banda massima per CPU, quindi sulla carta quattro socket significano 16 canali ed un massimo aggregato teorico di 340 GB/s. Teorico, naturalmente, perché NUMA, QPI, disposizione dei DIMM, firmware e software si prenderanno la loro parte, ma è esattamente qui che nasce l'idea. Con 16 moduli da 32 GB DDR4 ECC Registered abbiamo 512 GB e possiamo distribuirli in modo perfettamente simmetrico, quattro DIMM per processore ovvero uno per ciascun canale, che è anche la disposizione raccomandata da Dell quando si vuole privilegiare la banda. Il R930 ha poi 96 slot DIMM, quindi se un domani 512 GB dovessero sembrarvi pochi potete salire nell'ordine dei terabyte usando memoria server che sul surplus viene ormai venduta, per così dire, AL PREZZO DELLE PATATE.

Ed è proprio sulla memoria che bisogna ragionare molto bene, perché quattro socket non formano una gigantesca CPU uniforme se non si fà attenzione, perchè ogni processore ha la propria memoria locale ed i quattro Xeon comunicano attraverso QPI, quindi un processo che continua a pescare i dati dalla RAM collegata ad un altro socket paga una penalità, ed un R930 configurato male può andare molto più piano di quanto facciano immaginare 72 core e 340 GB/s scritti sulla carta, tirandosi dietro gli altri gemelli. Per questo la macchina va pensata con Linux bare metal, profilazione del BIOS orientato alle prestazioni, firmware aggiornato ed una popolazione dei DIMM assolutamente simmetrica, poi llama.cpp vi verrà incontro perchè permette di provare strategie NUMA come distribute oppure l'affinità gestita con numactl, mentre ik_llama.cpp nasce con un'attenzione particolare alle quantizzazioni ed alle prestazioni CPU dei grandi modelli, in particolare MoE. Qui purtroppo non esiste il parametro magico da copiare una volta per tutte, dovete provare thread, NUMA, dimensione del contesto, mmap o mlock e misurare, perché su una macchina quad-socket, a seconda dei pezzi effettivi che trovate, la differenza fra una disposizione giusta ed una un po' meno può essere enorme se non si ottimizza.

Per lo storage il R930 offre fino a 24 bay hot-swap da 2,5 pollici SAS/SATA ed una configurazione sensata può usare due SSD Dell Mixed Use SAS da 960 GB, ormai reperibili surplus anche attorno ai 50 euro l'uno, montati in RAID 1; il controller che prenderei è il PERC H730P con 2 GB di cache NV, facendo particolare attenzione alla variante 0X4TTX ed alla disposizione dei connettori perché su questi server le differenze meccaniche fra varianti apparentemente simili possono diventare una bellissima maniera di comprare una scheda che poi non si monta come avevate previsto. Due buoni SAS 12 Gb/s in mirror possono arrivare, nelle condizioni favorevoli e con letture distribuite dal controller, nell'ordine di 1,8/2,0 GB/s sequenziali, ma questo non va confuso con la velocità di generazione dell'LLM: il disco serve soprattutto a caricare il modello, una volta che centinaia di gigabyte di pesi sono residenti nei 512 GB di RAM sono memoria, CPU e topologia NUMA a decidere quanti token vedrete uscire. E già che ci siete prendete qualche slitta 0KG7NR o equivalente, perché lasciare ventiquattro bay davanti al server e poi accorgersi di non avere il caddy per montare un disco è il genere di dettaglio che fa perdere più tempo di quello che costa.

A questo punto arriviamo alla domanda vera, ovvero COME PUÒ UNA MACCHINA SENZA GPU ARRIVARE A 4 O 5 TOKEN AL SECONDO CON UN MODELLO ENORME. La risposta è che bisogna distinguere un modello dense da un MoE, cioè Mixture of Experts. Se avete un dense quantizzato che occupa davvero 200 GB ed ogni token richiede di attraversare praticamente tutti quei pesi, 340 GB/s teorici non possono fare miracoli ed il limite fisico, nel frangente di token complessi, vi porta già sulla carta sotto i due token al secondo, prima ancora di considerare l'efficienza reale. Un MoE può invece pesare complessivamente centinaia di gigabyte ma attivare soltanto una parte degli esperti per ciascun token, quindi la quantità effettiva di dati letti ad ogni passo è molto più bassa ed il discorso cambia completamente; non è una promessa che QUALUNQUE GGUF DA 200 GB farà 5 token al secondo, ma con un MoE ben quantizzato, un runtime ottimizzato ed una disposizione NUMA corretta il bersaglio dei 4/5 token al secondo è assolutamente alla portata, anzi esistono già benchmark pubblici CPU-only di DeepSeek R1 671B che si muovono attorno ai 3,5/4 token al secondo su sistemi DDR4 più moderni ed altri test con quantizzazioni molto spinte che sfiorano i 5 token al secondo, quindi non stiamo parlando di una fantasie anche se la configurazione esatta del R930 va misurata e non semplicemente moltiplicata sulla base della banda teorica.

Poi c'è l'altra faccia del mostro. Quattro E7-8890 v3 hanno da soli 660 watt di TDP e quindi il raffreddamento NON è un dettaglio, il R930 nasce con una gabbia di ventole server capace di gestire proprio carichi di questo genere ed è una delle ragioni per cui ha senso comprare il telaio completo invece di tentare trapianti improbabili. Può montare fino a quattro alimentatori hot-swap da 1100 W, ma quattro alimentatori da 1100 W non significano naturalmente che la macchina assorbirà 4,4 kW: servono anche per ridondanza e disponibilità, mentre il consumo reale dipenderà dalla configurazione e dal carico. Resta comunque un server che sotto inferenza CPU può chiedere parecchie centinaia di watt, scaldare molto e soprattutto FARSI SENTIRE, quindi il vero costo da considerare dopo quello ridicolo dell'hardware surplus è l'energia elettrica ed il fatto che probabilmente non vorrete tenerlo a mezzo metro dalla scrivania. Per fortuna iDRAC8 Enterprise consente di amministrarlo completamente da remoto, controllare temperature, ventole, alimentazione e console senza dovergli lasciare monitor e tastiera attaccati.

In compenso la piattaforma lascia uno spazio di crescita quasi comico, con fino a 10 slot PCIe 3.0, un'enorme capacità di memoria, storage frontale hot-swap ed una scheda di rete che può cambiare a seconda dell'allestimento, nel nostro caso quattro porte Gigabit Ethernet RJ45, quindi domani potrete aggiungere rete più veloce, NVMe o perfino qualche GPU usata e trasformare il progetto CPU-only in una macchina ibrida. Ma il bello dell'esperimento resta proprio evitare di partire dalla solita domanda su quanta VRAM possiamo comprare, prendendo invece hardware enterprise che dieci anni fa costava una fortuna e che oggi nessuno vuole più perché consuma, pesa e fa rumore, distribuendo 512 GB di memoria sui 16 canali, sistemando NUMA e software e USANDOLO PER FAR GIRARE IN CASA MODELLI CHE SU UN NORMALE PC NON RIUSCIRESTE NEMMENO A CARICARE.

69 visite

Fonti

  1. Dell PowerEdge R930 Owner's Manual, configurazione della memoria www.dell.com
  2. Dell PowerEdge R930, scheda tecnica i.dell.com
  3. Intel Xeon E7-8890 v3, specifiche ufficiali www.intel.com
  4. Dell, specifiche dei controller PERC H730P www.dell.com
  5. llama.cpp, progetto ufficiale github.com
  6. ik_llama.cpp, fork ottimizzato per CPU e modelli MoE github.com
  7. Digital Spaceport, test CPU di DeepSeek R1 671B e note sul Dell R930 digitalspaceport.com
  8. Digital Spaceport, server locale da circa 500 dollari con 512 GB di RAM digitalspaceport.com
  9. Esempio di Dell PowerEdge R930 surplus con quattro Xeon E7-8890 v3 ed H730P www.ebay.de

Commenti

Nessun commento, per ora.

Per commentare serve un accesso. Qui siamo tutti tecnici e colleghi!

Accedi per commentare

Scarica