Izdaja PoCL 5.0 z neodvisno implementacijo standarda OpenCL

Objavljena je bila izdaja projekta PoCL 5.0 (Portable Computing Language OpenCL), ki razvija implementacijo standarda OpenCL, ki je neodvisna od proizvajalcev grafičnih pospeševalnikov in omogoča uporabo različnih ozadij za izvajanje jeder OpenCL na različnih vrstah grafičnih in centralnih procesorjev. . Koda projekta se distribuira pod licenco MIT. Podpira delo na platformah X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU in različnih specializiranih procesorjih ASIP (Application-Specific Instruction-set Processor) in TTA (Transport Triggered Architecture) z arhitekturo VLIW.

Izvedba prevajalnika jedra OpenCL je zgrajena na osnovi LLVM, Clang pa se uporablja kot sprednji del za OpenCL C. Za zagotovitev ustrezne prenosljivosti in zmogljivosti lahko prevajalnik jedra OpenCL generira kombinirane funkcije, ki lahko uporabljajo različne strojne vire za vzporedno izvajanje kode, kot so VLIW, superskalar, SIMD, SIMT, večjedrni in večnitni. Obstaja podpora za gonilnike ICD (Installable Client Driver). Obstajajo ozadja za podporo delovanja prek CPE, ASIP (TCE/TTA), GPE, ki temelji na arhitekturi HSA in NVIDIA GPE (prek libcuda).

V novi različici:

  • Implementirano je bilo novo »oddaljeno« zaledje, zasnovano za organizacijo porazdeljenega računalništva s prenosom obdelave ukazov OpenCL na druge gostitelje v omrežju, ki izvajajo proces pocld v ozadju.
  • Gonilnik CUDA implementira dodatne funkcije in razširitve OpenCL 3.0, kot so atomske operacije, spremenljivke v obsegu, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier in sub_group_ballot.
  • Izboljšana podpora za procesorje, ki temeljijo na arhitekturi RISC-V. Delovanje PoCL je bilo preizkušeno na plošči Starfive VisionFive 2 z naloženim okoljem Ubuntu 23.10 z LLVM 17 in GCC 13.2.
  • Razširitev cl_ext_float_atomics je bila implementirana s podporo za FP32 in FP64.
  • Izvedba razširitve cl_khr_command_buffer je bila posodobljena na različico 0.9.4.
  • Predlagano je bilo poskusno zaledje AlmaIF za FPGA.
  • Odstranjena je nepopolna podpora za vmesno predstavitev senčil SPIR 1.x/2.0. SPIR-V je deklariran kot priporočeni vmesni jezik za senčenje.
  • Dodana podpora za Clang/LLVM 17.0. Podpora za Clang/LLVM 10-13 je bila opuščena.

Vir: opennet.ru

Dodaj komentar