Cosa sono e differenza tra GPU e FPGA in informatica

Cosa sono e differenza tra GPU e FPGA in informatica

I rapidi progressi nella tecnologia VLSI negli ultimi decenni hanno consentito la fabbricazione di miliardi di transistor su un singolo chip. Questo progresso tecnologico ha portato alla progettazione e allo sviluppo di hardware molto più veloce ed efficiente dal punto di vista energetico. Le velocità di clock in rapido aumento e le larghezze di banda della memoria più elevate hanno portato a prestazioni migliori. E il miglioramento delle prestazioni single-core dei processori per uso generico è diminuito a causa della diminuzione del tasso di aumento delle frequenze operative. Le due ragioni principali di ciò sono il crescente divario tra la velocità del processore e della memoria e le limitazioni nell’alimentazione. Per risolvere questi problemi, il settore dei microprocessori è passato ai processori multicoreAltre valide alternative sono arrivate all’immagine oltre ai processori multi-core per superare tali colli di bottiglia, inclusi circuiti integrati progettati su misura e FPGA riprogrammabili e anche GPU. Quindi, cosa preferiresti per i tuoi requisiti di calcolo: GPU o FPGA?

GPU

L’unità di elaborazione grafica (GPU), più comunemente nota come scheda grafica o scheda video, è un processore grafico per la gestione delle informazioni grafiche da visualizzare su uno schermo. La GPU è un processore specializzato inizialmente progettato per soddisfare la necessità di accelerare il rendering grafico, principalmente per aumentare le prestazioni grafiche dei giochi su un computer. In effetti, la maggior parte delle GPU consumer è dedicata a ottenere prestazioni grafiche e immagini superiori per consentire un gameplay realistico. Ma le GPU di oggi sono molto più dei personal computer in cui sono apparse per la prima volta.

Prima dell’avvento delle GPU, il general purpose computing, come lo conosciamo, era possibile solo con le CPU, che erano le prime unità di elaborazione mainstream prodotte sia per usi consumer che per elaborazione avanzata. Il GPU computing si è notevolmente evoluto negli ultimi decenni per aver trovato ampio utilizzo nella ricerca sull’apprendimento automatico, l’intelligenza artificiale e l’apprendimento profondo. La GPU è salita di livello con l’introduzione di API GPU come Compute Unified Device Architecture (CUDA), che ha aperto la strada allo sviluppo di librerie per reti neurali profonde.

FPGA

Field Programmable Gate Array (FPGA) è una bestia completamente diversa che ha portato le prestazioni di elaborazione GPU a un livello completamente nuovo, offrendo prestazioni superiori nelle applicazioni di reti neurali profonde (DNN) e dimostrando un consumo energetico migliorato. Gli FPGA sono stati inizialmente utilizzati per collegare tra loro componenti elettronici, come controller di bus o processori, ma nel tempo il loro panorama applicativo è cambiato drasticamente. Gli FPGA sono dispositivi a semiconduttore che possono essere programmati elettronicamente per diventare qualsiasi tipo di circuito o sistema digitale. Gli FPGA offrono una migliore flessibilità e capacità di prototipazione rapida rispetto ai progetti personalizzati. Altera Corporation, con sede a San Jose, in California, è uno dei maggiori produttori di FPGA e nel 2015 l’azienda è stata acquisita da Intel. Questi sono molto diversi dall’hardware basato su istruzioni, come le GPU e la parte migliore è che possono essere riconfigurati per soddisfare i requisiti di carichi di lavoro ad alta intensità di dati, come le applicazioni di machine learning.

Cosa sono e differenza tra GPU e FPGA in informatica

Differenza tra GPU e FPGA

Tecnologia 

La GPU è un circuito elettronico specializzato, inizialmente progettato per soddisfare la necessità di accelerare il rendering grafico per il calcolo scientifico e ingegneristico generico. Le GPU sono progettate per funzionare in modalità SIMD (Single Instruction Multiple Data). La GPU scarica alcune delle porzioni di codice assetate di energia accelerando le prestazioni delle applicazioni in esecuzione sulla CPU. Gli FPGA, d’altra parte, sono dispositivi a semiconduttore che possono essere programmati elettronicamente per diventare qualsiasi tipo di circuito o sistema digitale desiderato.

Latenza

 Gli FPGA offrono una latenza inferiore rispetto alle GPU, il che significa che sono ottimizzati per elaborare le applicazioni non appena l’input viene fornito con un ritardo minimo. L’architettura dell’FPGA gli consente di ottenere un’elevata potenza di calcolo senza il complesso processo di progettazione, rendendolo ideale per le applicazioni a bassa latenza. Raggiungono capacità di elaborazione significativamente più elevate in meno tempo possibile rispetto alle GPU, che devono relativamente evolversi per rimanere rilevanti.

Efficienza Energetica

 L’efficienza energetica è stata una metrica di prestazioni importante per anni e gli FPGA eccellono anche in questo perché sono noti per la loro efficienza energetica. Possono supportare velocità di trasmissione dei dati molto elevate per quanto riguarda l’elaborazione parallela in circuiti implementati nel fabric riconfigurabile. La cosa migliore degli FPGA è che possono essere riconfigurati, il che offre una flessibilità che dà loro un vantaggio rispetto alle loro controparti GPU per determinati domini applicativi. Molte delle operazioni di dati ampiamente utilizzate possono essere implementate in modo efficiente su FPGA attraverso la programmabilità hardware. Anche le GPU sono efficienti dal punto di vista energetico, ma solo per i flussi SIMD.

Operazioni in Floating Point

 Molte applicazioni di elaborazione ad alte prestazioni, come il deep learning, richiedono una forte dipendenza dalle operazioni in virgola mobile. Sebbene l’architettura flessibile degli FPGA dimostri un potenziale eccezionale nelle reti sparse, che sono uno degli argomenti più caldi nelle applicazioni ML, soffrono di raggiungere velocità più elevate per le applicazioni che fanno ampio uso di operazioni aritmetiche in virgola mobile. Le operazioni in virgola mobile sono qualcosa in cui le GPU sono davvero brave. La GPU più veloce ha prestazioni in virgola mobile di massimo 15 TFLOPS.

Conclusioni

In poche parole, le GPU consentono un ambiente di sviluppo flessibile e tempi di consegna più rapidi, ma gli FPGA offrono una flessibilità molto migliore e capacità di prototipazione rapida. Mentre le GPU sono le migliori quando si tratta di applicazioni di calcolo ad alte prestazioni che dipendono da operazioni aritmetiche in virgola mobile, gli FPGA sono ottimi per le applicazioni assetate di energia e la loro latenza è molto più deterministica perché sono processori specializzati che possono essere riconfigurati elettronicamente per diventare qualsiasi tipo di circuito o sistema digitale. In alcune aree di applicazione, gli FPGA sono molto difficili da battere, come le applicazioni militari come i sistemi di guida missilistica, che richiedono una bassa latenza.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *