PDA

View Full Version : [CUDA] Come inizio?


birmarco
18-11-2010, 14:31
Ciao a tutti, vorrei imparare a programmare applicazioni utilizzando il nuovo "linguaggio" CUDA. A quale linguaggio mi devo appoggiare e quindi imparare per poter iniziare? Conosco un po' di VB.Net, basi di JAVA, un pochino di C++. Con che programma dovrei lavorare? Visual Studio?
Non so neanche come cominciare.. qualcuno mi può aiutare?

GRAZIE 1000!! :)

Torav
18-11-2010, 20:54
L'unico linguaggio per cui esista un compilatore stabile è il c++ (fortran mi pare sia ancora in beta mentre c è deprecato). Prima di tutto conviene che ti leggi un po' della documentazione che si trova sul sito NVIDIA, poi ci sta qualche tutorial carino in rete. Quello di dr dobbs non era male (anche se le prime lezioni sono un pochino "datate" vale cmq la pena di leggerle). Per programmare io uso eclipse ma immagino che visual studio vada benissimo.

Tommo
18-11-2010, 21:42
Fai anche conto che problemi tipici di basso livello (stile C) come doppi e tripli puntatori, cache-friendliness, unrolling dei loop, stima della banda di memoria sono all'ordine del giorno...
insieme a grattacapi tutti nuovi come accessi atomici, sincronizzazione dei path esecuzione, coalescing degli accessi e multithreading massiccio.

La "combo" migliore per iniziare è proprio VS + C++, che è anche l'unica che è spiegata sul manuale di CUDA, quindi direi che non si scappa.

birmarco
19-11-2010, 15:12
L'unico linguaggio per cui esista un compilatore stabile è il c++ (fortran mi pare sia ancora in beta mentre c è deprecato). Prima di tutto conviene che ti leggi un po' della documentazione che si trova sul sito NVIDIA, poi ci sta qualche tutorial carino in rete. Quello di dr dobbs non era male (anche se le prime lezioni sono un pochino "datate" vale cmq la pena di leggerle). Per programmare io uso eclipse ma immagino che visual studio vada benissimo.

Fai anche conto che problemi tipici di basso livello (stile C) come doppi e tripli puntatori, cache-friendliness, unrolling dei loop, stima della banda di memoria sono all'ordine del giorno...
insieme a grattacapi tutti nuovi come accessi atomici, sincronizzazione dei path esecuzione, coalescing degli accessi e multithreading massiccio.

La "combo" migliore per iniziare è proprio VS + C++, che è anche l'unica che è spiegata sul manuale di CUDA, quindi direi che non si scappa.

Grazie delle risposte! :)

Ieri ho già iniziato a fare alcune prove in C++... ma già i primi problemi.
Il compilatore non supporta la versione del file cl.exe (per VS 2010) e mi dice che vuole la versione 9 (2008) o 8 (2005) però nella directory di Visual Studio non c'è traccia del file cl.exe... c'è solo nella directory di VS 2010! Che faccio?

altra domanda: il visual c++ è "uguale" al c++ per CUDA?

Ho già iniziato a leggermi le guide integrate al SDK toolkit... lunghette! :asd: Proverò a cercare anche lòe vostre! :)