PoCL 3.1 laidiens ar neatkarīgu OpenCL standarta ieviešanu

Prezentēts projekta PoCL 3.1 (Portable Computing Language OpenCL) izlaidums, kas izstrādā OpenCL standarta implementāciju, kas ir neatkarīga no grafikas paātrinātāju ražotājiem un ļauj, izmantojot dažādas aizmugursistēmas, lai izpildītu OpenCL kodolus uz dažāda veida grafikas un centrālajiem procesoriem. Projekta kods tiek izplatīts saskaņā ar MIT licenci. Darbs tiek atbalstīts uz platformām X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU un dažādiem specializētiem ASIP (Application-Specific Instruction-set Processor) un TTA procesoriem (Transport Triggered Architecture) ar VLIW arhitektūru.

OpenCL pamata kompilatora ieviešana ir balstīta uz LLVM, un Clang tiek izmantots kā OpenCL C priekšgals. Lai nodrošinātu pareizu pārnesamību un veiktspēju, OpenCL kodola kompilators var ģenerēt kombinētas funkcijas, kas var izmantot dažādus aparatūras resursus, lai paralēli koda izpildei, piemēram, VLIW, superscalar, SIMD, SIMT, daudzkodolu un daudzpavedienu. Ir pieejams ICD draiveru atbalsts (instalējamais klienta draiveris). Ir aizmugursistēmas, kas atbalsta darbu, izmantojot CPU, ASIP (TCE/TTA), GPU, pamatojoties uz HSA arhitektūru, un NVIDIA GPU (izmantojot libcuda).

Jaunajā versijā:

  • Pievienots Clang/LLVM 15.0 atbalsts.
  • Ievērojami uzlabots SPIR-V shadera starpposma attēlojuma atbalsts CPU un CUDA draiveriem.
  • Draiveris specializētajai aparatūrai (CL_DEVICE_TYPE_ACCELERATOR) un pielāgotajām ierīcēm (CL_DEVICE_TYPE_CUSTOM), kas neatbalsta tiešsaistes kompilāciju, ir ievērojami pārveidots. Acel un ttasim draiveri ir apvienoti jaunajā AlmaIF draiverī.
  • Turpinās darbs pie Vulkan grafikas API draivera.
  • Tiek piedāvāta cl_khr_command_buffer paplašinājuma pamata ieviešana, kas ļauj vienā izsaukumā uzrakstīt OpenCL komandu secību izpildei.

Avots: opennet.ru

Pievieno komentāru