Nvidia tra CUDA e OpenCL

Nvidia parla di OpenCL e di CUDA, i linguaggi di programmazione per GPU. Il primo è Open, il secondo è di sua proprietà. L'azienda non vede concorrenza da OpenCL, ma solo una possibilità per vendere più GPU.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Da diversi mesi a questa parte le operazioni di Nvidia sono concentrate su CUDA, il linguaggio di programmazione che permette di sfruttare le GPGPU dell'azienda per eseguire calcoli di qualsiasi tipo, non prettamente legati alla grafica.

Il general manager di Nvidia per CUDA, Manju Hegde, in un'intervista a Techreport, ha parlato ampiamente di questo linguaggio e di OpenCL, alternativa open giunta alla versione 1.0 che l'azienda non vede come concorrente, ma una possibilità in più per vendere GPU. Nvidia ha innanzitutto rivisto la terminologia: CUDA si riferisce all'architettura che permette di far funzionare applicazioni general-purpose su GPU Nvidia, mentre il linguaggio di programmazione è ora chiamato "C for CUDA". La tecnologia, assicura Hegde, è pensata per supportare molti linguaggi e API, da OpenCL alle DirectX11 a Fortran.

Nvidia ha intenzione di introdurre il supporto OpenCL "beta" nel primo trimestre del prossimo anno, con l'implementazione "totale" nel secondo trimestre.

Cliccare per ingrandire

Hegde ha spiegato le differenze tra C for CUDA e OpenCL. "OpenCL è progettato per essere "OpenGL-like" in quanto dà agli sviluppatori accesso completo e gli permette di amministrare operazioni quali l'inizializzazione dei dispositivi, l'allocazione dei buffer e l'amministrazione di memoria. C for CUDA, invece, offre due stili di programmazione: uno di alto livello dove l'abstraction level è allo stesso livello di C e un livello driver API che è sullo stesso livello di OpenCL".

Secondo Hegde le differenze prestazionali tra tra CUDA e OpenCL dipenderanno da come gli sviluppatori ripartiranno i loro algoritmi all'interno di thread multipli e come sfruttano l'architettura hardware. Lo stile di programmazione ad alto livello di C for CUDA, preferito da molti sviluppatori, potrebbe introdurre un decadimento delle prestazioni rispetto all'approccio di programmazione a basso livello, sottolinea Hegde, anche se si tratta di una considerazione estemporanea. Per questo Nvidia, afferma il general manager, permette di sviluppare attraverso due stili.

Infine, secondo quanto riportato dal sito Expreview, la roadmap Nvidia prevede la versione 2.1 di CUDA entro la fine dell'anno, seguita da altre versioni fino alla 3.0 attesa alla fine del 2009.