5. mai presenterte Khronos-konsortiet spesifikasjonen OpenCL 3.1 — en ny oppdatering av den åpne standarden for plattformuavhengige beregninger på CPU, GPU, DSP, NPU og andre akseleratorer. Utgivelsen er knyttet til konferansen IWOCL 2026 og utvikler OpenCL 3.x-modellen, hvor en del funksjoner først testes som utvidelser, før de overføres til den obligatoriske kjernen i standarden.
Hovedendringen i OpenCL 3.1 er obligatorisk støtte for lasting av beregningskjerner i formatet SPIR-V i alle kompatible implementeringer. SPIR-V brukes som et bærbart mellomliggende format som blant annet kan genereres via LLVM/Clang og SPIR-V LLVM Translator. Dette skal forenkle bruken av OpenCL som backend for SYCL, chipStar og spesialiserte kompilatorer, samt muliggjøre distribusjon av kjerner ikke som kildekode, men i forhåndskompilert mellomliggende form.
I kjernen til OpenCL 3.1 er det også tatt med funksjoner som er viktige for AI- og HPC-arbeidsbelastninger: subgrupper med shuffle-/rotate-operasjoner og et utvidet typebibliotek, skalarprodukter av heltall med metnings- og akkumuleringsvarianter, nye bitoperasjoner, forespørsel om anbefalt størrelse på lokal arbeidsgruppe, og en standard forespørsel UUID for enheten som er i samsvar med Vulkan-adferd.
Blant andre endringer kan man merke seg nye språklige muligheter uten behov for å koble til utvidelser, forbedret printf i OpenCL C med støtte for modifikatorene z og t, presisering av semantikken til CL_DEVICE_HOST_UNIFIED_MEMORY, muligheten for å sende null størrelse for local memory-argumenter, og forenkling av synkronisering ved sjekk av hendelser i tilstanden CL_COMPLETE.
Arbeidet med implementeringene av OpenCL 3.1 pågår allerede hos Arm, Imagination, Intel og Qualcomm. Blant de åpne implementeringene fremhever Khronos spesifikt Rusticl i Mesa, PoCL og CLVK. Utviklingen av kompatibilitetslag som kjører OpenCL på toppen av Vulkan og DirectX 12 fortsetter, noe som skal utvide tilgjengeligheten av OpenCL på systemer uten native drivere.
De neste utviklingsområdene Khronos nevner er kommandopuffer for lavnivå gjenkjøring av kommandoer, forbedringer i delt felles minne, matriseoperasjoner i samarbeidmodus, nye AI-typer som lavpresisjonsformater, samt forbedringer for eksternt minne og kompatibilitet med Vulkan, DirectX 12 og mediepipelines.
Kilde: linux.org.ru
