Se han publicado las especificaciones finales de OpenCL 3.0

El consorcio Khronos, encargado del desarrollo de las especificaciones de la familia OpenGL, Vulkan y OpenCL, anunció sobre la publicación de las especificaciones finales OpenCL 3.0, que definen la API y las extensiones del lenguaje C para la organización de cálculos paralelos multiplataforma utilizando CPU multicore, GPU, FPGA, DSP y otros chips especializados, desde aquellos utilizados en supercomputadoras y servidores en la nube, hasta chips que se pueden encontrar en dispositivos móviles y en tecnología integrada. El estándar OpenCL es completamente abierto y no requiere regalías.

Simultáneamente publicado OpenCL SDK abierto con herramientas, ejemplos, documentación, archivos de encabezado, envolturas para C++ y bibliotecas en C para el desarrollo de aplicaciones compatibles con OpenCL 3.0. Además, se presenta una implementación inicial de OpenCL 3.0 basada en el compilador Clang, que se encuentra en la fase de revisión de parches para su inclusión en la composición principal de LLVM. En el desarrollo del estándar participaron empresas como IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments y Toshiba.

Se han publicado las especificaciones finales de OpenCL 3.0

Más destacadas características OpenCL 3.0:

  • La API OpenCL 3.0 ahora cubre todas las versiones de OpenCL (1.2, 2.x), sin proporcionar especificaciones individuales para cada versión. OpenCL 3.0 prevé la posibilidad de extender la funcionalidad básica a través de la integración de especificaciones adicionales, que se superpondrán en forma de opciones, sin bloquear la naturaleza monolítica de OpenCL 1.2/2.X.
  • Se declara como obligatorio únicamente la funcionalidad correspondiente a OpenCL 1.2, mientras que todas las capacidades propuestas en las especificaciones de OpenCL 2.x se consideran opcionales. Este enfoque simplificará la creación de implementaciones especializadas compatibles con OpenCL 3.0 y ampliará el rango de dispositivos en los que se puede utilizar OpenCL 3.0. Por ejemplo, los fabricantes pueden implementar soporte para OpenCL 3.0 sin implementar capacidades individuales de OpenCL 2.x. Para acceder a las capacidades opcionales del lenguaje, OpenCL 3.0 ha añadido un sistema de consultas de verificación que permite evaluar el soporte de elementos individuales de la API, así como macros especiales.
  • La unificación con las especificaciones previamente lanzadas simplifica la traducción de aplicaciones a OpenCL 3.0. Las aplicaciones OpenCL 1.2 podrán funcionar en dispositivos que soporten OpenCL 3.0 sin necesidad de cambios. Las aplicaciones OpenCL 2.x tampoco requerirán cambios en el código, pero si el entorno OpenCL 3.0 proporciona la funcionalidad necesaria (para asegurar la portabilidad de futuras aplicaciones OpenCL 2.x, se recomienda añadir consultas de verificación para evaluar el soporte de las funcionalidades utilizadas de OpenCL 2.x). Los desarrolladores de controladores con implementaciones de OpenCL podrán actualizar fácilmente sus productos a OpenCL 3.0, agregando solo el manejo de consultas sobre llamadas a API y, con el tiempo, ampliar gradualmente la funcionalidad.
  • La especificación OpenCL 3.0 se ha alineado con el entorno, las extensiones y las especificaciones de representación intermedia universal SPIR-V, que también se aplica en la API Vulkan. El soporte para la especificación SPIR-V 1.3 se ha incorporado como una capacidad opcional en la versión principal de OpenCL 3.0. A través del uso de la representación intermedia SPIR-V para núcleos de cómputo se añade soporte para operaciones con subgrupos.
    Se han publicado las especificaciones finales de OpenCL 3.0
  • Se ha añadido soporte para la extensión de ejecución de operaciones DMA asíncronas (Asynchronous DMA), soportada en chips de tipo DSP con acceso directo a memoria. Asynchronous DMA permite realizar transacciones DMA para transferir datos entre la memoria global y local de manera asíncrona, paralelamente a los cálculos realizados u otras operaciones de transferencia de datos.
  • La especificación de extensiones de programación paralela para el lenguaje C se actualizó a la versión 3.0, y el desarrollo de las extensiones de lenguaje OpenCL para C++ se detuvo en favor del proyecto 'C++ for OpenCL'. C++ for OpenCL es un compilador basado en Clang/LLVM y que traduce núcleos a C++ y OpenCL C en una representación intermedia SPIR-V o código de máquina de bajo nivel. A través de la traducción a SPIR-V también se organiza la construcción de aplicaciones C++ que utilizan la biblioteca de plantillas SYCL, facilitando la creación de aplicaciones paralelas.

    Se han publicado las especificaciones finales de OpenCL 3.0
  • Para la traducción de OpenCL a través de la API Vulkan se propone un compilador clspv, que convierte núcleos OpenCL a la representación Vulkan SPIR-V, y una capa clvk para proporcionar la operatividad de la API OpenCL sobre Vulkan.

    Se han publicado las especificaciones finales de OpenCL 3.0

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster