Lëshimi i projektit PoCL 6.0 (Portable Computing Language OpenCL) është publikuar, duke zhvilluar zbatimin e standardit OpenCL, i pavarur nga prodhuesit e përshpejtuesve grafikë dhe që lejon përdorimin e backend-eve të ndryshme për ekzekutimin e kernel-eve OpenCL në lloje të ndryshme procesorësh grafikë dhe qendrorë. Kodi i projektit shpërndahet nën licencën MIT. Mbështetet puna në platformat X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU dhe në disa procesorë të specializuar ASIP (Application-Specific Instruction-set Processor) dhe TTA (Transport Triggered Architecture) me arkitekturë VLIW.
Implementimi i kompilerit të kernel-eve OpenCL është ndërtuar mbi LLVM, dhe si frontend për OpenCL C përdoret Clang. Për të siguruar një portabilitet dhe performancë të duhur, kompileri i kernel-eve OpenCL mund të gjenerojë funksione të kombinuara, të cilat mund të përdorin burime të ndryshme harduerike për paralelizimin e ekzekutimit të kodit, si VLIW, super-skalarnësia, SIMD, SIMT, multi-bërthameri dhe multi-threading. Ka mbështetje për drejtorët ICD
(Installable Client Driver). Ka backend-e për të siguruar funksionimin përmes CPU, ASIP (TCE/TTA), GPU të bazuar në arkitekturën HSA dhe GPU NVIDIA (përmes libcuda).
Në këtë version të ri:
- Shtuar mbështetje për Clang/LLVM 18.0, ndaluar mbështetje për LLVM 10, 11, 12 dhe 13.
- Implementuar një backend të ri cpu-tbb, i cili përdor bibliotekën OneTBB, e zhvilluar nga Intel, për paralelizimin e operacioneve dhe planifikimin e ekzekutimit të detyrave.
- Në backend-in cpu, që siguron ekzekutimin e kernel-eve OpenCL në CPU, është shtuar mbështetje për standardin e programimit paralel OpenMP, është shtuar metoda clGetDeviceAndHostTimer(), dhe janë implementuar zgjerime eksperimentale cl_pocl_svm_rect, cl_pocl_command_buffer_svm dhe cl_pocl_command_buffer_host_buffer.
- Në backend-in 'Remote', e destinuar për organizimin e llogaritjeve të shpërndara përmes delegimit të trajtimit të komandave OpenCL në hoste të tjera në rrjet, ku funksionon procesi në sfond pocld, është shtuar mbështetje për CG SVM (Coarse-Grain Shared Virtual Memory), mundësia e thirrjes së backend-it duke përdorur protokollin e komunikimit Vsock, dhe mbështetje për kompilimin dhe lidhjen e programeve duke përdorur funksionet clCompileProgram() dhe clLinkProgram().
- Në backend-in LevelZero, i cili përdor API-në Level Zero, lejohet krijimi i buferëve me madhësi më të madhe se 4GB, dhe janë realizuar optimizime të proceseve të sinkronizimit.
- Në backend-in CUDA janë implementuar operacionet sub_group_shuffle dhe sub_group_shuffle_xor, dhe është rritur limiti CL_DEVICE_MAX_MEM_ALLOC_SIZE.
Burimi: opennet.ru
