Május 5-én a Khronos konzorcium bemutatta a specifikációt OpenCL 3.1 — a nyílt standard legújabb frissítése a platformfüggetlen számításokhoz CPU, GPU, DSP, NPU és más gyorsítók révén. A kiadás a 2026-os IWOCL konferenciához kapcsolódik, és fejleszti az OpenCL 3.x modellt, amelyben egyes funkciók először kiterjesztések formájában jelennek meg, majd átkerülnek a standard kötelező alapjába.
A legfontosabb változás az OpenCL 3.1-ben a számítási magok kötelező támogatása SPIR-V minden kompatibilis megvalósításban. A SPIR-V egy hordozható köztes reprezentáció, amelyet például az LLVM/Clang és a SPIR-V LLVM Translator révén lehet generálni. Ez megkönnyíti az OpenCL használatát a SYCL, chipStar és speciális fordítók backendjeként, valamint lehetővé teszi a magok terjesztését nem forráskód formájában, hanem előre lefordított köztes formában.
Az OpenCL 3.1 magába foglalja a mesterséges intelligencia és HPC terhelésekhez fontos funkciókat is: subgroup-ok shuffle/rotate műveletekkel és kiterjesztett típusszettel, egész számok skaláris szorzata lefedő és összegző variációkkal, új bit műveletek, a javasolt helyi munka csoport méretének lekérdezése és a Vulkan viselkedésével összhangban álló UUID eszköz lekérdezése.
A többi változás között megemlíthető az új nyelvi lehetőségek bevezetése a kiterjesztések csatlakoztatásának szükségessége nélkül, a fejlettebb printf az OpenCL C-ben a z és t módosítók támogatásával, a CL_DEVICE_HOST_UNIFIED_MEMORY szemantika pontosítása, nulla méret átadása a helyi memória argumentumokhoz, és a szinkronizálás egyszerűsítése az CL_COMPLETE állapotú esemény ellenőrzésekor.
Az OpenCL 3.1 megvalósításainak munkája már folyamatban van az Arm, Imagination, Intel és Qualcomm által. Az open forráskódú megvalósítások között a Khronos külön megemlíti Rusticl a Mesa keretén belül, PoCL és CLVK. A Vulkan és DirectX 12 fölött futó OpenCL kompatibilitási rétegek fejlesztése is folytatódik, amely bővíti az OpenCL elérhetőségét olyan rendszereken, ahol nincsenek natív illesztőprogramok.
A Khronos a következő fejlesztési irányok között említi az alacsony szintű parancsok ismételt végrehajtásához szükséges parancs pufferképeket, a közös memória fejlesztését, közösen végzett mátrixműveleteket, új AI típusokat, mint például alacsony pontosságú formátumokat, valamint a külső memória és a Vulkan, DirectX 12 és média-pipeline-kkel való kompatibilitás javítását.
Forrás: linux.org.ru
