OpenCL 2.0 è pronto: CPU e GPU in rapporti sempre migliori

di Manolo De Agostini, 19 novembre, 2013 07:30

Seconda versione per lo standard aperto per la programmazione parallela di GPU e CPU multi-core. OpenCL 2.0 porta diverse novità integrate grazie ai suggerimenti degli sviluppatori.

Le specifiche OpenCL 2.0 sono finalmente pronte. Il Khronos Group ha annunciato la ratifica e il rilascio al pubblico dello standard royalty-free - cioè libero da oboli di qualsiasi tipo - nato per semplificare la programmazione parallela "cross-platform", ovvero non legata a una singola piattaforma. OpenCL è cruciale per tutte quelle aziende che stanno lavorando per far sì che i chip diventino un prodotto eterogeneo, con GPU e CPU che lavorano in armonia sullo stesso tipo di dati, velocizzando operazioni che oggi richiedono molto tempo.

Si può dire quindi che OpenCL 2.0 è una lieta novella per aziende come AMD che stanno lavorando su chip basati su architettura HSA (come la futura APU Kaveri). "Khronos ha ricevuto il feedback dagli sviluppatori dopo la distribuzione della versione provvisoria di OpenCL 2.0. Gran parte dei suggerimenti sono stati adottati o saranno integrati con l'arrivo di capacità hardware che permetteranno alla programmazione parallela di continuare a evolversi", ha dichiarato Neil Trevett, a capo dell'OpenCL working group, presidente del Khronos Group e vicepresidente per i contenuti mobili di Nvidia.

"OpenCL continua a raccogliere consensi su PC desktop, dispositivi mobili ed embedded. Offre inoltre un ambiente di programmazione unificato per bilanciare dinamicamente diverse CPU, GPU, DSP e risorse hardware nei SOC mobile per svolgere compiti che vanno dalla realtà aumentata alla simulazione della fisica per il gaming".

Sono tante le novità integrate in OpenCL 2.0, a partire dalla memoria virtuale condivisa. Kernel host e device possono condividere direttamente strutture di dati complessi con puntatori come alberi e liste collegate, in modo da offrire una flessibilità di programmazione decisamente maggiore ed eliminando costosi trasferimenti di dati tra l'host e i dispositivi.

Sotto la voce Nested Parallelism si nasconde una caratteristiche che consente ai kernel dei dispositivi di mettere in coda kernel allo stesso dispositivo senza alcuna interazione host, consentendo uno scheduling flessibile ed evitando il trasferimento del controllo dell'esecuzione e dei dati tra dispositivo e host, spesso incappando nei colli di bottiglia creati dal processore. In parole più "povere" la GPU è in grado di programmare le proprie operazioni e ridurre le chiamate non necessarie verso la CPU.

Lo spazio d'indirizzamento generico permette a funzioni di essere scritte senza specificare un address space named per gli argomenti e questo è utile in particolare per quegli argomenti che sono stati dichiarati essere un puntatore di un determinato tipo, eliminando la necessità di scrivere funzioni multiple per ogni address space named usato in un'applicazione.

Il nuovo standard migliora anche il supporto alle immagini sRGB e 3D, permette ai kernel di leggere e scrivere dalla stessa immagine e consente la creazione di immagini OpenCL da texture OpenGL mip-mapped o multi-sampled per migliorare l'interoperabilità OpenGL. Per quanto concerne le Atomic operations library, troviamo un sottoinsieme di C11 e operazioni di sincronizzazione per far sì che le assegnazioni in un elemento di lavoro (work item) siano visibili agli altri elementi di un gruppo di lavoro, lungo gruppi in funzione su un dispositivo o per la condivisione dei dati tra il dispositivo OpenCL e l'host.

Nvidia spinge CUDA ma tiene il piede in due scarpe

A tutto questo si aggiungono le cosiddette "Pipes", memory objects che aiuteranno a immagazzinare dati organizzati nel metodo FIFO e con OpenCL 2.0 offriranno funzioni che consentiranno ottimizzazioni usando le funzioni integrate per far sì che i kernel possano leggere e scrivere direttamente nelle pipes. Infine ecco una migliore compatibilità con Android grazie a un'estensione che permette alle implementazioni OpenCL di essere rintracciate e caricate come oggetti condivisi su sistemi dotati del sistema operativo mobile di Google. Questa caratteristica dovrebbe facilitare il caricamento dei driver OpenCL di secondo e terze parti.

Ti potrebbe interessare anche:

 

