El grupo Khronos ha lanzado hoy las especificaciones públicas para OpenCL 1.2, las ultimas y más recientes especificaciones de este estándar abierto multi-plataforma. Estas especificaciones se renuevan luego de 18 meses de las revisión anterior (OpenCL 1.1), y viene con varias mejoras para la programación paralela heterogénea en sistemas de cómputo modernos, es retro-compatible con las ediciones previas, mejora el rendimiento entre otras novedades fruto del trabajo con más de 30 empresas del sector.
Las especificaciones 1.2 de OpenCL (Open Computing Language o Lenguaje de Computación Abierto) libre de royalty, consta de una API (Aplication Programing Interface) y de un lenguaje de programación y otras herramientas de desarrollo que combinados permiten crear aplicaciones con paralelismo y mullti-plataformas, que se pueden ejecutar y aprovechar la potencia tanto de procesadores (CPU) multi-núcleos, como las GPU, además de microprocesadores de aparatos portátiles como: smartphone, reproductores multimedia, consolas de videojuegos, Tablets, entre otros.
OpenCL 1.2 enables significantly enhanced parallel programming flexibility, functionality and performance through many updates and additions including:
- Device partitioning – enabling applications to partition a device into sub-devices to directly control work assignment to particular compute units, reserve a part of the device for use for high priority/latency-sensitive tasks, or effectively use shared hardware resources such as a cache;
- Separate compilation and linking of objects – providing the capabilities and flexibility of traditional compilers enabling the creation of libraries of OpenCL programs for other programs to link to;
- Enhanced image support – including added support for 1D images and 1D & 2D image arrays. Also, the OpenGL sharing extension now enables an OpenCL image to be created from OpenGL 1D textures and 1D & 2D texture arrays;
- Built-in kernels represent the capabilities of specialized or non-programmable hardware and associated firmware, such as video encoder/decoders and digital signal processors, enabling these custom devices to be driven from and integrated closely with the OpenCL framework;
- DX9 Media Surface Sharing – enables efficient sharing between OpenCL and DirectX 9 or DXVA media surfaces;
- DX11 Surface Sharing – for seamless sharing between OpenCL and DirectX 11 surfaces.
ES posible que luego de este anuncio NVIDIA y AMD anuncien drivers compatibles con este estándar de programación para aplicaciones multi-plataforma.