GPU è l’acronimo di Graphics Processing Unit, un dispositivo elettronico progettato per eseguire nello specifico elaborazioni di immagini, animazioni e video, sgravando il processore centrale (CPU) da tali compiti, spesso molto esosi in termini di risorse, ai fini di rendere il sistema più performante ed efficiente nei consumi.

Grazie alle sue caratteristiche specifiche, che esamineremo nel corso del presente approfondimento, una GPU oggi rappresenta molto di più di un semplice acceleratore grafico, andando ben oltre la funzione per cui è stata progettata all’origine.

La logica di funzionamento di una GPU prevede la suddivisione del task in unità più piccole, eseguibili in parallelo su più core unit del processore stesso. Grazie a questo parallelismo, la GPU consente di ottenere throughput e prestazioni molto elevate in moltissimi ambiti di utilizzo, tra cui: grafica 3D, compositing audio-video, simulazioni scientifiche, virtualizzazione (Docker e Kubernetes) e intelligenza artificiale, soprattutto nell’ambito del machine learning e del deep learning.

Se la computer grafica 3D, in ambito professionale e gaming, ha rappresentato la killer app per eccellenza delle schede grafiche, oggi considerare una GPU soltanto in merito a questa funzione appare oltremodo riduttivo. Il punto di svolta è stato segnato nel 2007, quando NVIDIA ha pubblicato la piattaforma CUDA, che ha consentito agli sviluppatori di avvalersi della potenza di calcolo delle GPU anche per utilizzi non inerenti alla CGI.

Per comprendere al meglio cosa rappresenti oggi la Graphics Processing Unit è opportuno ripercorrere in sistesi la storia di questo componente, divenuto ormai essenziale per qualsiasi sistema desktop, mobile, nonché per gli HPC dei data center.

LEGGI ANCHE: Generative AI: perché le aziende dovrebbero conoscerla e implementarla

Un po’ di storia: dagli acceleratori 3D alle GPU general purpose

La prima GPU, intesa quale componente specializzato per il calcolo di funzioni 3D, è riconducibile al lavoro che il MIT sviluppò nel 1951 per Whirlwind, un simulatore di volo a servizio della US Navy, la marina militare statunitense. Tuttavia, le prime unità pensate nello specifico per le funzioni grafiche affondano le loro radici negli anni Settanta, con i sistemi video shifter e video address generator, capaci di trasferire le informazioni video dalla CPU al display. Nel 1976 la RCA ha realizzato Pixie, una GPU capace di generare un segnale video 62×128 e ben presto sarebbe arrivato anche il supporto RGB, con il sistema arcade Namco Galaxian, del 1979.

Negli anni Ottanta, grazie a IBM, le unità specializzate per la grafica entrano a far parte delle architetture dei PC, con i sistemi monochrome e color display adapter (MDA e CDA), che possiamo considerare gli antesignani delle GPU di moderna concezione. Nel 1983 Intel fa il proprio esordio in questo ambito con un elaboratore capace di renderizzare immagini a 256×256 pixel, mentre nel 1985 nasce quella che sarebbe diventata ATI Technologies (poi acquisita da AMD), che con S3 Graphics e NVIDIA avrebbe dominato la scena fino alla metà degli anni Novanta, all’alba dell’era del 3D, riconducibile dal 1995 al 2006.

A segnare il primo significativo punto di svolta nella storia delle GPU è stata la nascita degli acceleratori 3D, schede autonome specializzate nel rendering dei contenuti tridimensionali. Impossibile non citare la 3DFX Voodoo, capace di guadagnarsi addirittura l’85% del mercato dei sistemi gaming, costringendo tutti i produttori a pensare a schede dedicate alla grafica 3D.

Dal punto di vista dell’architettura, la 3DFX Voodoo 2, nel 1998, è stata con ogni probabilità la prima scheda grafica diffusa a livello mainstream a supportare il calcolo in parallelo su due unità nello stesso computer, combinando il lavoro della CPU e della GPU.

