darktable page lede image
darktable page lede image

Come funziona OpenCL

10.2.2. Come funziona OpenCL

Come potete immaginare le architetture hardware delle diverse GPU possono variare sensibilmente. I produttori sono diversi e ogni produttore può avere in commercio diverse generazioni di GPU differenti tra di loro. Ovviamente i produttori di GPU non svelano mai completamente tutti i dettagli del loro hardware al pubblico. La conseguenza immediata più conosciuta è la necessità di dover utilizzare drivers proprietari anche in Linux se volete sfruttare appieno la vostra scheda grafica.

Fortunatamente un consorzio industriale guidato da The Khronos Group ha sviluppato un'interfaccia standard e aperta chiamata OpenCL che permette di utilizzare la GPU come un processore numerico. OpenCL utilizza un linguaggio di programmazione simile al C99 focalizzato fortemente sul calcolo parallelo. Un'applicazione che vuole utilizzare OpenCL ha bisogno dei sorgenti di OpenCL stesso e li utilizzerà con uno specifico compilatore run-time. In questo modo l'applicazione può usare OpenCL su diverse architetture di GPU (anche contemporaneamente). Tutti i «segreti» dell'hardware sono nascosti all'interno del compilatore e non sono visibili all'utente (o all'applicazione). Il codice OpenCL viene caricato all'interno della vostra GPU e - grazie a precise chiamate - è pronto ad effettuare i vostri calcoli.