Den 5 maj presenterade Khronos-konsortiet en specifikation OpenCL 3.1 — en ny uppdatering av den öppna standarden för plattformsoberoende beräkningar på CPU, GPU, DSP, NPU och andra acceleratorer. Utgivningen är kopplad till konferensen IWOCL 2026 och utvecklar modellen OpenCL 3.x, där vissa funktioner först prövas som tillägg och därefter flyttas till den obligatoriska kärnan av standarden.
Huvudändringen i OpenCL 3.1 är det obligatoriska stödet för laddning av beräkningskärnor i formatet SPIR-V i alla kompatibla implementationer. SPIR-V används som ett portabelt mellanliggande representationsformat som kan genereras, bland annat genom LLVM/Clang och SPIR-V LLVM Translator. Detta ska förenkla användningen av OpenCL som backend för SYCL, chipStar och specialiserade kompilatorer, samt möjliggöra spridning av kärnor inte som källkod, utan i ett förkompilerat mellanliggande format.
I kärnan av OpenCL 3.1 har även funktioner flyttats som är viktiga för AI- och HPC-belastningar: subgrupper med shuffle-/rotate-operationer och en utvidgad typuppsättning, skalära produkter av heltal med mättnads- och ackumuleringsvarianter, nya bitoperationer, förfrågan om rekommenderad storlek på den lokala arbetsgruppen och standardiserad begäran om UUID för enheten, i enlighet med Vulkan-beteende.
Bland övriga förändringar kan nämnas nya språkmöjligheter utan behov av att ansluta tillägg, förbättrad printf i OpenCL C med stöd för modifierarna z och t, klargörande av semantiken CL_DEVICE_HOST_UNIFIED_MEMORY, möjlighet att överföra nollstorlek för lokala minnesargument och förenkling av synkronisering vid kontroll av händelse i tillståndet CL_COMPLETE.
Arbetet med implementationer av OpenCL 3.1 pågår redan hos Arm, Imagination, Intel och Qualcomm. Bland de öppna implementationerna nämner Khronos särskilt Rusticl i Mesa, PoCL och CLVK. Utvecklingen av kompatibilitetslager som kör OpenCL ovanpå Vulkan och DirectX 12 fortsätter, vilket ska öka tillgången till OpenCL på system utan native drivrutiner.
Khronos nämner att framtida utvecklingsområden inkluderar kommandobuffrar för låg nivå återstart av kommandon, förbättringar av enhetlig delad minne, operationer med matriser i gemensamt läge, nya AI-typer såsom lågt precisionsformat, samt förbättringar för extern minne och kompatibilitet med Vulkan, DirectX 12 och medie-pipelines.
Källa: linux.org.ru