Nel 1999 NVIDIA rilascia la GeForce 256, primo modello di una serie che tuttora domina il mercato delle schede grafiche in ambito consumer. Inizia la corsa al rendering del più alto numero di poligoni possibile, per raggiungere il risultato del fotorealismo nella simulazione grafica sia in ambito gaming che in quello professionale, dove NVIDIA e ATI si sono continuamente sfidate per realizzare schede sempre più potenti.

Nel 2006, come accennato in sede di premessa, avviene la seconda grande rivoluzione nel mercato delle GPU, quando sia NVIDIA che AMD, che aveva nel frattempo acquisito ATI, iniziano a commercializzare schede grafiche capaci di elaborare anche altre funzioni. Nasce l’era delle general purpose GPU. Nel 2006 infatti NVIDIA ha rilasciato CUDA, una vera e propria piattaforma di sviluppo che tuttora consente agli sviluppatori di utilizzare l’hardware delle GPU anche per applicazioni non grafiche, sfruttando la loro potenza di calcolo in parallelo.

La tecnologia delle GPU nate per il gaming e la grafica 3D è pertanto diventata ben presto uno standard anche nell’implementazione dei sistemi HPC (High Performance Computing), utilizzati nell’ambito delle simulazioni scientifiche e dell’intelligenza artificiale.

Nel giro di breve tempo CUDA, grazie alla sua estrema flessibilità, è stato in grado di rivoluzionare l’elaborazione sia nel contesto consumer che in ambito enterprise, sfruttando al massimo tutte le architetture hardware rilasciate negli anni da parte di NVIDIA, dalle GPU Pascal alle attuali GPU Ampere.

Graphics Processing Unit e intelligenza artificiale: la rivoluzione nell’IT

Le GPU hanno acquisito ulteriore popolarità in tempi recenti, grazie alla straordinaria diffusione delle applicazioni basate sull’intelligenza artificiale, generativa e non. I fattori di questo successo sono da ricercare nei seguenti punti:

  • Le GPU supportano il calcolo in parallelo richiesto dalle applicazioni di machine learning e deep learning per il training dei loro algoritmi
  • Le GPU consentono di implementare sistemi estremamente scalabili, in grado di soddisfare le esigenze dei sistemi desktop, mobile, delle workstation e dei supercomputer.
  • La diffusione di librerie e software in grado di sfruttare appieno il potenziale delle GPU per tutte le principali applicazioni AI
  • La maggior convenienza in termini prestazionali ed energetica rispetto alle CPU tradizionali.

In merito a questo ultimo punto, in una recente pubblicazione scientifica sulla AI, la Stanford University ha affermato, sulla base dei propri studi, che dal 2003 ad oggi le performance delle GPU per il calcolo dell’intelligenza artificiale sono cresciute 7000 volte, mentre il rapporto prezzo/performance 5600 volte. Nell’arco di vent’anni è stato quindi effettuato un salto generazionale a tre cifre. Questi valori devono soprattutto far riflettere sulla maturità tecnologica che ha finalmente consentito alle applicazioni AI di diffondersi su larga scala.

L’impatto dell’intelligenza artificiale sul sistema socio-economico appare assolutamente dirompente. Secondo un report di McKinsey pubblicato nel giugno del 2023, il solo mercato della AI generativa potrebbe già generare un indotto pari a 2,6% trilioni di dollari in ambiti come il finance, l’healthcare e il retail.

Secondo alcuni dati recentemente pubblicati da NVIDIA in merito alle proprie vendite, oltre 40mila grandi aziende utilizzano sistemi GPU per il calcolo della AI, coinvolgendo una community di oltre 4 milioni di sviluppatori.

Il calcolo della AI e più in generale dei servizi in cloud nei data center rappresenta un processo estremamente energivoro (dal 5 al 12% dei consumi elettrici globali, secondo vari studi, NdR), che le aziende stanno affrontando con obiettivi di sostenibilità che prevedono la crescente adozione delle fonti rinnovabili.

CPU e GPU (e NPU): il cuore pulsante dei nuovi AI PC

