U publikua versioni i projektit PoCL 3.1 (Portable Computing Language OpenCL), i cili zhvillon realizimin e standardit OpenCL, të pavarur nga prodhuesit e kartave grafike dhe lejon përdorimin e backend-eve të ndryshme për ekzekutimin e bërthamave OpenCL në lloje të ndryshme të kartave grafike dhe procesorëve qendrorë. Kodi i projektit shpërndahet nën licencën MIT. Mbështetet funksionimi në platformat X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU dhe në ASIP (Application-Specific Instruction-set Processor) të specializuar dhe procesorë TTA (Transport Triggered Architecture) me arkitekturë VLIW.
Implementimi i kompilatorit të kernel-eve OpenCL është i bazuar në LLVM, ndërsa si frontend për OpenCL C përdoret Clang. Për të siguruar portabilitet dhe performancë të duhur, kompilatori i kernel-eve OpenCL mund të gjenerojë funksione të kombinuara, të cilat mund të përdorin burime të ndryshme hardware për të bërë paralelizimin e ekzekutimit të kodit, si VLIW, supercalaritetin, SIMD, SIMT, shumëcore dhe multi-threading. Mbështeten drejtuesit ICD (Installable Client Driver). Janë gjithashtu të pranishëm back-end për të siguruar funksionimin përmes CPU, ASIP (TCE/TTA), GPU-të e bazuara në arkitekturën HSA dhe GPU-të NVIDIA (përmes libcuda).
Në këtë version të ri:
- Shtuar mbështetje për Clang/LLVM 15.0.
- Signifikativisht përmirësuar mbështetje për përfaqësimin e ndërmjetëm të shaderëve SPIR-V për drejtorët që përdorin CPU dhe CUDA.
- Drejtoresha për pajisjet e specializuara (CL_DEVICE_TYPE_ACCELERATOR) dhe pajisjet e personalizuara (CL_DEVICE_TYPE_CUSTOM), të cilat nuk mbështetin kompilimin online, është rishikuar ndjeshëm. Drejtorët accel dhe ttasim janë kombinuar në një drejtor të ri AlmaIF.
- Vazhdon puna mbi drejtorin për API-në grafike Vulkan.
- Propozohet një implementim bazik i zgjerimit cl_khr_command_buffer, i cili lejon regjistrimin e një sekuence komandash OpenCL për t'i ekzekutuar ato me një thirrje.
Burimi: opennet.ru
