Nel corso dei giorni passati Khronos Group ha ufficialmente
annunciato la ratifica dello standard OpenCL, con la pubblicazione delle
specifiche 1.0. OpenCL si pone così come il primo standard aperto,
libero da canoni di concessione e multipiattaforma destinato in modo particolare
alla programmazione parallela delle GPU di ultima e futura generazione.
Tratto dal progetto C99 portato avanti da Apple ed in seguito proposto
come base per lo sviluppo dello standard aperto, OpenCL ha conosciuto un'approvazione
in tempi da record con un cammino di appena sei mesi. Come detto OpenCL rappresenta
un elemento cruciale per la programmazione parallela in ambito GPGPU, ovvero
nell'utilizzo dei processori grafici di per impieghi general purpose.
Il nuovo standard aperto, infatti, permetterà agli sviluppatori di approcciarsi
alla programmazione parallela general purpose delle GPU senza la necessità
di dover imparare ed utilizzare un linguaggio specialistico per la programmazione
di processori grafici (come ad esempio sono OpenGL e DirectX). Mediante le librerie
e il linguaggio di programmazione di OpenCL, basato sul linguaggio di programmazione
C, i programmatori potranno sfruttare la potenza elaborativa delle moderne GPU
allo stesso modo in cui si affronta lo sviluppo di software per una normale
CPU.
Nel dettaglio, le specifiche 1.0 dello standard OpenCL definiscono:
-un sottoinsieme del linguaggio di programmazione C99 con estensioni per il
parallelismo
-API (Application Programming Interface) per la coordinazione della computazione
parallela data-based e task-based su una vasta gamma di processori eterogenei
-i requisiti numerici basati sullo standard IEEE 754 (standard che definisce
le rappresentazioni numeriche dei calcoli in virgola mobile)
-interoperabilità con gli standard OpenGL, OpenGL ES ed altre API grafiche.
Sebbene lo scopo primario di OpenCL sia fornire un migliore accesso alla programmazione
GPGPU, il nuovo standard aperto non è limitato solamente ai processori
grafici. Le librerie OpenCL ed il linguaggio di programmazione relativo, infatti,
saranno utilizzabili con qualunque tipo di processore: ciò significa
che anche smartphone, palmari, console, lettori multimediali potranno beneficiare
della programmazione in OpenCL.
Il gruppo di lavoro a supporto di OpenCL e che ha permesso di arrivare ad una
ratifica in tempi così rapidi conta, oltre alla già citata Apple,
nomi di grosso calibro come, DLABS, Activision Blizzard, AMD, ARM,
Barco, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, HI,
IBM, Intel Corporation, Imagination Technologies, Kestrel Institute,
Motorola, Movidia, Nokia, NVIDIA, QNX, RapidMind,
Samsung, Seaweed, TAKUMI, Texas Instruments e Umeå University.
Per meglio contestualizzare l'argomento segnaliamo come Apple abbia già
da tempo affermato che una delle novità più importanti che saranno
presenti in Snow Leopard sarà proprio l'implementazione di OpenCL:
in questo senso, la collaborazione che la società della mela mordicchiata
ha avviato con Nvidia, uno dei nomi principali nello sviluppo di GPU, assume
una valenza completamente diversa. A corredo di questo, segnaliamo come il presidente
di Khronos sia Neil Trevett, non a caso anche Vice presidente dei Mobile content
in Nvidia stessa. |
Evvaiii! Era ora!
Finalmente forse si comincerà ad avere un po' di ordine e una piattaforma su cui basarsi valita per ATI e NVIDIA!!!