Background Image
Table of Contents Table of Contents
Previous Page  48 / 84 Next Page
Information
Show Menu
Previous Page 48 / 84 Next Page
Page Background

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