Esitleti projekti PoCL 3.1 (Portable Computing Language OpenCL) versioon, mis arendab OpenCL standardi rakendust, mis on sõltumatu graafikakiibide tootjatest ja võimaldab kasutada erinevaid tagaplaneeringuid OpenCL kernide käitamiseks erinevatel tüüpi graafika- ja keskprotsessoritel. Projekti kood on litsentseeritud MIT litsentsi alusel. Töö toetamine on tagatud platvormidel X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ja erinevates spetsialiseeritud ASIP (rakendusele spetsiifiline juhiste komplekt) ja TTA (Transport Triggered Architecture) protsessorites, mis toetavad VLIW arhitektuuri.
OpenCL tuumade kompilaatori rakendus põhineb LLVM-il ja OpenCL C jaoks on front-endiks Clang. Sobiva ülekandmise ja jõudluse tagamiseks võib OpenCL tuumade kompilaator genereerida kombineeritud funktsioone, mis saavad kasutada erinevaid riistvaralisi ressursse koodi paralleelse täitmise jaoks, nagu VLIW, super-skalaarne, SIMD, SIMT, mitme tuuma ja mitme niidi tugi. Toetatakse ICD-draivereid (Installable Client Driver). On olemas tagaplaneeringud töö tagamiseks CPU, ASIP (TCE/TTA), HSA arhitektuuril põhineva GPU ja NVIDIA GPU (libcuda kaudu).
Uues versioonis:
- Lisatud Clang/LLVM 15.0 tugi.
- Oluliselt parandatud SPIR-V shaderite vaheesituse toetust CPU ja CUDA kasutavate draiverite jaoks.
- Oluliselt ümber töötatud draiver spetsialiseeritud riistvara (CL_DEVICE_TYPE_ACCELERATOR) ja kohandatud seadmete (CL_DEVICE_TYPE_CUSTOM) jaoks, mis ei toeta online-kompileerimist. Draiverid accel ja ttasim on ühendatud uude draiverisse AlmaIF.
- Tööd jätkatakse Vulkan graafika API draiveriga.
- Pakutud välja baasrakendus laiendusele cl_khr_command_buffer, mis võimaldab salvestada OpenCL käsud järjestuse ühe kutsumisega täitmiseks.
Allikas: opennet.ru
