
News
Contenuti per la community dell'HPC e gli appassionati di innovazione: tutorial, news e press release per utenti, ingegneri e amministratori
- Tutte le news
- Aerospace & Defence
- Artificial Intelligence
- Blog
- Cloud Platform
- HPC
- Kubernetes Cluster
- Press
- Progetti Europei
- Ultime news
- Varie E4
- Video
Che cos’è il GPU Computing?

Oggi vi parleremo di GPU Computing: che cos’è, quale funzione ha e perché viene utilizzato nella maggior parte delle operazioni di calcolo ad alte prestazioni con funzione di acceleratore, per l’elaborazione di dati in ambito scientifico e di uso generale.
Al giorno d’oggi, le GPU (Graphic Processing Unit), infatti, sono diventate gli elementi di riferimento per accelerare i carichi di lavoro in ambito High Performance Computing (HPC) e per le applicazioni legate al training e all’inferenza nell’ambito Deep Learning e Intelligenza Artificiale.
Tecnicamente, la GPU è un “coprocessore”, ossia funziona da supporto alla CPU (Central Processor Unit), all’interno di un computer, dedicandosi alle operazioni che richiedono l’elaborazione di immagini grafiche. Le GPU vengono oggi utilizzate anche per operazioni general purpose (GPGPU – General Purpose Computing on GPU), in diversi ambiti, da quello scientifico e della ricerca a quello finanziario, per citarne alcuni, ove sia necessaria un’elaborazione di ingenti quantità di dati. Nell’ambito del data center, le GPU permettono, infatti, di supportare il calcolo parallelo: ogni server accelerato da una GPU sostituisce decine di server dotati di generiche CPU, fornendo un aumento sostanziale del throughput applicativo a costi più contenuti.
La GPU accelera le applicazioni che girano su CPU, occupandosi di quelle porzioni di codice che richiedono tempi più lunghi per l’elaborazione, mentre tutto il resto continua a girare su CPU. In questo modo la prestazione totale del sistema migliora.
A cosa servono le GPU?
Circa venti anni fa, le GPU venivano utilizzate principalmente per l’elaborazione grafica 3D, soprattutto in ambito gaming. Ben presto, gli informatici hanno realizzato il reale potenziale di questi sistemi di elaborazione. Ora, la tecnologia grafica viene applicata in modo più estensivo a una serie sempre più ampia di problemi. Le GPU odierne sono più programmabili che mai, offrendo loro la flessibilità per accelerare un’ampia gamma di applicazioni che vanno ben oltre il rendering grafico tradizionale.
In quali ambiti vengono utilizzate?
GAMING:
In ambito gaming si è assistito a un avanzamento delle tecnologie di visualizzazione, basti pensare agli schermi 4K, all’aumento di giochi di realtà virtuale o alle frequenze di aggiornamento elevate. Le GPU rispondono perfettamente a queste nuove esigenze, permettendo un’esperienza di gioco fluida e veloce.
VIDEO EDITING E CREAZIONE CONTENUTI MULTIMEDIALI:
Grazie all’elaborazione parallela offerta dalle GPU è possibile avere tempi di rendering di video e grafica in alta definizione molto ridotti. Inoltre, le GPU permettono una maggiore efficienza energetica.
GPU PER MACHINE LEARNING
Alcune delle applicazioni più interessanti per la tecnologia GPU riguardano l’intelligenza artificiale e il machine learning. Il riconoscimento immagini, ad esempio, è una di quelle applicazioni perfette per una GPU, poiché sfruttano il loro meccanismo di elaborazione di calcolo parallelo.
HIGH PERFORMANCE COMPUTING
L’architettura delle GPU si presta ottimamente all’esecuzione dei piu’ comuni kernel computazionali utilizzati nel calcolo scientifico, quali algebra lineare, trasformate di Fourier, metodi Monte Carlo… L’utilizzo di tali primitive consente da anni un efficiente sfruttamento delle GPU in un ampia gamma di applicazioni tecniche e scientifiche, rendendo la transizione verso il GPU computing molto semplice.
Quali sono le differenze principali tra CPU e GPU?
Il processore,
chiamato anche CPU (Central Processing Unit), è l’unità di elaborazione
centrale del computer perché coordina in maniera centralizzata tutte le altre
unità di elaborazione presenti in un sistema, sia sulle periferiche esterne sia
sulle schede elettroniche interne, come ad esempio la scheda audio, la scheda
video e la scheda di rete.
La CPU si occupa, inoltre, dell’esecuzione di tutte le istruzioni che arrivano
dai programmi, che passano dall’hard-disk alla RAM, lavorando su operazioni tra
loro sequenziali. Ogni CPU presenta qualche decina di core e lavora con una
frequenza di clock che va dai 2 ai 5 GHz. In una CPU i diversi core si occupano
di operazioni diverse e indipendenti le une dalle altre. Si tratta del sistema
denominato MIMD: multiple instructions, multiple data.
La GPU, invece, presenta una struttura altamente parallela. Essa è composta normalmente da centinaia o migliaia di core capaci di lavorare con una frequenza nell’ordine del singolo GHz. Nonostante lavori, dunque, a frequenze più basse rispetto a una CPU, la GPU è in grado di elaborare grandi blocchi di dati in modo parallelo, funzionando secondo il sistema SIMD: single instruction, multiple data. In pratica, viene seguita una sola istruzione per volta, ma tramite un sistema di calcolatori che lavorano in parallelo.
Questi piccoli calcolatori vengono chiamati CUDA cores da NVIDIA, il principale produttore al mondo di GPU.
Le GPU sono dispositivi molto versatili: posso infatti operare sugli usuali dati a 32 e 64 bit, ma dispongono anche di unità specializzate (i Tensor Cores), in grado di accelerare gli algoritmi di Intelligenza Artificiale e le applicazioni che richiedono una minore accuratezza del singolo dato.
Nelle GPU la capacità di poter elaborare un ampio dataset in parallello è supportata dalla possibilità di leggere e scrivere dati dalla propria memoria con un elevatissimo transfer rate (nell’ordine di 1TB/s), rendendo la GPU un dispositivo idoneo anche per applicazioni memory-bound.
Vuoi saperne di più sul GPU Computing?
Le nostre soluzioni ad alte prestazioni sfruttano queste tecnologie, contattaci per approfondire!