darktable page lede image
darktable page lede image

Como funciona OpenCL

10.2.2. Como funciona OpenCL

Como puede imaginarse, las arquitecturas del hardware de los GPUs pueden variar significativamente. Hay diferentes fabricantes, e incluso diferentes generaciones de GPUs del mismo fabricante. Al mismo tiempo, los fabricantes de GPU usualmente no difunden todos los detalles de hardware de sus productos al público. Una de las consecuencias es la necesidad de utilizar drivers propietarios bajo Linux, si quiere tomar completa ventaja sobre su tarjeta gráfica.

Afortunadamente, un consorcio industrial liderado por The Khronos Group ha desarrollado una interfaz abierta y estándar llamada OpenCL. Esta le permite utilizar todo su GPU como un dispositivo de procesamiento numérico. OpenCL le ofrece un lenguaje de programación similar a C99 con un fuerte enfoque en el computo paralelo. Una aplicación que quiera utilizar OpenCL necesitará un código fuente en OpenCL que maneje un hardware con una rutina de compilador específica para OpenCL. De esta forma, la aplicación puede utilizar OpenCL sobre diferentes arquitecturas de GPU (incluso al mismo tiempo). Todos los secretos de hardware están escondidos en este compilador y usualmente no son visibles al usuario (o a la aplicación). El código compilado OpenCL se carga en su GPU y – con ciertas llamadas a la API – estará listo para realizar los cálculos por usted.