Vydanie PoCL 5.0 s nezávislou implementáciou štandardu OpenCL

Bolo zverejnené vydanie projektu PoCL 5.0 (Portable Computing Language OpenCL), ktorý vyvíja implementáciu štandardu OpenCL, ktorý je nezávislý od výrobcov grafických akcelerátorov a umožňuje použitie rôznych backendov na spúšťanie jadier OpenCL na rôznych typoch grafiky a centrálnych procesorov. . Kód projektu je distribuovaný pod licenciou MIT. Podporuje prácu na platformách X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU a rôznych špecializovaných procesoroch ASIP (Application-Specific Instruction-set Processor) a TTA (Transport Triggered Architecture) s architektúrou VLIW.

Implementácia kompilátora jadra OpenCL je postavená na báze LLVM a Clang sa používa ako frontend pre OpenCL C. Na zabezpečenie správnej prenosnosti a výkonu môže kompilátor jadra OpenCL generovať kombinované funkcie, ktoré môžu využívať rôzne hardvérové ​​prostriedky na paralelizáciu vykonávania kódu, ako sú VLIW, superskalár, SIMD, SIMT, viacjadrové a viacvláknové. K dispozícii je podpora ovládačov ICD (Installable Client Driver). Existujú backendy na podporu prevádzky cez CPU, ASIP (TCE/TTA), GPU na báze architektúry HSA a NVIDIA GPU (cez libcuda).

V novej verzii:

  • Bol implementovaný nový „Remote“ backend, navrhnutý na organizáciu distribuovaných výpočtov prenosom spracovania príkazov OpenCL na iných hostiteľov v sieti, na ktorých beží proces pocld na pozadí.
  • Ovládač CUDA implementuje ďalšie funkcie a rozšírenia OpenCL 3.0, ako sú atomické operácie, premenné s rozsahom, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier a sub_group_ballot.
  • Vylepšená podpora pre CPU založené na architektúre RISC-V. Prevádzka PoCL bola testovaná na doske Starfive VisionFive 2 s prostredím Ubuntu 23.10 s LLVM 17 a GCC 13.2.
  • Rozšírenie cl_ext_float_atomics bolo implementované s podporou pre FP32 a FP64.
  • Implementácia rozšírenia cl_khr_command_buffer bola aktualizovaná na verziu 0.9.4.
  • Bol navrhnutý experimentálny backend AlmaIF pre FPGA.
  • Odstránená neúplná podpora pre prechodnú reprezentáciu shaderov SPIR 1.x/2.0. SPIR-V je deklarovaný ako odporúčaný stredný shader jazyk.
  • Pridaná podpora pre Clang/LLVM 17.0. Podpora pre Clang/LLVM 10-13 bola ukončená.

Zdroj: opennet.ru

Pridať komentár