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 Paolo Corsini pubblicato il 17 Giugno 2008 nel canale Schede VideoNVIDIATesla
Incrementi prestazionali
Abbiamo evidenziato, nell'analisi architetturale, come una delle principali innovazioni introdotte da NVIDIA con le soluzioni Tesla serie 10 sia l'implementazione della double precision, caratteristica che è parsa subito essere la principale limitazione all'adozione della prima generazione di soluzioni Tesla per quegli ambiti di elaborazione che possono essere impostati con una elevata parallelizzazione del codice.
E' bene ricordare come non tutti gli ambiti di elaborazione necessitino di double precision: per alcuni quella single precision è ideale in quanto permette di ottenere tempi di elaborazione particolarmente ridotti, mentre in altri ambiti ci si può addirittura accontentare di half precision, così da velocizzare ulteriormente l'esecuzione. Un esempio pratico sono le elaborazioni sul genoma, con le quali l'utilizzo della single precision è più che sufficiente; in ambito finanziario la possibilità di eseguire elaborazioni in double precision è invece un elemento di notevole portata, che dovrebbe portare ad un'accelerazione nell'adozione di GPU per le elaborazioni da parte delle aziende impegnate in questi ambiti.
NVIDIA ha fornito alcune analisi comparative che permettono di evidenziare quale sia l'incremento prestazionale ottenibile passando da soluzioni Tesla della serie G80 a quelle di nuova generazione, indicate con il nome di T10P: si noti come gli incrementi partano da un raddoppio, chiaramente giustficato dal passaggio a 240 thread processors dagli originari 128 delle architetture G80, per evidenziare margini ancor più elevati con quelle applicazioni che beneficino, per il loro particolare dataset, di una maggiore dotazione di memoria video.
Evidenziamo in particolare i risultati ottenuti con Reverse Time Migration, che permettono di evidenziare come l'incremento nel quantitativo di memoria video montata sulla nuova generazione di scheda Tesla permetta di ottenere significativi incrementi prestazionali che vanno ben oltre quanto ottenibile grazie all'incrementato numero di stream processors e alle ottimizzazioni interne alla GPU. Il passaggio alla nuova GPU, in questo caso, ha portato ad una scalabilità di 1,9x ferma restando la dotazione di memoria video rispetto alla scheda Tesla G80; portando la memoria a 4 GBytes si è giunti invece ad un incremento delle prestazioni di 3,5x rispetto al valore iniziale. E' bene segnalare come NVIDIA non preveda di commercializare una scheda Tesla T10 con 1,5 Gbytes di memoria video: questi risultati sono stati infatti ottenuti con un engineering sample preliminare dotato di quel quantitativo di memoria.
Il punto di riferimento per valutare quali possano essere i benefici prestazionali dati dall'utilizzo di GPU per elaborazioni parallele tipicamente delegate alle CPU è indubbimente il confronto con quanto ottenibile con i processori: NVIDIA ha evidenziato, con la nuova famiglia di soluzioni Tesla, livelli di incrementi prestazionali variabili a seconda del tipo di codice eseguito ma in generale estremamente elevati. Incrementi che sfiorano le 150 volte sono ovviamente ottimi veicoli marketing, ottenuti sfruttando codice che si adatta in modo pressoché ideale all'elaborazione parallela via GPU; nella maggior parte dei case study che NVIDIA ci ha mostrato è stato possibile evidenziare miglioramenti medi nei tempi di elaborazione nell'ordine di 10x, risultato che richiederebbe ingenti investimenti in server tradizionali per poter essere anche solo avvicinato.
Un ambito di elaborazione da poco accessibile anche con architetture GPU NVIDIA è quello Folding@Home: nei dati forniti da NVIDIA si evidenzia come una GPU Tesla serie 10 sia in grado di eseguire un numero di simulazioni estremamente più elevato rispetto a quello di un processore moderno, distanziando nettamente in questo sia la cpu Cell integrata nella console Sony Playstation 3 che una fantomatica "GPU rossa" che facilmente identifichiamo nelle soluzioni RV670 di ATI.
Nel corso delle prossime settimane l'università di Stanford, responsabile di questo progetto, renderà ufficialmente disponibile una versione pubblica del client per GPU NVIDIA, utilizzabile non solo con le nuove architetture di decima generazione ma anche con le altre GPU programmabili, dalla serie GeForce 8 in poi.