El 5 de mayo, el consorcio Khronos presentó la especificación OpenCL 3.1 — una nueva actualización del estándar abierto para computación multiplataforma en CPU, GPU, DSP, NPU y otros aceleradores. El lanzamiento coincide con la conferencia IWOCL 2026 y amplía el modelo OpenCL 3.x, en el cual parte de las capacidades se prueba inicialmente como extensiones y luego se incorpora al núcleo obligatorio del estándar.
El principal cambio en OpenCL 3.1 es el soporte obligatorio para la carga de núcleos de computación en formato SPIR-V en todas las implementaciones compatibles. SPIR-V se utiliza como una representación intermedia portátil, que puede generarse, en particular, a través de LLVM/Clang y el traductor LLVM de SPIR-V. Esto debería simplificar el uso de OpenCL como backend para SYCL, chipStar y compiladores especializados, así como permitir la distribución de núcleos no en forma de código fuente, sino en forma de intermedio precompilado.
También se han incorporado al núcleo de OpenCL 3.1 capacidades importantes para cargas de trabajo de IA y HPC: subgrupos con operaciones de shuffle/rotate y un conjunto ampliado de tipos, productos escalares de enteros con variantes de saturación y acumulación, nuevas operaciones bit a bit, solicitud del tamaño recomendado del grupo de trabajo local y una solicitud estándar de UUID de dispositivo, coherente con el comportamiento de Vulkan.
Entre otros cambios, se destacan nuevas capacidades del lenguaje sin necesidad de habilitar extensiones, printf mejorado en OpenCL C con soporte para modificadores z y t, aclaración de la semántica de CL_DEVICE_HOST_UNIFIED_MEMORY, la posibilidad de pasar un tamaño cero para los argumentos de memoria local y simplificación de la sincronización al verificar eventos en estado CL_COMPLETE.
Los trabajos en las implementaciones de OpenCL 3.1 ya están en marcha por parte de Arm, Imagination, Intel y Qualcomm. Entre las implementaciones abiertas, Khronos menciona específicamente Rusticl como parte de Mesa, PoCL y CLVK. También continúa el desarrollo de capas de compatibilidad que ejecutan OpenCL sobre Vulkan y DirectX 12, lo que debería ampliar la disponibilidad de OpenCL en sistemas sin controladores nativos.
Las próximas áreas de desarrollo que Khronos menciona son los búferes de comandos para la reutilización de comandos de bajo nivel, mejoras en la memoria unificada, operaciones con matrices en modo compartido, nuevos tipos de IA como formatos de baja precisión, así como mejoras para la memoria externa y la compatibilidad con Vulkan, DirectX 12 y tuberías de medios.
Fuente: linux.org.ru
