Discussione sull’articolo "OpenCL: da semplice verso una programmazione più perspicace"

 

Il nuovo articolo OpenCL: da semplice verso una programmazione più perspicace è stato pubblicato:

Questo articolo si concentra su alcune funzionalità di ottimizzazione che si aprono quando si tiene conto almeno dell'hardware sottostante su cui viene eseguito il kernel OpenCL. Le cifre ottenute sono lungi dall'essere valori limite, ma suggeriscono anche che avere le risorse esistenti disponibili qui e ora (l'API OpenCL implementata dagli sviluppatori del terminale non consente di controllare alcuni parametri importanti per l'ottimizzazione, in particolare la dimensione del gruppo di lavoro), il miglioramento delle prestazioni rispetto all'esecuzione del programma host è molto sostanziale.

In generale, i sistemi di memoria differiscono notevolmente l'uno dall'altro a seconda delle piattaforme del computer. Ad esempio, tutte le moderne CPU supportano la memorizzazione automatica dei dati nella cache al contrario delle GPU, dove questo non è sempre il caso.

Per garantire la portabilità del codice, in OpenCL viene adottato un modello di memoria astratto che i programmatori e i fornitori che hanno bisogno di implementare questo modello su hardware reale possono seguire. La memoria come definita in OpenCL può essere teoricamente illustrata nella Figura seguente:

Il modello di memoria OpenCL

Autore: Sceptic Philozoff

Motivazione: