Esitletud on projekti PoCL 3.1 (Portable Computing Language OpenCL) vĂ€ljaanne, mis arendab OpenCL-i standardi tootjate sĂ”ltumatut teostust ja vĂ”imaldab kasutada erinevaid taustu OpenCL-kerede tĂ€itmiseks erinevat tĂŒĂŒpi graafika- ja keskprotsessoritel. Projekti kood jaotatakse MIT litsentsi alusel. Toetatakse tööd X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ja erinevate spetsialiseeritud ASIP (rakendusele spetsiifiline kĂ€su kogumiprotsessor) ja TTA-protsessoritega (Transport Triggered Architecture), mille arhitektuur on VLIW.
OpenCL kerede kompilaatori rakendamine pĂ”hineb LLVM-l ja OpenCL C jaoks kasutatakse front-end'ina Clang'i. Adekaatse ĂŒlekantavuse ja jĂ”udluse tagamiseks suuteline OpenCL kerede kompilaator genereerima kombineeritud funktsioone, mis vĂ”ivad kasutada erinevaid riistvaralisi ressursse koodi tĂ€itmise paralleelseks jagamiseks, nagu VLIW, superkiirus, SIMD, SIMT, mitmetuumalisus ja mitme lĂ”ime töötlemine. Toetatakse ICD-draivereid (Installable Client Driver). Olemas on tagapĂ”hjused, mis vĂ”imaldavad töötada lĂ€bi CPU, ASIP (TCE/TTA), HSA arhitektuuriga GPU ja NVIDIA GPU (libcuda kaudu).
Uues versioonis:
- Lisatud tugi Clang/LLVM 15.0.
- Oluliselt on paranenud SPIR-V varjundite vaheesitluse tugi draiveritele, mis kasutavad CPU-d ja CUDA-t.
- Oluliselt on ĂŒmber töötatud spetsialiseeritud riistvaradrahvide (CL_DEVICE_TYPE_ACCELERATOR) ja kohandatud seadmete (CL_DEVICE_TYPE_CUSTOM) draiver, mis ei toeta online-kompileerimist. Draiverid accel ja ttasim on ĂŒhendatud uue draiveriga AlmaIF.
- JÀtkatud on töö draiveriga graafilise API jaoks Vulkan.
- Pakkuda on pĂ”hiline teostus laiendusest cl_khr_command_buffer, mis vĂ”imaldab salvestada OpenCL-i kĂ€skude jĂ€rjestuse selle tĂ€itmiseks ĂŒhe kutsega.
Allikas: opennet.ru
