AMD APU più veloci fino al 113%, il segreto è nel software

Ricercatori della North Carolina State University e ingegneri di AMD hanno trovato un modo per far rendere al massimo una APU. Mentre la CPU lavora come unità di prefetching dei dati, la GPU si occupa dei calcoli. Le prestazioni potrebbero crescere mediamente del 20%, con punte fino al 113%.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Le prestazioni delle APU AMD potrebbero aumentare mediamente di oltre il 20 percento grazie all'uso di una nuova tecnica chiamata "CPU-assisted GPGPU" che migliora la gestione dei dati tra CPU e GPU integrata. È questo il risultato di una ricerca svolta da un team della North Carolina State University e dalla stessa AMD, che ha collaborato e finanziato lo studio insieme alla National Science Foundation.

"I produttori di chip stanno creando processori che hanno un'architettura fusa, il che significa che includono CPU e GPU su un singolo chip", ha dichiarato il professor Huiyang Zhou. "Quest'approccio riduce i costi di produzione e aumenta l'efficienza energetica dei computer. I core della CPU e della GPU però lavorano quasi esclusivamente su funzioni separate. Raramente collaborano nell'esecuzione di un determinato programma, quindi non sono così efficienti come potrebbero essere. È un problema che stiamo cercando di risolvere".

L'approccio è quello di sfruttare la GPU per eseguire funzioni di calcolo, e al tempo stesso usare la CPU per andare a pescare e gestire i dati (pre-fetch) di cui avrà bisogno la GPU dalla memoria di sistema. "Questa tecnica è più efficiente perché permette a CPU e GPU di fare ciò in cui sono brave. Le GPU sono buone per compiere calcoli ad alte prestazioni, mentre le CPU per fare decisioni e recuperare i dati in modo flessibile". 

Tutto avviene via software e qui tocchiamo un tasto dolente: spesso nei nostri computer abbiamo hardware sotto-utilizzato. L'hardware corre e il software resta indietro - e probabilmente non è nemmeno tutta colpa degli sviluppatori.

La tecnica "CPU-assisted GPGPU" usa sostanzialmente la veloce cache L3 della CPU come "incubatrice" dei dati che servono alla GPU, pescati dalla memoria di sistema. I thread di calcolo della GPU possono quindi accedere direttamente a questa memoria per svolgere i calcoli, riducendo le latenze e sprigionando tutta la propria forza

Tutto è gestito da un programma di pre-esecuzione, generato automaticamente dal kernel della GPU usando algoritmi preposti dal compilatore e dotato delle istruzioni di accesso alla memoria del kernel della GPU per più thread. Poiché la pre-esecuzione è controllata direttamente a livello di applicazioni utente, può essere affinata e amministrata.

Nei test preliminari, il team guidato dal professor Huiyang Zhou ha riscontrato che il nuovo approccio migliora le prestazioni della APU mediamente del 21,4 percento, con punte massime fino al 113%. Non sono noti i software con i quali sono stati effettuati questi riscontri, ma probabilmente si tratta di test sintetici. Il team presenterà la sua ricerca il 27 febbraio all'International Symposium on High Performance Computer Architecture.

L'esperimento, va sottolineato, è stato compiuto con "una simulazione di una futura APU AMD con cache L3 condivisa". D'altronde né Llano né l'imminente Trinity hanno cache L3. Secondo i ricercatori questa tecnica potrebbe applicarsi anche ai processori con grafica integrata Sandy Bridge di Intel, ma solo in teoria, perché la GPU non è abbastanza potente e non supporta OpenCL e altre istruzioni tipiche del calcolo generico. Mancanze che l'azienda dovrebbe iniziare a risolvere con Ivy Bridge.