EMBEDDED
58 • novembre • 2015
hardware
|
HSA
48
differenti tipi di processori all’internodi un’unicaAPU
(Accelerated Processing Unit). Gli sviluppatori posso-
no “attingere” a una notevole potenza di elaborazio-
ne per incrementare le prestazioni dell’applicazione
e consentire una fruizione migliorata per gli utenti
finali. L’elaborazione di natura eterogenea, nello spe-
cifico l’uso di una GPU in qualità di co-processore per
gestire complessi carichi di lavoro di tipo parallelo è
essenziale per l’IoT e per numerose altre applicazio-
ni. Nel 2011 AMD la introdotto la prima APU che
integrava GPU e CPU a elevate prestazioni. Essa ha
consentito l’impiego di GPU di tipo general purpose
per fornire capacità di elaborazione parallela che fino
a non molto tempo prima erano appannaggio esclusi-
vo dei supercomputer. Ciò ha rappresentato il primo
passo, che ha consentito di ottenere migliori presta-
zioni per una certa classe di applicazioni, unitamente
a notevoli vantaggi in termini sia di costi (grazie alla
riduzione della BOM) sia di potenza di elaborazione.
Nellafigura 4 è riportata l’evoluzione delle architettu-
re eterogenee. Successivamente, l’integrazione fisica
ha permesso di includere a bordo del chip dispositivi
che in precedenza erano esterni e connessi mediante
bus PCIe, dando origine a soluzioni da utilizzare in
smartphone, tablet, laptop e computer desktop, siste-
mi embedded e console per videogiochi.
Ora stiamo entrando nell’era dei sistemi eterogenei,
proprio nel momento in cui la tecnologia IoT si sta
rapidamente affermando. Esaminando tutti i dispo-
sitivi connessi, la mole dei dati che generano e la loro
composizione, appare chiara la necessità di un mag-
gior grado di parallelismo dei dati o, in altre parole, la
possibilità di elaborare più informazioni in parallelo
contemporaneamente. Un esempio potrebbe essere
rappresentato dalla video sorveglianza, dove il flusso
video viene dapprima gestito da una GPU per deter-
minare se all’interno di un frame sono rilevate delle
facce. Questo compito di riconoscimento facciale non
è sicuramente banale ma, una volta rilevata una fac-
cia, il relativo set di dati è inviato a una tradizionale
CPU ad alte prestazioni per eseguire il confronto dei
dati memorizzato in un data set (ovvero un insieme
di dati strutturati in forma relazionale) di una tabel-
la di ricerca. In questo esempio differenti tipologie di
processore operano in parallelo sullo stesso problema,
con conseguente aumento dell’efficienza. Un controllo
e un utilizzo migliori della GPU permette di aumen-
tare in modo sensibile l’efficienza di elaborazione.
Se si prende in considerazione la potenza di calcolo
(espressa in FLOPS) di una GPU rispetto a quella di
una CPU, essa è superiore di un ordine di grandez-
za (e oltre). Un’integrazione più efficace di una GPU
nell’architettura di un sistema eterogeneo consente
agli sviluppatori software si sfruttare al meglio le
capacità computazionali della GPU all’interno delle
loro applicazioni. In termini di potenza di calcolo, le
GPU possono vantare molti più FLOPS, arrivando ai
TFOPLS, rispetto alle CPU e ai sistemi multiproces-
sori in virola mobile paralleli ad alta efficienza, ma
hanno un differente spazio di memoria. Finora, la
scrittura del software che collega i due tipi di proces-
sore ha richiesto l’adozione di metodi e linguaggi di
programmazione complessi. Con l’integrazione delle
due tipologie di processore all’interno di una APU,
Fig. 4 – L’evoluzione dell’integrazione delle APU di AMD