Notizie dal web

 

Commenti dei lettori (5)

Tsaeb 19/11/2013 08:41
+13
la storia ci insegna che le tecnologie opensource sono sempre la scelta migliore per noi consumatori.
silvio3d 19/11/2013 08:54
+2

 Originariamente inviata da Tsaeb

la storia ci insegna che le tecnologie opensource sono sempre la scelta migliore per noi consumatori.


non direi sempre

Spesso le tecnologie opensource sono supportate da una parte dei vendor e poi si creano infiniti fork che sprecano le risorse in tante versioni diverse ma quasi uguali della stessa tecnologia, quando magari una tecnologia propietaria viene invece usata da tutti e supportata allo stesso modo da tutti i vendor di tutti i tipi.
Quindi si, possono essere migliri in certi casi ma altrettanto lo possono essere quelle propietarie come la storia ha mostrato un infinita di volte.
Puntare solo verso una rispetto all'altra significa il piu delle volte avere una presa di posizione piu di natura religioca che per motivi tecnici.

Restando sull'argomento per esempio opencl rispetto a cuda non viene quasi considerato in tanti ambienti profesionali, anche se è multi verdor ha un supporto e una difficolta di sviluppo comunque superiore alla controparte closed. Quindi l'utente finale alla fine si fa ben poco di uno standard open se poi non vien supportato a dovere dall'hardware e dal software che possiede, certo sarebbe bello che questo accada ma se non lo fa non si puo aspettare in eterno che uno standard diventi tale quindi si punta sul cavallo vincente closed.
boboviz 19/11/2013 09:05
+2

 Originariamente inviata da silvio3d


Quindi l'utente finale alla fine si fa ben poco di uno standard open se poi non vien supportato a dovere dall'hardware e dal software che possiede, certo sarebbe bello che questo accada ma se non lo fa non si puo aspettare in eterno che uno standard diventi tale quindi si punta sul cavallo vincente closed.



Vero. Io quello che spero è una maggior competizione sia a livello sw (tra Cuda, OpenCl, ecc) che a livello hw. La competizione, di solito, porta a cercare miglioramenti (almeno in informatica) e a non sedersi sugli allori. A guadagnarci, alla fin fine, dovrebbero essere sempre i consumatori.
catyaa 19/11/2013 09:44
-9
C'e' un problema di fondo: il consumatore consuma qualcosa che qualcun altro ha creato.

Ora utilizzare una piattaforma opensource hanno il grosso difetto che oggi e' supportata, ma domani chissa'. Oppure da un momento all'altro si creano nuove versioni che sono solo parzialmente compatibili con quelle precedenti.

Questo implica che chi deve sviluppare, non solo deve mantenere il proprio software, ed aggiornarlo quando vengono introdotte nuove interfacce utente, o quando vengono richieste nuove funzionalita', ma anche perche' la nuova piattaforma non e' compatibile con la precedente.

E' ovviamente si deve mantenere anche la precedente!

Doppio lavoro di sviluppo manutentivo a scapito di ben piu' interessante (e utile per l'utente finale, ricordiamocelo) sviluppo evolutivo.

Tanto e' opensource!

(Ne so qualcosa con Python 2 e Python 3!!!)
hardstyler 19/11/2013 14:39
0
sono in grado di usare certe cose ma mi son sempre chiesto come mai applicativi per conversioni video non hanno mai sfruttato mai l'hw delle schede video amd che ho avuto fin'ora. questi programmi sono fatti apposta eh, rilevano pure che hai l'accelerazione, poi quando metti su un video da convertire ti ritrovi si l'utilizzo della gpu ma i tempi si allungano di brutto rispetto alla conversione con la sola cpu. a questo punto mi vien da pensare che questi software hanno solo l'opzione perchè poi non sanno sfruttare l'hw altrimenti non me lo spiego. Per Cuda invece non posso dire nulla perchè non ho mai avuto schede nvidia a parte la lontanissima GeForce Ti 4200.
Devi essere collegato scrivere un commento!

Accesso utenti

Nome utente:
Password:

Guarda anche: Processori, Schede Video
 
Segui Tom's Hardware!
Informazioni su Tom's Hardware
powered by
Powerd by Aruba Cloud Powerd by Intel Powerd by Dell

Copyright © 2014 - 3Labs Srl - A Purch Company. Tutti i diritti riservati.
P.Iva 04146420965 - Testata registrata presso il Tribunale di Milano, nr. 285 del 9/9/2013
Clicca per i dettagli