PoCL 5.0 väljalase OpenCL-i standardi sõltumatu juurutusega

Avaldatud on projekti PoCL 5.0 (Portable Computing Language OpenCL) väljalase, mis arendab OpenCL-i standardi teostust, mis on graafikakiirendite tootjatest sõltumatu ja võimaldab kasutada erinevaid taustaprogramme OpenCL-i tuumade käivitamiseks erinevat tüüpi graafikatel ja keskprotsessoritel. . Projekti koodi levitatakse MIT litsentsi all. Toetab tööd platvormidel X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ja erinevatel spetsiaalsetel VLIW arhitektuuriga ASIP (Application-Specific Instruction-set Processor) ja TTA (Transport Triggered Architecture) protsessoritel.

OpenCL-i kerneli kompilaatori juurutamine on üles ehitatud LLVM-i baasil ja Clangi kasutatakse OpenCL C esiotsana. Nõuetekohase teisaldatavuse ja jõudluse tagamiseks saab OpenCL-i kerneli kompilaator genereerida kombineeritud funktsioone, mis võivad koodi täitmise paralleelseerimiseks kasutada erinevaid riistvararessursse, nagu VLIW, superskalaar, SIMD, SIMT, mitmetuumaline ja mitme keermega töötlemine. Toetatakse ICD-draivereid (Installable Client Driver). CPU, ASIP (TCE/TTA), HSA arhitektuuril põhineva GPU ja NVIDIA GPU (libcuda kaudu) kaudu toimimist toetavad taustaprogrammid.

Uues versioonis:

  • Rakendatud on uus "Remote" taustaprogramm, mis on loodud hajutatud andmetöötluse korraldamiseks, edastades OpenCL-i käskude töötlemise teistele võrgu hostidele, mis käitavad taustal pocldi protsessi.
  • CUDA draiver rakendab OpenCL 3.0 lisafunktsioone ja laiendusi, nagu aatomioperatsioonid, ulatusega muutujad, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier ja sub_group_ballot.
  • RISC-V arhitektuuril põhinevate protsessorite täiustatud tugi. PoCL-i toimimist testiti Starfive VisionFive 2 plaadil, mis oli laaditud Ubuntu 23.10 keskkonnaga koos LLVM 17 ja GCC 13.2-ga.
  • Laiendus cl_ext_float_atomics on rakendatud FP32 ja FP64 toel.
  • Laienduse cl_khr_command_buffer juurutamist on värskendatud versioonile 0.9.4.
  • FPGA-de jaoks on välja pakutud eksperimentaalne AlmaIF-taustaprogramm.
  • Eemaldatud SPIR 1.x/2.0 varjundite vahepealse esituse mittetäielik tugi. SPIR-V on kuulutatud soovitatavaks vahepealseks varjundikeeleks.
  • Lisatud Clang/LLVM 17.0 tugi. Clang/LLVM 10-13 tugi on aegunud.

Allikas: opennet.ru

Lisa kommentaar