A casi un año y medio desde el lanzamiento de OpenCL 1.1 en mayo del año pasado, Khronos Group nos trae la nueva y más reciente versión de su API de cómputo acelerada por GPU (GPGPU): OpenCL 1.2, nueva versión que viene cargada de importantes novedades enfocadas a ofrecer un rendimiento superior a las aplicaciones desarrolladas bajo el API estándar open source, además de funcionalidad mejorada para la programación paralela, todo ello sin perder compatibilidad con las anteriores versiones del API (OpenCL 1.0 y 1.1). Con OpenCL 1.2 Khronos busca reafirmar la posición de OpenCL como una de las plataformas más completas y fiables para el desarrollo de aplicaciones multi-plataforma.
Entre las nuevas características de OpenCL 1.2 tenemos:
- 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.
Pero las nuevas características no son la única novedad que nos trae OpenCL 1.2; Khronos Group anuncia que esta nueva versión de su API da apoyo a una mayor cantidad de arquitecturas, expandiendo su soporte más allá de los habituales CPUs (x86, y otras arquitecturas de propósito general), GPUs (para PC y ARM), ahora llegando también a los microprocesadores especializados como DSP (Digital Signal Processor) y FPGA (Field Programmable Gate Array), prometiendo para ellos un entorno de programación más sencillo y unificado a la gran plataforma base de chips con soporte a OpenCL, siendo el gigante Altera Corporation el primero en anunciar su apoyo a OpenCL para su familia de microprocesadores FPGA, a los que OpenCL beneficiará con un entorno de programación tipo “C/C++” mucho más sencillo y rápido de programar que el actual HDL (High Level Description Languaje).
La adición de estas nuevas arquitecturas de chips a la plataforma base de desarrollo de OpenCL sin dudas erigen a OpenCL como una de las API multi-plataforma con la mayor plataforma base instalada y con soporte a un gran número de arquitecturas.
Fuente: Legit Reviews