Tarjetas gráficasTutoriales

¿Qué es OpenCL? Descubre su importancia en las tarjetas gráficas

Vemos el término «OpenCL» en muchas noticias relacionadas con las tarjetas gráficas, pero, ¿sabes lo qué es? En este artículo os daremos todas las claves y porqué es tan importante en las tarjetas gráficas actuales. Tanto en juegos como para desarrolladores.

OpenCL nace en 2008 de la mano de Khronos Group, pero fue una propuesta inicial por varios gigantes tecnológicos, entre los que se encuentran el nombre de Intel, NVIDIA, AMD e IBM, por ejemplo. Nació como un estándar, pero estamos seguros de que no todos sabéis lo qué realmente es.

Qué es OpenCL

OpenCL

Hace referencia a «Open Computing Language» y se trata de un estándar abierto para cross-platform, es decir, para la computación paralela (parallel computing). Con cross-platform, nos referimos al software que puede funcionar en distintos sistemas operativos. Por este motivo, el primer S.O en soportarlo fue Snow Leopard.

OpenCL fue una propuesta inicial realizada por Apple en colaboración con los equipos técnicos de AMD, IBM, Qualcomm, Intel, NVIDIA y Khronos Group. Por tanto, en un inicio, fue desarrollado por Apple, pero ahora lo mantiene Khronos Group. Cabe mencionar que este estándar fue mejorado posteriormente por AMD y NVIDIA.

Viene a ser una API (Application Programming Interface) que permite, a los programas, acceder a varios procesadores simultáneamente para la computación paralela. Entre los «procesadores» mencionados están las GPUs y CPUs, así como los DSPs y FPGAs.

opencl qué es

De este modo, OpenCL incrementa la eficiencia de procesamiento para mejorar el rendimiento del programa. Desde 2008, es muy usado para acceder a la GPU con el fin de realizar tareas de computación (GPGPU): obtiene la ventaja que le ofrece la potencia de procesamiento de la GPU para asistir a la CPU en la realización de ciertos cálculos.

La explicación técnica de OpenCL sería que es una extensión de los diferentes lenguajes existentes que permite escoger un trozo de código que es ejecutado muchas veces para diferenciarlo del código entero. Este código puede ejecutarse en varios procesadores.

Así que, se trata de una extensión que integra los lenguajes C, C++, Python, Java, etc. OpenCL es usado en servidores cloud y superordenadores, así como en ordenadores personales y smartphones. A día de hoy, esta API ha servido a numerosos sectores profesionales: medicina, mundo científico, neural network training, etc.

¿Cómo consigue aumentar el rendimiento de procesamiento?

Explicado de forma corta y simple: a menos manos, menos trabajo. La premisa de la división del trabajo funciona en el mundo informático de igual manera, y para hacerlo más visual vamos a poner un ejemplo.

Hay que realizar un cálculo matemático que consiste en sumar 3000 números.

¿Quién terminará antes la operación? ¿500 personas o 2 expertos matemáticos?

Si atendemos a la lógica, las 500 personas se pueden dividir la tarea y, así, terminar antes. Pensad en el trabajo que tienen que hacer los 2 expertos matemáticos frente a las 500 personas.

Este ejemplo trata de ilustrar la equivalencia de, por ejemplo, un procesador de dos núcleos (los 2 expertos) y el procesador de varios núcleos (500 personas). Por este mismo motivo, vemos como las tarjetas gráficas equipan muchos procesadores (llamados stream processors), los cuales son pequeños, pero trabajando todos juntos ofrecen una gran potencia final.

AMD y NVIDIA tienen su propia API

NVIDIA CUDA

Seguramente hayáis oído hablar de Vulkan y de CUDA, ¿verdad? CUDA (Compute Unified Device Architecture) es una API construida sobre la misma premisa que OpenCL: computación paralela eficiente, ideal para acelerar los procesos de cálculo de las GPUs. De ahí que veamos en las especificaciones, de cada tarjeta gráfica NVIDIA , los denominados «CUDA cores».

En el caso de AMD, Vulkan también es una API desarrollada por Khronos Group. Veréis que muchos videojuegos utilizan esta API en sus ajustes gráficos, especialmente cuando utilizamos una AMD. Dicho esto, Vulkan también es soportada por NVIDIA. Como detalle a mencionar, Khronos lanzó Vullkan Ray Tracing Final Extensions el 23 de noviembre de 2020.

opencl 3.0

Quitando AMD y NVIDIA, Intel sigue apostando por OpenCL para sus gráficos integrados Iris Xe. De hecho, es posible que veamos esta API en las tarjetas gráficas gaming que Intel quiere presentar.

Desde la salida de OpenCL en 2008, Khronos no ha tenido mucha suerte, ya que las versiones 2.0 no fueron halagadas por la crítica. El 13 de octubre de 2020, OpenCL 3.0 fue lanzando en un intento más para copar los sistemas operativos.

Esperamos que te haya sido útil esta información. Si tienes alguna duda, comenta abajo y te responderemos.

Echa un vistazo a las mejores tarjetas gráficas del mercado

¿Conocíais el funcionamiento de OpenCL? ¡Queremos saber vuestra opinión!

Ángel Aller

Graduado en Derecho y exabogado con Máster de Comercio internacional. Amante de la tecnología y geek inconformista. Leal a Alt+F4 como estilo de vida.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba