Pokretanje nova verzija projekta PoCL 1.6 (Prijenosni računski jezik OpenCL), od vrhunaca verzije 1.6 je podrška za Clang / LLVM 11.0, kao i rad na poboljšanju performansi i funkcija CUDA-e, poboljšana kompatibilnost sa PowerPC-om i poboljšana upotreba OpenCL otklanjanja grešaka.
Za one koji nisu upoznati s PoCL-om, trebali biste znati što je to prijenosna implementacija otvorenog koda (licenca MIT) OpenCL standarda (1.2 sa podržanim nekim 2.0 funkcijama). Kao i OpenCL implementacija otvorenog koda za više uređaja (uistinu heterogeni) lako prenosivi, primarni cilj ovog projekta je poboljšati interoperabilnost raznolikosti uređaja kompatibilnih sa OpenCL-om integrirajući ih u jedinstvenu centralno orkestriranu platformu.
Pored toga, jedan od ključnih dugoročnih ciljeva je poboljšanje prenosivosti performansi OpenCL programa na tipovima uređaja koji koriste tehnike izvođenja i kompajliranja.
Kompajler OpenCL kernela zasnovan je na LLVM-u, a Clang se koristi kao sučelje za OpenCL C. Da bi pružio odgovarajuće performanse i prenosivost, kompajler OpenCL kernela može generirati kombinirane funkcije koje mogu koristiti različite hardverske resurse za paralelizaciju izvršavanja koda, kao što je VLIW, superskalarni, SIMD, SIMT, višejezgreni i višenitni. Postoji podrška za upravljačke programe ICD (Installable Client Driver). Postoje pozadinske mreže za rad putem CPU-a, ASIP-a (TCE / TTA), GPU-a zasnovanog na HSA arhitekturi i NVIDIA GPU-a (CUDA).
Glavne nove karakteristike PoCL 1.6
Ova nova verzija PoCL 1.6 ističe mogućnost kompajliranja ove implementacije s upravljačkim programima uređaja omogućenim u vrijeme kompilacije, kao i dostupnost uređaja provjerit će se pri pokretanju (prethodno su sistemi na kojima je PoCL izgrađen i pokrenut trebali imati ista podrška kontrolera). Primijenjena sposobnost korištenja upravljača paketima conda za distribuciju PoCL binarnih paketa s CUDA podrškom za sisteme Linux-x86_64 i Linux-ppc64le.
Još jedna promjena koja se ističe je podrška za LLVM 11 zajedno s proširenim mogućnostima za otklanjanje grešaka u OpenCL kodu kada se koristi CPU kontroler.
Pored toga, istaknuto je da je izvršena optimizacija performansi CUDA pozadine, što je omogućilo značajno ubrzanje operacija povezanih s upotrebom lokalne memorije (FFT, GEMM).
Mjerila koja koriste SHOC referentne vrijednosti (koja se sada kontinuirano ispituju pokazuju da su ove optimizacije rezultirale mnogo boljim performansama, posebno za mjerila koja uključuju lokalnu memoriju poput FFT-a i GEMM-a, u odnosu na niz prethodnih referenci. PoCL sada često postiže konkurentne performanse s Nvidijinim OpenCL vozač). Pozdravljamo doprinose u identificiranju i uklanjanju temeljnih uzroka preostalih problematičnih područja. Takođe pozdravljamo doprinose za poboljšanje pokrivenosti karakteristika za OpenCL 1.2 / 3.0 standarde.
- PoCL performanse u mnogim testovima sada su bliske NVIDIA-inom vlasničkom OpenCL upravljačkom programu.
- Dodan je parametar kompilacije HARDENING_ENABLE kako bi se omogućilo da opcije kompajlera generiraju sigurnije libpocl.so po cijenu degradacije performansi.
- Vraćena podrška za PowerPC 8/9 sisteme, za koje nivo implementacije OpenCL kada se koriste pthread i CUDA uređaji odgovara nivou CUDA na x86_64 sistemima.
- Promijenjen ABI za CUDA jezgre koje koriste __ lokalne blokove. Nakon nadogradnje, korisnici trebaju očistiti pocl predmemoriju.
- Uklonjena je podrška za opciju izrade SINGLE_LLVM_LIB, umjesto da se pomoću STATIC_LLVM i llvm-config definira na koje se biblioteke vežu.
Konačno, ako želite znati više o ovoj novoj verziji, možete provjeriti detalje u originalnom oglasu
Za one koji su zainteresirani da saznaju više o ovoj primjeni, mogu se posavjetovati službenu web stranicu od toga, gdje možete pronaći dokumentaciju i preuzeti datoteke.
Kôd projekta distribuira se pod MIT licencom, a rad je podržan na platformama X86_64, MIPS32, ARM v7, AMD HSA APU i raznim specijaliziranim TTA procesorima s VLIW arhitekturom.