venerdì 5 agosto 2011

GPGPU: schede video che vogliono essere CPU

Nonostante il settore desktop computer sia sempre più una minoranza, a causa del fatto che gli utenti preferiscono orientarsi più su notebook, tablet, smartphone e quant’altro, i maggiori produttori di schede video discrete, ovvero ATI (ora divenuta AMD) e nVidia continuano imperterriti a sfornare schede destinate al settore desktop sempre più potenti, facendosi una feroce concorrenza senza sosta.
Questo perché il loro obiettivo non è soltanto fare profitti in QUEL settore (costituito soltanto da una minoranza degli utenti), ma anche quello di mettersi in mostra, sfoggiando le loro ultime tecnologie, in modo tale che i produttori (anche in altri settori) siano più orientati ad adoperare una soluzione piuttosto che un’altra.

Le schede video sono nate in ambito gaming, dove l’aumento del numero dei poligoni e l’aumento degli effetti degli scenari 3D cominciarono a mandare in crisi la CPU, che già si doveva occupare di far girare il sistema operativo e di creare le cosiddette “primitive”, ovvero i modelli che vanno a creare la scena 3D. La fase che trasforma questi modelli in pixel è detta “rasterizzazione”, ed è la fase più pesante in termini di calcoli. Ecco quindi la necessita di realizzare una unità di calcolo a parte, progettata e realizzata solo per eseguire la rasterizzazione.

Le storiche avversarie nel settore GPU

Il resto dalla storia è abbastanza nota, schede video sempre più potenti e sempre più vicine, in termini di consumi e calore generato, alle CPU. Siamo arrivati a tal punto che, in termini di potenza “bruta”, una GPU è notevolmente più potente di una CPU, anche di fascia alta. Perché dunque ridursi a sfruttare questa potenza enorme solo per la grafica? In realtà il compito della CPU è notevolmente più complicato, perché non si limita a dover eseguire le stesse operazioni, come avviene nelle GPU.

nVidia, il maggior produttore di GPU (sebbene non sia in una situazione di predominio rispetto ad AMD, che detiene anch’essa una bella fetta di mercato), ha deciso oramai da anni di puntare forte su questo settore, con una tecnologia chiamata nVidia CUDA. AMD si è subito accodata proponendo anch’essa una propria soluzione, chiamata ATI Stream. Tuttavia, a causa della maggiore facilità d’implementazione di CUDA rispetto a Stream, gli sviluppatori sono tutt’ora maggiormente orientati  sull’utilizzo della soluzione nVidia.

Riuscire a creare GPU di dimensioni ridotte garantisce una maggiore resa a parità di area e un minore scarto dei chip esterni

Il primo passo compiuto dall’azienda di Santa Clara è stata l’acquisizione di Ageia, una società che aveva iniziato a produrre schede dedicate al solo calcolo della fisica. Successivamente, sfruttando le conoscenze acquisite da quest’ultima, ha iniziato prima un’implementazione a livello software (a partire dall’architettura G80) e infine una a livello hardware, rendendo l’architettura delle proprie GPU maggiormente orientata al settore GPGPU. Quest’ultimo passaggio non è stato proprio indolore, infatti mentre nVidia è da sempre bravissima a fornire driver di buona qualità per i propri prodotti, in ambito hardware non è mai riuscita a surclassare AMD (o meglio sono stati bravi gli ingegneri ATI ad essere sempre competitivi nonostante le minori risorse).

Se prima quindi nVidia non riusciva a sopravanzare nettamente l’avversario in termini di prestazione nel settore desktop, ora da quando hanno cominciato la progettazione dei propri chip grafici in modo da essere orientati anche al calcolo parallelo non destinato alla grafica, l’indice delle prestazioni per watt pende considerevolmente a favore di AMD/ATI. Per ottenere le stesse prestazioni infatti, nVidia è costretta a realizzare chip di grosse dimensioni (il che costituisce un grosso fattore di perdita economica), con consumi molto elevati. Inoltre, la progettazione del loro ultimo chip, con architettura denominata “Fermi” (in onore al fisico italiano), ha incontrato grosse difficoltà, che ha portato ad un notevole ritardo nel suo rilascio. Oltretutto pare che anche l’architettura “Kepler” (successore di Fermi) stia subendo ritardi.

Alla presentazione di "Fermi", nVidia mostrò una scheda FINTA perché non era ancora pronta!

AMD e nVidia quindi adoperano due approcci differenti per affrontare il settore GPGPU. Per capire in che modo, vediamo in che modo operano nel settore server.
La soluzione AMD è chiamata FireStream, sono schede basate su GPU realizzate per calcoli di grafica e successivamente, tramite implementazioni software, convertite al calcolo parallelo.
A fronte dei problemi sopracitati, le soluzioni nVidia Tesla sono schede sempre basate sulle stesse GPU che troviamo nelle schede video, ma queste ultime non sono progettate principalmente per la grafica ma sono realizzate in modo da  adeguarsi molto bene a questo settore, e le prestazioni in questo caso sono nettamente a favore delle Tesla.

Il GPGPU tuttavia non è rivolto soltanto al settore server, infatti le tecnologie CUDA e Stream di cui parlavo prima sono implementazioni destinate a computer desktop, che al momento vengono sfruttate soltanto da un numero limitato di programmi.
La sfida alle CPU è lanciata, Intel e AMD stessa hanno risposto proponendo processori con parte grafica integrata. Lo scenario hardware è sempre più in vena di cambiamento e purtroppo sempre più complicato. 


1 commento:

  1. Ciao, il tuo articolo mi è piaciuto molto, da tempo mi sto informando su questo settore della ricerca informatica e il tuo articolo mi ha dato molte informazioni per la mia relazione, grazie :)

    RispondiElimina