Khronos Group anuncia por sorpresa el lanzamiento de OpenCL 3.0
Actualmente las API por excelencia para el desarrollo de videojuegos son DirectX y Vulkan. NVIDIA sobre todo apuesta por DirectX, la cual soporta Ray Tracing, mientras que AMD apuesta por Vulkan. Incluso Apple tiene su propia API denominada Metal. La gran olvidada es OpenCL, una API de código abierto que actualmente solo es soportada por Intel y que se ha actualizado a OpenCL 3.0.
Destacar que OpenCL fue una API desarrollada por Apple y optimizada posteriormente por AMD y NVIDIA. Khronos finalmente se quedó el desarrollo de esta API que se ha terminado convirtiendo en una solución de código abierto. Lo curioso es que hemos pasado de OpenCL 1.2 directamente a OpenCL 3.0, ya que OpenCL 2.0 fue un fracaso, sin nada relevante que ofrecer.
Khronos anuncia el lanzamiento de OpenCL 3.0
OpenCL 2.0 fue abandonada por la mayoría de desarrolladores por ser un completo fracaso, al no ofrecer nada para las gráficas modernas. Apple, NVIDIA y AMD, ante tal fiasco, optaron por desarrollar sus propios API, mucho más potentes. Pero OpenCL 3.0 llega con soporte para ejecución de transferencia DMA asíncrona y compatibilidad con SPIR-V 1.3. Además, se puede usar esta nueva API por parte de los desarrolladores sin cambiar el código desde las versiones antiguas.
La compañía Khronos parece tener bastante esperanzas en OpenCL, estudiando incluso su integración en Vulkan. Además, están estudiando soportar SPIR-V 1.4 y lanzar OpenCL Next. Pero la realidad actual es que AMD solo soporta OpenCL 1.2 (algo que podría cambiar con las RX 6000) y NVIDIA soporta DirectX y CUDA. Además, Khronos indica el uso del compilador ‘clspv’ para la traducción de OpenCL a la API de Vulkan. Este compilador ‘traduce’ el kernel de OpenCL al de Vulkan SPIR-V.
Intel y sus gráficas Iris Xe, de momento, son el único aliado de Khronos para resucitar OpenCL. Parece muy difícil que las nuevas gráficas de Intel tengan la capacidad de competir con las NVIDIA RDNA2 y ya no hablemos de las NVIDIA Ampere.
Khronos ha destacado, tras lanzar las especificaciones, que la API OpenCL 3.0 recibirá actualizaciones. Incluso han publicado una hoja de ruta con las extensiones, de las cuales en desarrollo estan:
- Subgrupos extendidos
- Información debug extendida
- Compartir memoria externa
- Interoperabilidad Vulkan/OpenCL
Aquellos desarrolladores que quieran explorar y colaborar, tienen en GitHub un hilo oficial de Khronos para colaborar.
[irp]