cómo funciona opencl
Como puede imaginar, la arquitectura de hardware de las GPU puede variar significativamente. Hay diferentes fabricantes, e incluso diferentes generaciones de GPU del mismo fabricante pueden no ser comparables. Al mismo tiempo, los fabricantes de GPU normalmente no divulgan todos los detalles del hardware de sus productos al público. Una de las consecuencias de esto es la necesidad de usar controladores propietarios bajo Linux, si desea aprovechar al máximo su tarjeta gráfica.
Afortunadamente, un consorcio de la industria liderado por The Khronos Group ha desarrollado una interfaz abierta y estandarizada llamada OpenCL, que permite que su GPU se utilice como un dispositivo de procesamiento numérico. OpenCL ofrece un lenguaje de programación similar a C99 con un fuerte enfoque en la computación paralela. Una aplicación que quiera usar OpenCL necesitará el código fuente OpenCL que entrega a un compilador específico de hardware en tiempo de ejecución. De esta forma, las aplicaciones pueden usar OpenCL en diferentes arquitecturas de GPU (incluso al mismo tiempo). Todos los “secretos” de hardware están ocultos en este compilador y normalmente no son visibles para el usuario (o la aplicación). El código OpenCL compilado se carga en su GPU y, con ciertas llamadas a la API, está listo para realizar cálculos por usted.