On avaldatud PoCL 6.0 (Portable Computing Language OpenCL) projekti väljaanne, mis arendab OpenCL standardi rakendust, sõltumatut graafikakiibide tootjatest ja võimaldab erinevate taustade kasutamist OpenCL tuumade täitmiseks erinevat tüüpi graafika- ja keskprotsessoritel. Projekti kood on litsentseeritud MIT litsentsi alusel. Toetatakse tööd platvormidel X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ja erinevates spetsialiseeritud ASIP (rakendusele spetsifiline käsklussüsteem) ja TTA protsessoritel (Transport Triggered Architecture) koos VLIW arhitektuuriga.
OpenCL tuumade kompilaatori rakendus põhineb LLVM-il ja OpenCL C jaoks kasutatakse Clang-i esifronti. Ülemise ülekande ja jõudluse tagamiseks suudab OpenCL tuumade kompilaator genereerida kombineeritud funktsioone, mis võivad kasutada erinevaid riistvaralisi ressursse koodi paralleelseks käitamiseks, nagu VLIW, superskalaarne, SIMD, SIMT, mitmikprotsessor ja multitehnoloogia. Toetatakse ICD-juhtmeid
(Installable Client Driver). On olemas taustad, mis tagavad töö CPU, ASIP (TCE/TTA), HSA arhitektuuril põhinevate GPU ja NVIDIA GPU (libcuda kaudu) kaudu.
Uues versioonis:
- Lisatud tugi Clang/LLVM 18.0, tugi LLVM 10, 11, 12 ja 13 on lõpetatud.
- Rakendatud uus cpu-tbb taust, mis kasutab operatsioonide paralleelset töötlemist ja ülesannete täitmise planeerimist Intel'i arendatav OneTBB raamatukogu.
- CPU tagasisides, mis võimaldab OpenCL tuumade tööd CPU-l, on lisatud OpenMP paralleelse programmeerimise standardi tugi, meetod clGetDeviceAndHostTimer() ja katsetooted cl_pocl_svm_rect, cl_pocl_command_buffer_svm ja cl_pocl_command_buffer_host_buffer.
- ‘Remote’ tagasisides, mis on mõeldud jaotatud arvutuste läbiviimiseks, viies OpenCL käsud mujale võrku, kus töötab taustaprotsess pocld, on lisatud CG SVM (Coarse-Grain Shared Virtual Memory) tugi, võimalus tagasisidest suhelda Vsock protokolli kaudu, samuti programmide kompileerimise ja linkimise võimalus funktsioonide clCompileProgram() ja clLinkProgram() abil.
- LevelZero tagasisides, mis kasutab Level Zero API-d, on lubatud luua üle 4GB suuruseid puhverdusi ning on rakendatud sünkroniseerimise protsesside optimeerimised.
- CUDA tagasisides on rakendatud sub_group_shuffle ja sub_group_shuffle_xor operatsioonid ning suurendatud CL_DEVICE_MAX_MEM_ALLOC_SIZE piiri.
Allikas: opennet.ru
