C’è più velocità e potenza nel mondo delle applicazioni grazie al lancio, da parte di Nvidia, di un sostanziale aggiornamento di Cuda. La nuova piattaforma di programmazione e calcolo in parallelo, arrivata alla versione 5, offre diverse novità rispetto alle precedenti release ed estende i suoi benefici di accelerazione di performance anche a settori diversi dal gaming e dall’elaborazione grafica, come la medicina, la difesa e l’industria aerospaziale.
Disponibile per sistemi operativi Windows 8, 7 e Vista ma anche per alcune distribuzioni Linux e per Mac OS X, Cuda 5 sfrutta la potenza della Gpu della serie GeForce, Tesla e Quadro, per il calcolo parallelo, ora non più solo riservate agli sviluppatori di videogiochi ma anche ad altri ambiti non propriamente grafici.
Con questa versione, infatti, Nvidia introduce il “parallelismo dinamico”: ogni Gpu thread può generare nuovi thread, riducendo al minimo l'interscambio di dati e la trasmissione dei dati e con la Cpu. Con questa funzione viene semplificata al massimo la programmazione parallela. Inoltre, la Gpu ora può accelerare molti algoritmi presenti in varie applicazioni, come quelli utilizzati per l’adaptive mesh refinement.
Con la nuova libreria Cuda Blas, inoltre, adesso i developer possono utilizzare il parallelismo dinamico per le loro Gpu-callable Libraries, e progettare plug-in API che permettono ad altri sviluppatori di estendere le funzionalità dei loro kernel e implementare callback sulla Gpu per personalizzare le funzionalità delle Gpu-callable Libraries di terze parti. La capacità di “object linking” offre un processo efficiente per lo sviluppo di applicazioni su Gpu, consentendo agli sviluppatori di compilare file sorgenti Cude multipli in object file separati, e poi riunirli in applicazioni più grandi e a librerie.
Da sottolineare, tra le nuove funzionalità, anche la tecnologia GpuDirect, che permette la comunicazione diretta tra Gpu e altri dispositivi Pci-E e supporta l’accesso diretto alla memoria fra il chip grafico e le schede di rete. Questa tecnologia, inoltre, riduce significativamente la latenza MPISendRecv tra i nodi Gpu in un cluster e migliora le performance complessive.
Esempi di applicazioni realizzate con Cuda
Infine,
Nvidia Nsight Eclipse Edition consente ai programmatori di sviluppare, effettuare il debug e profilare le applicazioni Gpu nell’ambito Eclipse-based IDE su piattaforma Linux e Mac OS X. Grazie a un editor e a sample Cuda integrati, la generazione di codice Cuda risulta velocizzata, mentre il refactoring automatico di codice facilita il porting su kernel Cuda. Un sistema integrato offre analisi delle performance automatiche e guida l’utente step-by-step per rimediare ai colli di bottiglia nella programmazione, mentre l’evidenziazione della sintassi rende più semplice differenziare il codice Gpu da quello Cpu.