Avaldatud on projekt PoCL 5.0 (Portable Computing Language OpenCL) versioon, mis arendab OpenCLi standardi rakendust, mis on tootjate graafikakiirenditest sõltumatu ning võimaldab kasutada erinevaid taustaprogramme OpenCL-i südamike täitmiseks erinevat tüüpi graafika- ja keskprotsessorites. Projekti kood on jagatud MIT litsentsi all. Toetatakse tööd X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ja erinevates spetsialiseeritud ASIP (rakendusele spetsiifiline käsu komplekti protsessor) ja TTA-protsessorites (Transport Triggered Architecture), mis töötavad VLIW arhitektuuril.
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:
- Rakendatud on uus „Remote” taustaprogramm, mis on mõeldud jaotatud arvutuste korraldamiseks, edastades OpenCL-i käskluste töötlemise teistele hostidele võrgus, kus töötab taustaprotsess pocld.
- CUDA draiveris on rakendatud täiendavaid võimekusi ja OpenCL 3.0 laiendusi, nagu aatomilised operatsioonid, piiratud ulatusega muutujad, alagruppide intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier ja sub_group_ballot.
- Parandatud on CPU toe toimet RISC-V arhitektuuri põhjal. PoCL-i töö on testitud Starfive VisionFive 2 plaatidega koos Ubuntu 23.10 keskkonnaga, millel on LLVM 17 ja GCC 13.2.
- Laiendatud cl_ext_float_atomics toetusega FP32 ja FP64.
- cl_khr_command_buffer laiendus on uuendatud versioonini 0.9.4.
- Eksperimenteeritud AlmaIF tagaplaneering FPGA jaoks.
- Eemaldatud lõpetamata tugi shaderite SPIR 1.x/2.0 vaheversioonile. Soovitatavaks shaderite vahekeeleks on kuulutatud SPIR-V.
- Toetatd Clang/LLVM 17.0. Clang/LLVM versioonid 10-13 on kuulutatud vananenuks.
Allikas: opennet.ru
