Izdanje PoCL 5.0 sa nezavisnom implementacijom OpenCL standarda

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

Dodajte komentar