NVIDIA Tesla T10: GPU Computing di seconda generazione

NVIDIA Tesla T10: GPU Computing di seconda generazione

La seconda generazione di sistemi NVIDIA Tesla, per elaborazioni GPU Computing, utilizza i 240 stream processors delle nuove architetture GT200 per sfruttare la GPU con elaborazioni che non siano grafiche. Raddoppio delle prestazioni e introduzione della double precision tra le caratteristiche peculiari.

di pubblicato il nel canale Schede Video
NVIDIATesla
 

GeForce, Tesla e Quadro

Poco meno di 1 anno fa NVIDIA ha presentato ufficialmente la prima generazione di prodotti della famiglia Tesla: con questo nome vengono indicate soluzioni basate su GPU specificamente destinate all'utilizzo in ambiti di calcolo parallelo, scollegate quindi dall'abituale ambito di utilizzo con applicazioni 3D.

Alla base di quella generazione di prodotti troviamo le GPU della serie G80, nome in codice che indica i chip video utilizzati da NVIDIA per le soluzioni video desktop della famiglia GeForce 8800. Quell'architettura, presentata nella prima forma nel mese di Novembre 2006, è stata la prima di NVIDIA a proporre un approccio con shader unificati e piena programmabilità, elemento fondamentale per poter utilizzare la potenza elaborativa propria di una GPU per elaborazioni che non siano quelle classiche di un'applicazione 3D.

Per quale motivo si vuole utilizzare una GPU, architettura sviluppata specificamente con la finalità di garantire le migliori prestazioni possibili con software 3D, per elaborazioni che hanno ben poco a spartire con queste ultime? La risposta a questa domanda è estremamente semplice: la necessità di velocizzare il più possibile le operazioni di calcolo rispetto a quanto sia oggi disponibile con i processori più veloci. In che misura le GPU possono garantire un vantaggio prestazionale sulle CPU nell'elaborazione di calcoli non 3D? Nel momento in cui le operazioni che devono essere seguite ricalcano il tipico set di elaborazioni che una GPU esegue in un gioco o applicazione 3D: elevato parallelismo delle istruzioni.

Se un'applicazione è per sua natura di tipo parallelo, cioè è composta da tanti thread che possono essere eseguiti uno accanto all'altro da varie unità di elaborazione senza diretta interrelazione l'uno con l'altro, le GPU permettono di evidenziare chiari ed evidenti vantaggi prestazionali rispetto alle CPU. E' del resto la loro architettura di base, quella dell'integrare un elevato numero di core indipendenti che prendono il nome di stream o thread processors, che permette a queste unità di elaborazione di eccellere in quegli ambiti nei quali il parallelizzare l'esecuzione del codice è possibile.

Sino a poco fa abbiamo indicato questo ambito di elaborazione come quello GPGPU, General Purpose GPU, intendendo con questo l'utilizzo delle GPU per ambiti di elaborazione non grafici. Questo concetto è presente nel mercato da tempo, in quanto i primi esperimenti di elaborazione non grafica con le GPU risalgono al 2002. In quel caso, e sino al debutto delle architetture a shader unificati, è sempre mancato un approccio alla programmazione delle GPU che fosse accessibile ai programmatori in modo semplice, senza costringere loro di fatto ad adeguare il loro codice al tradizionale approccio utilizzato dalle GPU per le elaborazioni grafiche, cioè quello di utilizzare ed elaborare triangoli.

Per questo motivo ora parliamo di GPU Computing, cioè della possibilità di elaborare utilizzando la potenza di calcolo di una GPU e servendosi di questa con un approccio alla programmazione che sia il più possibile vicino a quanto abitualmente utilizzato dai programmatori che si appoggiano a CPU per le proprie applicazioni. L'introduzione delle prime architetture a shader unificati ha di fatto permesso di rendere maggiormente accessibili le GPU quale strumento di elaborazione general purpose, semplificando l'approccio dei programmatori non più costretti a programmare direttamente utilizzando un linguaggio basato su quello delle API 3D.

1.jpg (36339 bytes)

NVIDIA propone differenti linee di prodotti tutti basati sulla stessa architettura di GPU; Tesla è il brand utilizzato per identificare le soluzioni per elaborazioni parallele, mentre con il nome di Quadro sono raccolte tutte le schede destinate all'utilizzo in workstation grafiche. GeForce è il brand sicuramente più conosciuto dal pubblico, in quanto identifica le soluzioni video per sistemi desktop o notebook destinate ai videogiocatori e a coloro che necessitano di un sottosistema video più o meno avanzato.

Se alla base delle 3 famiglie di prodotti troviamo la stessa tipologia di architettura, è evidente che sulla carta sia possibile utilizzare indifferentemente uno di questi prodotti per elaborazioni di GPU Computing: NVIDIA ha infatti optato per non vincolare l'utilizzo delle proprie GPU per elaborazioni di calcolo alle sole soluzioni Tesla, volendo in questo modo dare il più possibile spazio ai possessori di proprie GPU programmabili. La risultante è una base disponibile, al momento attuale, di circa 70 milioni di GPU che possono venir utilizzate in abbinamento a CUDA, linguaggio di programmazione di tipo C sviluppato da NVIDIA che permette al programmatore di utilizzare le GPU per elaborare il proprio codice.

geforce_logo.jpg (8894 bytes)quadro_logo.jpg (8798 bytes)tesla_logo.jpg (8756 bytes)

Cosa distingue quindi le 3 tipologie di prodotti? Le soluzioni Tesla sono quelle specificamente sviluppate per GPU Computing, proponendo alcune caratteristiche tecniche che si rivelano particolarmente utili a chi deve eseguire elaborazioni con set di dati particolarmente ampi. Le soluzioni Quadro mantengono lo stesso livello qualitativo delle soluzioni Tesla, ma implementano anche le funzionalità di visualizzazione a display che possono rivelarsi utili nel momento in cui l'elaborazione GPU Computing venga affiancata ad un utilizzo più tradizionale della scheda video per funzionalità grafiche di stampo professionale. La serie di prodotti GeForce, infine, viene da NVIDIA indicata come soluzioni per il development: una scheda video GeForce è facilmente accessibile da chiunque, partendo dai prodotti più economici, ma mette a disposizione le stesse potenzialità in elaborazione GPU Computing delle soluzioni più potenti con ovviamente limitazioni in termini prestazionali.

Analizziamo ora quali siano le novità introdotte da NVIDIA all'interno della seconda generazione di prodotti Tesla, indicati come Tesla serie 10 per affinità con le GPU GT200 di decima generazione.

 
^