Le schede video hanno capacità di calcolo straordinarie. Per rispondere alle richieste di elaborazione dei giochi sono stati creati computer massicciamente paralleli specializzati per il calcolo in virgola mobile e le operazioni vettoriali, proprio quello che serve per il calcolo scientifico o le simulazioni.
Nvidia annuncia una catena di compilazione e strumenti hardware che permette di far stare una capacità di calcolo di 4 Teraflops in un PC casalingo con la modica spesa di 200 dollari per Teraflop.
Il software in grado di abilitare queste prestazioni da supercomputer è NVCC: un ambiente di compilazione basato sul linguaggio C con estensioni specifiche per il parallelismo che viene proposto da Nvidia con una licenza open source.
La catena di compilazione separa il codice che girerà sul processore primario, cioè sulla Cpu del computer, da quello che girerà sulle Gpu delle schede video, mentre il linguaggio ha estensioni per mettere a frutto la possibilità di attivare migliaia di thread in parallelo gestiti in hardware per segmentare un calcolo parallelo, come la testurizzazione di un poligono o una simulazione di fluidodinamica.
Secondo Nvidia, la parallelizzazione è una strada conveniente e economica, perché il numero di transistor dedicato alla Alu (unità aritmetico/logica) di una Cpu è relativamente piccolo rispetto al numero di transistor impiegati per la cache e la logica di controllo, da qui l’idea di sperimentare con cache ridotte e un grande numero di alu, per questo l’architettura della Gpu prevede una cache ridotta, ma un costo di un solo ciclo per schedulare un thread e comunicare tra thread.
Il codice per la Gpu è espresso in Ptx, un “linguaggio macchina” intermedio, che viene tradotto nel microcodice specifico della Gpu dalla Gpu stessa, quindi il software può gestire diverse configurazioni, da un sistema con una o più schede VGA a un array di Gpu ospitate in un box esterno, il Tesla.
Su un singolo PC si possono installare fino a quattro schede, mentre un sistema Tesla permette di arrivare a 4 Teraflops su un singolo PC.
È un segno dei tempi che parliamo per la seconda volta di calcolo parallelo, un’indicazione del fatto che il trend di crescita della velocità del clock delle CPU sta rallentando e si nutrono più speranze nella parallelizzazione per i prossimi incrementi di performance dato che l’incremento di velocità del clock comporta una produzione di calore che cresce più velocemente della frequenza di clock.
Questa democratizzazione del supercomputing è un’occasione interessante, di quelle che capitano una volta in una carriera, di battere una strada non ancora asfaltata e si può iniziare con una configurazione davvero minima: il PC e la scheda grafica, che ha tutta la potenza di calcolo di riserva che può servire per sperimentare mentre fa il suo mestiere di spostare le nostre finestre.
Le applicazioni per cui il calcolo scientifico può entrare in casa sono la trascodifica dei video, un processo che bene si presta benissimo alla parallelizzazione, oppure il trattamento di immagini e audio. Anche critografia e compressione offrono possibilità interessanti.
Per saperne di più developer.nvidia.com/CUDA.