PoCL 5.0 izdanje s neovisnom implementacijom OpenCL standarda

Objavljeno je izdanje projekta PoCL 5.0 (Portable Computing Language OpenCL), kojim se razvija implementacija standarda OpenCL koja je neovisna o proizvođačima grafičkih akceleratora i omogućuje korištenje različitih pozadina za izvođenje OpenCL kernela na različitim vrstama grafičkih i središnjih procesora. . Kod projekta se distribuira pod licencom MIT-a. Podržava rad na platformama X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU i raznim specijaliziranim ASIP (Application-Specific Instruction-set Processor) i TTA (Transport Triggered Architecture) procesorima s VLIW arhitekturom.

Implementacija OpenCL jezgre prevoditelja temelji se na LLVM, a Clang se koristi kao front-end za OpenCL C. Kako bi se osigurala odgovarajuća prenosivost i izvedba, prevodilac jezgre OpenCL može generirati kombinirane funkcije koje mogu koristiti različite hardverske resurse za paraleliziranje izvođenja koda, kao što su VLIW, superskalar, SIMD, SIMT, multicore i multithreading. Postoji podrška za ICD upravljačke programe (Installable Client Driver). Postoje backendovi koji podržavaju rad kroz CPU, ASIP (TCE/TTA), GPU temeljen na HSA arhitekturi i NVIDIA GPU (putem libcuda).

U novoj verziji:

  • Implementiran je novi "Remote" backend, dizajniran za organiziranje distribuiranog računalstva prijenosom obrade OpenCL naredbi na druga računala na mreži koja pokreću pozadinski pocld proces.
  • CUDA upravljački program implementira dodatne značajke i proširenja OpenCL 3.0, kao što su atomske operacije, ograničene varijable, 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 procesore temeljene na RISC-V arhitekturi. Rad PoCL-a testiran je na ploči Starfive VisionFive 2 s učitanim Ubuntu 23.10 okruženjem s LLVM 17 i GCC 13.2.
  • Proširenje cl_ext_float_atomics implementirano je uz podršku za FP32 i FP64.
  • Implementacija proširenja cl_khr_command_buffer ažurirana je na verziju 0.9.4.
  • Predložen je eksperimentalni AlmaIF backend za FPGA.
  • Uklonjena je nepotpuna podrška za srednje predstavljanje SPIR 1.x/2.0 shadera. SPIR-V je deklariran kao preporučeni srednji shader jezik.
  • Dodana podrška za Clang/LLVM 17.0. Podrška za Clang/LLVM 10-13 je zastarjela.

Izvor: opennet.ru

Dodajte komentar