Nisja e versioni i ri i projektit PoCL 1.6 (Portable Computing Language OpenCL), nga pikat kryesore të versionit 1.6 është mbështetja për Clang / LLVM 11.0, si dhe puna e bërë për të përmirësuar performancën dhe funksionet e CUDA, përmirësimin e pajtueshmërisë me PowerPC dhe përdorimin e përmirësuar të korrigjimit të gabimeve OpenCL.
Për ata që nuk e njohin PoCL, duhet të dini se çfarë është një zbatim i lëvizshëm me burim të hapur (i licensuar nga MIT) të standardit OpenCL (1.2 me disa tipare 2.0 të mbështetura). Si dhe të qenit një zbatim i OpenCL me burim të hapur me shumë pajisje (me të vërtetë heterogjene) lehtësisht i lëvizshëm, një qëllim kryesor i këtij projekti është të përmirësojë ndërveprimin e shumëllojshmërisë së pajisjeve në përputhje me OpenCL duke i integruar ato në një platformë të vetme të orkestruar nga qendra.
Për më tepër, një nga qëllimet kryesore afatgjata është të përmirësojë transportueshmërinë e performancës së programeve OpenCL në llojet e pajisjeve që përdorin teknikat e ekzekutimit dhe përpilimit.
Përpiluesi i kernelit OpenCL bazohet në LLVM dhe Clang përdoret si ndërfaqe e OpenCL C. Për të siguruar performancë dhe transportueshmëri adekuate, përpiluesi i kernelit OpenCL mund të gjenerojë funksione të kombinuara që mund të përdorin burime të ndryshme hardueri për të paralelizuar ekzekutimin e kodit. , të tilla si VLIW, superscalar, SIMD, SIMT, me shumë bërthama dhe me shumë fije. Ka mbështetje për drejtuesit e ICD (Instalues i Shoferit të Klientit). Ka të prapambetur për të siguruar punë përmes CPU, ASIP (TCE / TTA), GPU bazuar në arkitekturën HSA dhe NVIDIA GPU (CUDA).
Karakteristikat kryesore të reja të PoCL 1.6
Ky version i ri i PoCL 1.6 thekson aftësinë për të përpiluar këtë zbatim me drejtuesit e pajisjeve të aktivizuara në kohën e përpilimit, si dhe disponueshmëria e pajisjes do të verifikohet gjatë fillimit (më parë, sistemet në të cilat është ndërtuar dhe ekzekutuar PoCL) ata duhet të kishin të njëjtën mbështetje të kontrolluesit). Zbatoi aftësinë për të përdorur menaxherin e paketave conda për të shpërndarë paketat binare PoCL me mbështetjen CUDA për sistemet Linux-x86_64 dhe Linux-ppc64le.
Një tjetër ndryshim që bie në sy është mbështetja për LLVM 11 së bashku me mundësitë e zgjeruara për korrigjimin e kodit OpenCL kur përdorni kontrolluesin e CPU.
Përveç kësaj, duhet të theksohet se u krye optimizimi i performancës së pjesës së prapme të CUDA, i cili në mënyrë të konsiderueshme modernizoi operacionet në lidhje me përdorimin e kujtesës lokale (FFT, GEMM).
Standardet që përdorin standardet e SHOC (të cilat tani testohen vazhdimisht tregojnë se këto optimizime rezultojnë në performancë shumë më të mirë, veçanërisht për standardet që përfshijnë memorje lokale si FFT dhe GEMM, krahasuar me një ekzekutim të PoCL tani shpesh arrin performancë konkurruese me drejtuesin e pronarit OpenCL të Nvidia). Ne i mirëpresim kontributet për të identifikuar dhe eleminuar shkaqet themelore të zonave të mbetura problematike. Ne gjithashtu i mirëpresim kontributet për të përmirësuar mbulimin e veçorive për standardet OpenCL 1.2 / 3.0.

- Performanca e PoCL në shumë teste tani është afër drejtuesit të pronarit të OpenCL të NVIDIA.
- Shtoi parametrin e përpilimit HARDENING_ENABLE për të mundësuar opsionet e përpiluesit për të gjeneruar një libpocl.so më të sigurt me koston e degradimit të performancës.
- Mbështetja e kthyer për sistemet PowerPC 8/9, për të cilat niveli i zbatimit OpenCL kur përdorni pajisje të pthread dhe CUDA korrespondon me nivelin CUDA në sistemet x86_64.
- ABI i ndryshuar për bërthamat CUDA që përdorin __ blloqe lokale. Pas azhurnimit, përdoruesit duhet të pastrojnë pocl cache.
- Mbështetja e hequr për opsionin e ndërtimit SINGLE_LLVM_LIB, në vend që të përdorni STATIC_LLVM dhe llvm-konfigurimin për të përcaktuar se cilat biblioteka duhet të lidhen.
Së fundmi, nëse doni të dini më shumë rreth këtij versioni të ri, mund të kontrolloni detajet në reklamën origjinale.
Ndërsa për ata që janë të interesuar të dinë më shumë rreth këtij implementimi, ata mund të këshillohen faqen zyrtare të internetit nga kjo, ku mund të gjeni dokumentacionin dhe të shkarkoni skedarë.
Kodi i projektit shpërndahet nën licencën MIT dhe puna mbështetet në platformat X86_64, MIPS32, ARM v7, AMD HSA APU dhe procesorë të ndryshëm të specializuar TTA me arkitekturën VLIW.