Izdanje PoCL 3.1 sa nezavisnom implementacijom OpenCL standarda

Predstavljeno je izdanje PoCL 3.1 (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:

  • Dodata podrška za Clang/LLVM 15.0.
  • Značajno poboljšana podrška za srednje predstavljanje SPIR-V shadera za CPU i CUDA drajvere.
  • Drajver za specijalizovani hardver (CL_DEVICE_TYPE_ACCELERATOR) i prilagođene uređaje (CL_DEVICE_TYPE_CUSTOM) koji ne podržavaju onlajn kompilaciju je značajno redizajniran. Accel i ttasim drajveri su spojeni u novi AlmaIF drajver.
  • Nastavlja se rad na drajveru za Vulkan grafički API.
  • Predložena je osnovna implementacija ekstenzije cl_khr_command_buffer, koja vam omogućava da napišete niz OpenCL naredbi za izvršenje u jednom pozivu.

izvor: opennet.ru

Dodajte komentar