In molte varianti architetturali, le CPU e le GPU costituiscono le due unità di elaborazione fondamentali presenti negli attuali dispositivi informatici. Dalle grandi motherboard con socket multiprocessore a cui è possibile aggiungere molte schede video dedicate, come avviene nel caso delle workstation, ai compattissimi SoC dei sistemi mobile, il concetto sostanzialmente non varia.

La CPU gestisce tutte le attività informatiche necessarie per l’esecuzione del sistema operativo e delle applicazioni, mentre la GPU gestisce in modo più efficiente il calcolo in parallelo, risolvendo pertanto nello specifico le esigenze computazionali di un’ampia tipologia di applicazioni.

Come abbiamo visto, questa esigenza si è fatta in particolar modo viva quando ci si è resi conto che le CPU non erano state progettate per gestire il calcolo delle applicazioni in computer grafica, ragion per cui sono nate le GPU di moderna generazione. Una GPU può infatti completare task semplici e ripetitivi più velocemente, suddividendoli in task più piccoli, eseguibili in parallelo. Tale caratteristica deriva da differenti principi di progettazione.

In altri termini, i core delle GPU sono meno potenti rispetto ai core delle CPU, oltre a disporre di un minor quantitativo in termini di memoria. Le CPU possono passare molto rapidamente da un set di istruzioni all’altro, ma la GPU è in grado di processarne simultaneamente un volume decisamente più elevato, grazie alla parallelizzazione.

Per tali ragioni, le CPU sono utili per le attività che richiedono algoritmi sequenziali o eseguono calcoli statistici complessi. Tali compiti non sono comuni nelle moderne applicazioni di intelligenza artificiale, dato che la maggior parte delle aziende sceglie l’efficienza e la velocità delle GPU.

Tuttavia, le più recenti novità di Intel e AMD ci indicano come la direzione del calcolo nell’era degli AI PC sarà sempre più rivolta all’integrazione delle funzioni delle CPU e delle GPU, a cui è stata aggiunta una ulteriore unità di calcolo: la NPU (Neural Processing Unit), capace di sgravare la GPU stessa dei calcoli più frequenti e ripetitivi, ottimizzando ulteriormente i consumi energetici.

LEGGI ANCHE: NPU (Neural Processing Unit): cosa sono i processori per l’intelligenza artificiale degli AI PC

GPU e sistemi HPC: alla ricerca delle performance estreme

Le GPU rappresentano i componenti indispensabili per generare la potenza di calcolo grezza necessaria per l’analisi dei dati. Negli ultimi 30 anni, le GPU si sono evolute nell’architettura e nelle performance nei personal computer, nelle workstation, nei server e nei data center e continuano a dominare la scena per quanto riguarda l’elaborazione dei servizi gestiti in cloud.

In questo contesto non fa eccezione l’High Performance Computing (HPC), un insieme di tecnologie IT che consentono l’elaborazione in parallelo su larga scala, per soddisfare applicazioni notevolmente complesse, come il deep learning e le simulazioni scientifiche avanzate.

I primi sistemi HPC erano basati interamente su serie di CPU, mentre nelle loro più recenti implementazioni utilizzano ormai stabilmente le GPU. La condizione più diffusa prevede server HPC che sfruttano la sinergia delle CPU e delle GPU in un unico sistema fisico, nell’ottica di ottimizzare sia le performance che i consumi energetici.

I sistemi HPC impiegano un bus PCIe ottimizzato, grazie alla loro configurazione dual root, che consente un accesso efficiente alla memoria per un gran numero di processori. In estrema sintesi, in un server dual root sono presenti due processori principali con memoria dedicata. Il bus PCIe è pertanto suddiviso tra i due processori e la metà degli slot PCIe comunemente utilizzati per le GPU sono assegnati a ciascun processore.

LEGGI ANCHE: AI PC cosa sono e perché guideranno la riscossa dei computer nel 2024

GPU: l’evoluzione delle schede grafiche nell’era delle AI ultima modifica: 2024-03-26T16:26:27+01:00 da Francesco La Trofa

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui