Izdanje PoCL 3.0 sa nezavisnom implementacijom OpenCL 3.0 standarda

Predstavljeno je izdanje PoCL 3.0 (Portable Computing Language OpenCL) projekta, koji razvija implementaciju OpenCL standarda koja je nezavisna od proizvođača grafičkih akceleratora i omogućava korištenje različitih pozadinskih programa za izvršavanje OpenCL kernela na različitim tipovima grafike i centralnog procesori. Šifra projekta se distribuira pod MIT licencom. Podržava rad na platformama X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU i raznim specijalizovanim ASIP (Application-Specific Instruction-set Processor) i TTA (Transport Triggered Architecture) procesorima sa VLIW arhitekturom.

Implementacija kompajlera OpenCL kernela izgrađena je na bazi LLVM-a, a Clang se koristi kao prednji kraj za OpenCL C. Da bi osigurao odgovarajuću prenosivost i performanse, kompajler jezgre OpenCL može generirati funkcije kombinacije koje mogu koristiti različite hardverske resurse za paraleliziranje izvršavanja koda, kao što su VLIW, superskalar, SIMD, SIMT, višejezgarni i multi-threading. Postoji podrška za ICD drajvere (Installable Client Driver). Postoje backendovi koji podržavaju rad preko CPU-a, ASIP-a (TCE/TTA), GPU-a zasnovanog na HSA arhitekturi i NVIDIA GPU-a (preko libcuda).

U novoj verziji:

  • Minimalni skup funkcija potrebnih za podršku OpenCL 3.0 specifikacije je implementiran. Podrška za OpenCL 3.0 je trenutno dostupna samo na pozadinskim uređajima baziranim na CPU-u sa LLVM 14 (druga pozadina i starije verzije LLVM-a pružaju podršku za OpenCL 1.2).
  • Dodata podrška za Clang/LLVM 14.
  • Poboljšano praćenje i vizualizacija.
  • Dodata podrška za generisanje specijalizovanih grupa funkcija i njihovo uključivanje u izvršne datoteke sa OpenCL kernelima.

izvor: opennet.ru

Dodajte komentar