Khronos Group anuncia las especificaciones provisionales de la API OpenCL 3.0

Khronos Group, un consorcio abierto de empresas líderes en la industria que crean avanzados estándares de interoperabilidad, anunció las especificaciones provisionales de la API OpenCL 3.0. Según indica, la API permitirá aumentar significativamente la flexibilidad solicitada por los desarrolladores al permitir las implementaciones de OpenCL por hardware conforme se centren en las funcionalidades relevantes para sus mercados objetivo.

Logo OpenCL 740x371 0

Para atender a la creciente diversidad de dispositivos OpenCL, OpenCL 3.0 hace que toda la funcionalidad más allá de la versión 1.2 sea opcional. Todas las aplicaciones de OpenCL 1.2 seguirán funcionando sin cambios en cualquier dispositivo OpenCL 3.0. Todas las características de OpenCL 2.X están definidas coherentemente en la nueva especificación unificada, y las implementaciones actuales de OpenCL 2.X que se actualicen a OpenCL 3.0 podrán seguir funcionando con su funcionalidad actual con total compatibilidad con la versión anterior. Todas las características de la API de OpenCL 2.X pueden ser consultadas, y OpenCL C 3.0 añade macros para consultar las características opcionales del lenguaje.

"OpenCL es el estándar abierto más generalizado y de varios proveedores para la programación paralela heterogénea de bajo nivel, ampliamente utilizado por aplicaciones, bibliotecas, motores y compiladores que necesitan llegar a la más amplia gama de procesadores diversos", afirma Neil Trevett, Vicepresidente de Nvidia, Presidente del Khronos Group y Presidente del OpenCL Working Group.

"OpenCL 2.X ofrece una funcionalidad importante, pero OpenCL 1.2 ha demostrado ser la línea de base que necesitan todos los proveedores y mercados. OpenCL 3.0 integra una opcionalidad muy bien organizada en la especificación monolítica 2.2, lo que aumenta la flexibilidad de implementación que permitirá a OpenCL subir el listón de la funcionalidad omnipresente en las futuras especificaciones del núcleo".

Para el desarrollo del núcleo C++, el OpenCL Working Group ha pasado del lenguaje original del núcleo OpenCL C++, definido en OpenCL 2.2, a la comunidad "C++ para OpenCL", proyecto de código abierto apoyado por Clang. C++ para OpenCL proporciona compatibilidad con OpenCL C, permite a los desarrolladores utilizar la mayoría de las características de C++17 en los núcleos de OpenCL y es compatible con cualquier implementación de OpenCL 2.X u OpenCL 3.0 que admita el lenguaje SPIR-V.

Las extensiones Extended Asynchronous Copy y Asynchronous Work Group Copy Fence, publicadas junto con OpenCL 3.0, permiten realizar transacciones DMA eficientes y ordenadas como ciudadanos de primera clase en OpenCL, lo que es ideal para los dispositivos basados en la memoria de scratchpad, que requieren un control minucioso sobre la asignación de buffers. Estas extensiones son uno de los primeros e importantes avances que se avecinan en OpenCL para mejorar el soporte de los procesadores integrados.

Para acompañar el lanzamiento de hoy, el OpenCL Working Group ha actualizado su Guía de Recursos de OpenCL para ayudar a los especialistas en informática, desarrolladores e investigadores de todos los niveles de habilidad a aprovechar eficazmente la potencia de OpenCL. El OpenCL Working Group evolucionará continuamente la guía y agradece cualquier comentario sobre cómo se puede mejorar a través de GitHub.

Artículos relacionados