Indicazioni sulla scelta dell’hardware per Machine Learning / AI
Le nostre configurazioni di workstation Machine Learning/AI sono con CPU singola, multi-GPU e ottimizzate per l’addestramento dei modelli con accelerazione GPU NVIDIA. Queste sono ottime piattaforme per lavorare con framework come TensorFlow, PyTorch, MXNet, ecc.
Indicazioni scelta hardware
Machine Learning / AI – Requisiti di sistema
Link rapido a: Processore (CPU) – Scheda video (GPU) – Memoria (RAM) – Archiviazione (HDD/SSD)
Esistono molti tipi di applicazioni di Machine Learning e Intelligenza Artificiale: dai tradizionali modelli di regressione, ai classificatori di reti non neurali, ai modelli statistici rappresentati da funzionalità in Python SciKitLearn e nel linguaggio R, fino ai modelli di Deep Learning che utilizzano framework come PyTorch e TensorFlow. Anche all’interno di questi diversi tipi di modelli ML/AI può esserci una notevole varietà. L’hardware “migliore” seguirà alcuni modelli standard, ma la vostra applicazione specifica potrebbe avere requisiti ottimali unici.
Le nostre raccomandazioni si basano su generalità tratte da flussi di lavoro tipici. Si noti che questo articolo è incentrato sull’hardware delle workstation ML/DL per la programmazione del “training” dei modelli piuttosto che per l’ “inference”.
Processore (CPU)
Nelle realtà ML/AI, l’accelerazione delle GPU domina le prestazioni nella maggior parte dei casi. Tuttavia, il processore e la scheda madre definiscono la piattaforma per supportarla. Inoltre, è necessario dedicare una quantità significativa di sforzi all’analisi e alla pulizia dei dati per preparare l’addestramento in GPU, che spesso viene effettuato sulla CPU. La CPU può anche essere il motore di calcolo principale quando le limitazioni della GPU, come la disponibilità di memoria a bordo (VRAM), lo richiedono.
Qual è la CPU migliore per l’apprendimento automatico e l’IA?
Le due piattaforme CPU consigliate sono Intel Xeon W e AMD Threadripper Pro. Entrambe offrono un’eccellente affidabilità, sono in grado di fornire le corsie PCI-Express necessarie per più schede video (GPU) e offrono eccellenti prestazioni di memoria nello spazio della CPU. In genere consigliamo workstation con CPU a singolo socket per ridurre i problemi di mappatura della memoria sulle interconnessioni multi-CPU, che possono causare problemi di mappatura della memoria alle GPU.
Un numero maggiore di core della CPU rende più veloce l’apprendimento automatico e l’intelligenza artificiale?
Il numero di core scelti dipenderà dal carico previsto per le attività non legate alla GPU. Come regola generale, si consigliano almeno 4 core per ogni acceleratore di GPU. Tuttavia, se il carico di lavoro ha una componente significativa di calcolo della CPU, 32 o addirittura 64 core potrebbero essere l’ideale. In ogni caso, un processore a 16 core è generalmente considerato minimo per questo tipo di workstation.
L’apprendimento automatico e l’intelligenza artificiale funzionano meglio con le CPU Intel o AMD?
La scelta del marchio in questo settore è per lo più una questione di preferenze, almeno se il carico di lavoro è dominato dall’accelerazione tramite GPU. Tuttavia, la piattaforma Intel è preferibile se il vostro flusso di lavoro può beneficiare di alcuni degli strumenti dell’ Intel oneAPI AI Analytics Toolkit.
Perché si consigliano Xeon o Threadripper Pro piuttosto che CPU di livello più “consumer”?
Il motivo più importante di questa raccomandazione per i carichi di lavoro ML e AI è il numero di corsie PCI-Express supportate da queste CPU, che determinerà il numero di GPU utilizzabili. Sia gli Intel Xeon W-3500 che i Threadripper Pro 7000 di AMD supportano un numero di corsie PCIe sufficiente per tre o quattro GPU (a seconda del layout della scheda madre, dello spazio sul telaio e del consumo energetico). Questa classe di processori supporta anche 8 canali di memoria, il che può avere un impatto significativo sulle prestazioni per i carichi di lavoro legati alla CPU. Un’altra considerazione è che questi processori sono “di livello aziendale” e la piattaforma complessiva è probabilmente robusta in caso di carico di calcolo sostenuto.
Scheda video (GPU)
Dalla metà degli anni 2010, l’accelerazione delle GPU è stata la forza trainante che ha consentito rapidi avanzamenti nella ricerca sull’apprendimento automatico e sull’IA. Per l’addestramento al deep learning, i processori grafici offrono miglioramenti significativi delle prestazioni rispetto alle CPU.
Quale tipo di GPU (scheda video) è la migliore per l’apprendimento automatico e l’IA?
NVIDIA domina l’accelerazione del calcolo su GPU ed è indiscutibilmente lo standard. Le loro GPU sono le più supportate e le più facili da utilizzare. Esistono altri acceleratori, come alcune GPU AMD di fascia alta, FPGA di vari produttori e altri processori di accelerazione ML emergenti che hanno un certo potenziale, ma la loro disponibilità e usabilità al momento ci impediscono di raccomandarli.
Quali schede video sono consigliate per l’apprendimento automatico e l’IA?
Quasi tutte le schede grafiche NVIDIA funzionano, ma i modelli più recenti e di fascia alta offrono generalmente prestazioni migliori. Fortunatamente, la maggior parte delle applicazioni di ML/AI con accelerazione via GPU funzionano bene con la precisione singola (FP32). In molti casi, l’uso di core Tensor (FP16) con precisione mista fornisce una precisione sufficiente per l’addestramento di modelli di deep learning e offre guadagni significativi in termini di prestazioni rispetto allo “standard” FP32. La maggior parte delle recenti GPU NVIDIA dispone di questa capacità, ad eccezione delle schede di fascia bassa.
Le schede grafiche consumer come le GeForce RTX 4080 e 4090 di NVIDIA offrono ottime prestazioni, ma possono essere difficili da configurare in un sistema con più di due GPU a causa del loro design di raffreddamento e delle dimensioni fisiche. Le GPU NVIDIA “professionali”, come le RTX 5000 Ada e 6000 Ada, sono di alta qualità, tendono ad avere più memoria onboard e funzionano bene in configurazioni multi-GPU. La RTX 6000 Ada in particolare, con i suoi 48 GB di VRAM, è consigliata per il lavoro con dati di “grandi dimensioni”, come immagini ad alta risoluzione, immagini 3D, ecc.
Di quanta VRAM (memoria video) hanno bisogno l’apprendimento automatico e l’intelligenza artificiale?
Dipende dallo “spazio delle caratteristiche” dell’addestramento del modello. La capacità di memoria delle GPU è stata limitata e i modelli e i framework di ML sono stati limitati dalla VRAM disponibile. Per questo motivo è comune effettuare una “riduzione dei dati e delle funzionalità” prima dell’addestramento. Ad esempio, le immagini per i dati di addestramento sono solitamente a bassa risoluzione, poiché il numero di pixel diventa una dimensione critica limitante per le caratteristiche. Tuttavia, il campo si è sviluppato con grande successo nonostante queste limitazioni! 8 GB di memoria per GPU sono considerati minimi e potrebbero rappresentare un limite per molte applicazioni. Da 12 a 24 GB sono abbastanza comuni e facilmente disponibili sulle schede video di fascia alta. Per i problemi di dati più grandi, i 48 GB disponibili sulla NVIDIA RTX 6000 Ada potrebbero essere necessari, ma non lo sono comunemente.
Le GPU multiple migliorano le prestazioni dell’apprendimento automatico e dell’intelligenza artificiale?
Generalmente sì. Nelle nostre configurazioni consigliate utilizziamo di default più schede video, ma i vantaggi offerti possono essere limitati dal lavoro di sviluppo che si sta svolgendo. L’accelerazione multi-GPU deve essere supportata dal framework o dal programma in uso. Fortunatamente, il supporto multi-GPU è ormai comune nelle applicazioni di ML e AI, ma se si sta svolgendo un lavoro di sviluppo senza il vantaggio di un framework moderno, è possibile che si debba provvedere da soli alla sua implementazione.
Tenete inoltre presente che una singola GPU come la NVIDIA RTX 4090 o 5000 Ada può fornire prestazioni significative e potrebbe essere sufficiente per la vostra applicazione. La presenza di 2, 3 o addirittura 4 GPU in una workstation può fornire una quantità sorprendente di capacità di calcolo e può essere sufficiente anche per molti problemi di grandi dimensioni. Si consiglia inoltre di avere almeno due GPU quando si esegue il lavoro di sviluppo per consentire il test locale della funzionalità multi-GPU e della scalabilità, anche se i lavori “di produzione” saranno scaricati su cluster di calcolo GPU separati.
L’apprendimento automatico e l’intelligenza artificiale funzionano meglio con NVIDIA o AMD?
Si sta lavorando per rendere le GPU AMD utilizzabili in questo ambito e presto entrerà in campo anche Intel, ma realisticamente NVIDIA domina e ha alle spalle oltre un decennio di intenso e proficuo lavoro di ricerca e sviluppo sulle GPU per il calcolo.
L’apprendimento automatico e l’intelligenza artificiale hanno bisogno di una scheda video “professionale”?
No. NVIDIA GeForce RTX 4070 Ti SUPER, 4080 e 4090 sono GPU eccellenti per questo tipo di carico di lavoro. Tuttavia, a causa delle limitazioni di raffreddamento e di dimensioni, la serie “pro” RTX 5000 Ada e la 6000 Ada ad alta memoria sono più indicate per le configurazioni con tre o quattro GPU. Storicamente, la moderna ML/AI è stata sviluppata su GPU da gioco NVIDIA e sono ancora molto comuni per le workstation di sviluppo. Per i carichi di lavoro più impegnativi, è possibile utilizzare la straordinaria GPU di calcolo NVIDIA A100 in configurazioni con montaggio in rack. Sono molto costose ma le prestazioni sono sbalorditive.
È necessario NVLink quando si utilizzano più GPU per l’apprendimento automatico e l’intelligenza artificiale?
NVLink di NVIDIA fornisce un ponte di comunicazione diretto e ad alte prestazioni tra una coppia di GPU. L’utilità o meno di questa soluzione dipende dal tipo di problema. Per la formazione di molti tipi di modelli non è necessario. Tuttavia, per tutti i modelli che hanno una componente “storica”, come RNN, LSTM, serie temporali e soprattutto i modelli Transformer, NVLink può offrire un notevole incremento di velocità ed è quindi consigliato. Si noti che non tutte le GPU NVIDIA supportano NVLink, che può essere utilizzato solo per collegare due schede.
Memoria (RAM)
La capacità di memoria e le prestazioni sul lato CPU di un sistema di ML/AI dipendono ovviamente dai lavori in esecuzione, ma possono essere una considerazione molto importante e ci sono alcune raccomandazioni minime.
Di quanta RAM hanno bisogno l’apprendimento automatico e l’intelligenza artificiale?
La prima regola empirica è quella di avere almeno il doppio della memoria della CPU rispetto alla memoria totale della GPU nel sistema. Ad esempio, un sistema con due GPU GeForce RTX 4090 ha 48 GB di VRAM totale, quindi il sistema dovrebbe essere configurato con 128 GB (96 GB sarebbero il doppio, ma 128 GB è di solito la quantità configurabile più vicina).
La seconda considerazione riguarda la quantità di analisi dei dati necessaria. Spesso è necessario (o almeno auspicabile) essere in grado di estrarre un intero set di dati dalla memoria per l’elaborazione e il lavoro statistico. Questo potrebbe significare grandi requisiti di memoria, fino a 1 TB (o raramente anche di più) di memoria di sistema. Questo è uno dei motivi per cui consigliamo di utilizzare processori per workstation e server: supportano una quantità di memoria di sistema sostanzialmente maggiore rispetto ai chip consumer.
Archiviazione (SSD/HDD)
L’archiviazione è una di quelle aree in cui “più di quanto si pensa sia necessario” è probabilmente una buona idea. I requisiti minimi sono simili a quelli della memoria della CPU. Dopo tutto, i dati e i progetti devono essere disponibili!
Qual è la configurazione di storage migliore per l’apprendimento automatico e l’intelligenza artificiale?
Si consiglia di utilizzare uno storage NVMe veloce quando possibile, poiché la velocità di streaming dei dati può diventare un collo di bottiglia quando i dati sono troppo grandi per essere inseriti nella memoria di sistema. Lo staging delle esecuzioni di lavoro da NVMe può ridurre i rallentamenti delle esecuzioni di lavoro. Le unità NVMe sono disponibili con capacità fino a 4 TB.
Insieme allo storage NVMe veloce per i lavori di staging, le unità SSD più tradizionali basate su SATA offrono capacità maggiori che possono essere utilizzate per i dati che superano la capacità delle tipiche unità NVMe. Per le unità SSD SATA sono disponibili tagli da 8 TB.
Le unità a piatti possono essere utilizzate per l’archiviazione e per set di dati molto grandi. Sono ora disponibili capacità superiori a 18 TB.
Inoltre, tutti i tipi di unità di cui sopra possono essere configurati in array RAID. Ciò aggiunge complessità alla configurazione del sistema e può utilizzare slot sulla scheda madre che altrimenti potrebbero supportare GPU aggiuntive, ma può consentire di ottenere uno spazio di archiviazione compreso tra 10 e 100 terabyte.
È opportuno utilizzare lo storage collegato alla rete per l’apprendimento automatico e l’intelligenza artificiale?
Lo storage collegato alla rete è un’altra considerazione. È diventato sempre più comune per le schede madri delle workstation disporre di porte Ethernet da 10 Gb, che consentono connessioni di archiviazione di rete con prestazioni ragionevolmente buone senza la necessità di componenti aggiuntivi di rete più specializzati.
Cercate una workstation ML / AI?
Costruiamo computer su misura per il vostro flusso di lavoro.
Non sapete da dove cominciare? Possiamo aiutarvi!
Contattate oggi stesso uno dei nostri consulenti tecnici.