Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Da diversi anni le GPU non sono più usate solamente per visualizzare la grafica su uno schermo, ma anche per occuparsi di complessi calcoli matematici - pensate alla ricerca scientifica o al mining di criptovalute. L'uso continuo ha un impatto diretto sul chip, e in genere le prestazioni possono ridursi nel corso del tempo.

I singoli core all'interno della GPU, invecchiando, non funzionano più alla perfezione, e così la TU Wien (l'Università Tecnologica di Vienna) e la University of California, hanno sviluppato un metodo di gestione del chip migliore capace di distribuire i compiti in modo più efficiente.

In questo modo, secondo in ricercatori, è possibile rallentare il processo d'invecchiamento della GPU. Questo è almeno quanto avvenuto in oltre il 95% dei casi. "I computer casalinghi hanno processori con pochi core. Una GPU, d'altra parte, consiste di un grande numero di core - in genere centinaia o migliaia", spiega il professore Muhammad Shafique (Institute for Computer Engineering, TU Wien).

GPU Shafique
Muhammad Shafique, TU Wien

Per questo le GPU sono estremamente utili per calcoli paralleli, nei quali un'operazione può essere suddivisa in molti calcoli più piccoli che possono essere risolti in modo indipendente l'uno dall'altro da differenti core allo stesso tempo. I core, però, non sono mai totalmente identici.

"Le strutture nelle GPU sono molto piccole. Ci saranno sempre piccole imperfezioni e differenze legate al processo produttivo", aggiunge Muhammad Shafique. Di conseguenza l'invecchiamento legato all'uso ha effetti diversi sui vari core. Sotto stress, le prestazioni di core differenti possono divergere.

GPU aging jetsontk1
Processo d'invecchiamento della GPU sul kit di sviluppo Nvidia Jetson TK1

E questo può rappresentare un problema per chi usa le GPU per calcoli altamente paralleli. Quando un'operazione viene distribuita tra molti core e il sistema deve aspettare che il completamento dell'ultima operazione prima che si possa passare al calcolo successivo, è il core più lento a determinare la velocità complessiva dell'intera operazione. Questo può drasticamente ridurre le prestazioni della GPU.

Muhammad Shafique e il team del professor Mohammad Al Faruque (University of California, Irvine) hanno quindi pensato a una soluzione per questo problema, con metodi di gestione intelligenti: "Anzitutto è cruciale sapere lo stato dei singoli core", ha dichiarato Muahmmad Shafique. "Poi possiamo assegnare le diverse operazioni in modo tale che tra i core lo stress fisico sia distribuito in modo ottimale".

I core con proprietà simili vengono combinati in insiemi detti cluster, ai quali sono poi assegnate operazioni più o meno pesanti, a seconda del loro stato. In quel modo il processo d'invecchiamento può essere rallentato, e le prestazioni del sistema si mantengono ottimali.

"C'erano già idee su come rallentare il processo d'invecchiamento delle GPU con tecniche compiler-based, ma il nostro metodo è molto più efficace. Funziona in oltre il 95% dei casi" ha spiegato Muhammad Shafique.

Il paper, pubblicato sul giornale IEEE Transactions on Computers, è stato inserito anche citato da Nature Electronics con l'articolo intitolato "Just about managing".