53
FPGA VERSUS GPU |
HARDWARE
Principali differenze
Entrambe le tecnologie, GPU e FPGA, sono co-
struite per stream processing. A seconda del
problema che si sta affrontando, una o l’altra
tecnologia può risolverlo nel migliore o peggio-
re dei modi. L’utilizzo di architetture parallele
ha permesso il miglioramento dell’analisi di
grosse quantità di dati con FPGA e GPU che
offrono livelli computazionali notevoli, in par-
ticolare FPGA offre un livello di elaborazione
a bassa latenza con qualche limite in termini
computazionali a virgola mobile a causa delle
restrizioni spaziali. Le GPU hanno guadagnato
un notevole mercato sia in termini di flessibili-
tà che di costi, inoltre possono essere
utilizzate in combinazione con FPGA
per migliorare l’esecuzione di algorit-
mi con elevato grado aritmetico, quali
la FFT.
Storicamente le GPU erano state con-
siderate forti consumatori di energia,
che è problematico in scenari di batte-
ria-dipendente, ma gli ultimi prodotti
GPU hanno incrementato fortemente
l’efficienza energetica con nuove tec-
niche di power management. A dif-
ferenza della FPGA che risultano le
migliori in ambienti real-time quando
si richiedono latenze molto basse, core
GPU eccellono in operazioni di virgola
mobile grazie alla sua configurazione
hardware nativa che lo rende ideale
per applicazioni di elaborazione
delle immagini. Cicli di sviluppo
sono generalmente più brevi per
le GPU per il loro modello di pro-
grammazione ben noto con una
buona compatibilità del nuovo
software su chip più vecchi e un
notevole supporto per una vasta
gamma di strumenti di sviluppo
open e librerie di funzioni mate-
matiche gratuite (Fig. 3).
Architetture a confronto:
programming
e soluzioni commerciali
Le FPGA contengono grandi
quantità di memoria e di logica
configurabile insieme con una
notevole quantità di area di silicio dedicata alla
interconnessioni.
L’implementazione di un algoritmo richiede la
combinazione di risorse in modo efficiente al
fine di soddisfare i vincoli temporali richiesti.
La parte migliore della FPGA, però, come sug-
gerisce il nome, è rappresentata dal essere com-
pletamente programmabile. Il chip avrà pin di
ingresso e di uscita e con l’utilizzo di schemi o di
un linguaggio di programmazione software come
VHDL, si è in grado di progettare circuiti digita-
li necessari per eseguire le attività. Molte case
costruttrici forniscono gratuitamente sistemi di
sviluppo che supportano quasi tutta la loro gam-
Fig. 2 - Struttura di una GPU a confronto con una CPU
Fig. 3 - Confronto tra GPU e CPU [Fonte: Nvidia]
EMBEDDED
59 • FEBBRAIO • 2016