Objavljeno je izdanje PoCL 5.0 projekta (Portable Computing Language OpenCL) kojim se razvija implementacija 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 centralnih procesora. . Š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:
- Implementiran je novi “Remote” backend, dizajniran da organizira distribuirano računanje prenošenjem obrade OpenCL komandi na druge hostove na mreži koji rade pozadinski proces pocld.
- CUDA drajver implementira dodatne OpenCL 3.0 karakteristike i proširenja kao što su atomske operacije, varijable s opsegom, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier i sub_group_ballot.
- Poboljšana podrška za CPU baziranu na RISC-V arhitekturi. PoCL rad je testiran na Starfive VisionFive 2 ploči napunjenoj Ubuntu 23.10 okruženjem sa LLVM 17 i GCC 13.2.
- Ekstenzija cl_ext_float_atomics implementirana je uz podršku za FP32 i FP64.
- Implementacija ekstenzije cl_khr_command_buffer je ažurirana na verziju 0.9.4.
- Predložen je eksperimentalni AlmaIF backend za FPGA.
- Uklonjena nepotpuna podrška za srednje predstavljanje SPIR 1.x/2.0 shadera. SPIR-V je deklarisan kao preporučeni srednji shader jezik.
- Dodata podrška za Clang/LLVM 17.0. Podrška za Clang/LLVM 10-13 je zastarjela.
izvor: opennet.ru