| OpenCL 1.0: sfrutta le CPU multicore e le GPU e lo vedremo in azione con Snow Leopard |
|
|
| Notizie - Software |
| Mercoledì 10 Dicembre 2008 10:03 |
|
Le tecnologie GPGPU (General Purpose computing on Graphic Processing Unit), ossia il demandare al processore grafico alcuni calcoli normalmente eseguiti dalla CPU rappresentano la prossima frontiera dell'elaborazione. Ma fino ad oggi di questo ambito si è appena "grattata" la superficie. Nvidia sta spingendo CUDA, AMD/ATI ha risposto con Stream. Ma solo ora si cominciano a vedere dei risultati "tangibili" anche per gli utenti finali, sotto forma di applicazioni (vari encoder video o la recente suite Adobe CS4) che traggono vantaggio da questo approccio. Per questo motivo l'annuncio dello standard OpenCL 1.0 rappresenta un passo importante. OpenCL potrebbe mettere d'accordo un pò tutti, prendendo le distanze dagli approcci "proprietari" come CUDA e proponendo al suo posto un modello di sviluppo "cross platform", che garantisce interoperabilità tra piattaforme e tecnologie differenti. Semplificando al massimo possiamo dire che OpenCL sta all'accelerazione via GPU (ma anche via CPU multicore) come OpenGL sta alla grafica.
![]() Tra le prime ad "approfittare" della nuova tecnologia troviamo naturalmente Apple, che è stata l'iniziale promotrice di OpenCL e che già tempo fa aveva annunciato di essere al lavoro per integrare l'accelerazione OpenCL all'interno del sistema operativo Snow Leopard, nome in codice della prossima release di Mac OS X. Ma naturalmente il sistema operativo non sarà l'unico software ad avvantaggiarsi di OpenCL. Bertrand Serlet, senior vice president della divisione Software Engineering di Apple ha dichiarato "Stiamo lavorando affinché ogni applicazione con Snow Leopard possa trarre beneficio dalla potenza di elaborazione che in passato era disponibile solo alle applicazioni grafiche. E tutto questo grazie a OpenCL". Il rilascio delle specifiche 1.0 di OpenCL rappresenta dunque una vittoria importante per Apple, che aveva proposto una bozza di questo standard solo 6 mesi fa, ottenendo subito il supporto dei principali player del mercato della grafica e del computing. Nomi del calibro di 3DLabs, Activision Blizzard, AMD, ARM, Barco, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, HI, IBM, Intel, Imagination Technologies, Motorola, Nokia, Nvidia, QNX, RapidMind, Samsung e Texas Instruments. Qualcuno noterà che nell'elenco manca Microsoft... che raramente però prende una posizione su standard che non siano da lei stessa proposti, salvo poi adeguarsi nel momento in cui il mercato punta inevitabilmente in quella direzione. Lo standard OpenCL definisce un sottoinsieme del linguaggio di programmazione C99 (l'ultima versione di C, approvata come standard nel 1999), con estensioni specifiche per sfruttare il calcolo parallelo in conformità con lo standard IEEE 754 a doppia precisione, una API per coordinare i dati e un modello di calcolo che sfrutta un ampio range di processori (tra cui anche DSP e varianti di Cell) e che garantisce l'interoperabilità con altre API, quali ad esempio OpenGL e OpenGL ES. La versione 1.0 di OpenCL è stata rilasciata per testarne le prestazioni ed è già in sviluppo la versione 1.1, che arriverà nel corso del 2009 integrando nuove funzionalità. Al momento Nvidia e ATI stanno spingendo ognuna il proprio linguaggio GPGPU, pur avendo aderito ad OpenCL. Le applicazioni basate su questa API metterebbero dunque d'accordo le due aziende, potendo girare senza problemi sull'hardware di entrambe. Infatti sia AMD che Nvidia integreranno OpenCL nei propri kit di sviluppo per Stream e CUDA. Nvidia interpellata sull'argomento ha dichiarato che OpenCL abbraccia la stessa filosofia di CUDA, ma con un approccio meno "user friendly". CUDA insomma sarebbe più semplice da programmare anche per i programmatori non professionisti, ad esempio in ambito scientifico od accademico. Lo sviluppo quindi prosegue e da qui al 2009 sono annunciate tre nuove release di CUDA, tra cui la versione 3.0. Ma torniamo ad OpenCL. L'integrazione di OpenCL nel nuovo Mac OS X aprirà la strada ad applicazioni che finora abbiamo potuto solo immaginare. Ad esempio il riconoscimento vocale combinato con la lettura labiale attraverso un visual tracking via webcam, per incrementare la precisione nell'identificare le parole. E ancora applicazioni avanzate di riconoscimento facciale o dei gesti, per usare le mani come dispositivi di input (sullo stile di Minority Report) senza necessità di uno schermo touch.
![]() Naturalmente queste sono solo ipotesi. Al momento l'unica certezza è l'integrazione del supporto OpenCL nel sistema operativo. E l'assenza dello stesso invece in Windows 7. La prossima mossa ora spetta a Microsoft, che pare invece concentrata sulle proprie estenzioni GPGPU, che saranno parte dell'API DirectX 11 sotto il nome di Direct3D 11 Compute Shader. Fonte: Khronos Group Articoli correlati
Trackback(0)
Commenti (1)
![]()
... scritto da gu, giugno 14, 2010
secondo me alla microsoft faranno velocemente retrofront e cominceranno a supportae opencl pure loro, le potenzialità di usare la gpu per i calcoli sono sbalorditivi e se i prii programmi che usano opengl dovessero uscire prima che microsoft le adotti molta gente potrebbe giustamente scegliere un altro so per potrle usare, senza contare poi che gia molte applicazioni su altri so girano più velocemente e stabilmente che sul sistema operativo di casa microsoft
Scrivi commento
|


Khronos Group ha rilasciato la versione 1.0 delle specifiche OpenCL (Open Computing Language), che permetteranno agli sviluppatori di software di trarre vantaggio dalle capacità di calcolo parallelo dei processori multicore e delle moderne GPU. Lo standard ha tra i propri sostenitori tutti i principali player nel campo del computing e della grafica, da Intel a AMD a Nvidia. Ma i primi "assaggi" di questa tecnologia arriveranno con Snow Leopard, la prossima release del sistema operativo Mac OS X di Apple.










