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

Bolo predstavené vydanie projektu PoCL 3.1 (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álnej spracovateľov. 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:

  • Pridaná podpora pre Clang/LLVM 15.0.
  • Výrazne vylepšená podpora strednej reprezentácie SPIR-V shadera pre ovládače CPU a CUDA.
  • Ovládač pre špecializovaný hardvér (CL_DEVICE_TYPE_ACCELERATOR) a vlastné zariadenia (CL_DEVICE_TYPE_CUSTOM), ktoré nepodporujú online kompiláciu, bol výrazne prepracovaný. Ovládače accel a ttasim boli zlúčené do nového ovládača AlmaIF.
  • Pokračujú práce na ovládači pre grafické rozhranie API Vulkan.
  • Navrhuje sa základná implementácia rozšírenia cl_khr_command_buffer, ktorá umožňuje napísať sekvenciu OpenCL príkazov na vykonanie v jednom volaní.

Zdroj: opennet.ru

Pridať komentár