Tutoriales

¿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

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.

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

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.

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!

Recent Posts

  • Tarjetas gráficas

RTX 4090 logra +80 fps en Ghost of Tsushima con resolución 4K nativos, +200 fps con DLSS 3

Nvidia presume del rendimiento de su flamante tarjeta gráfica RTX 4090 en el reciente videojuego…

12 mins atrás
  • Procesadores

AMD EPYC 9005 “Turín” es confirmado con hasta 192 núcleos de arquitectura Zen 5

Se confirma la llegada de los procesadores AMD EPYC 9005 “Turín”, los cuales están contando…

2 horas atrás
  • Smartphone

¿Problemas de Lagging y Sobrecalentamiento? POCO F6 se mantiene frío y estable para jugar sin preocupaciones

La serie F, buque insignia de POCO, siempre ha sido muy apreciada por los jugadores…

14 horas atrás