Lansarea PoCL 3.1 cu implementare independentă a standardului OpenCL

A fost prezentată o lansare a proiectului PoCL 3.1 (Portable Computing Language OpenCL), care dezvoltă o implementare a standardului OpenCL care este independentă de producătorii de acceleratoare grafice și permite utilizarea diferitelor backend-uri pentru executarea kernel-urilor OpenCL pe diferite tipuri de grafică și centrală. procesoare. Codul proiectului este distribuit sub licența MIT. Acceptă lucrul pe platformele X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU și diverse procesoare specializate ASIP (Application-Specific Instruction-set Processor) și TTA (Transport Triggered Architecture) cu arhitectură VLIW.

Implementarea compilatorului de kernel OpenCL este construită pe baza LLVM, iar Clang este folosit ca front-end pentru OpenCL C. Pentru a asigura portabilitatea și performanța corespunzătoare, compilatorul de kernel OpenCL poate genera funcții combinate care pot utiliza diverse resurse hardware pentru a paraleliza execuția codului, cum ar fi VLIW, superscalar, SIMD, SIMT, multi-core și multi-threading. Există suport pentru driverele ICD (Installable Client Driver). Există backend-uri pentru a suporta operarea prin CPU, ASIP (TCE/TTA), GPU bazat pe arhitectura HSA și GPU NVIDIA (prin libcuda).

În noua versiune:

  • S-a adăugat suport pentru Clang/LLVM 15.0.
  • Suport de reprezentare intermediară a shaderului SPIR-V îmbunătățit semnificativ pentru driverele CPU și CUDA.
  • Driverul pentru hardware specializat (CL_DEVICE_TYPE_ACCELERATOR) și dispozitive personalizate (CL_DEVICE_TYPE_CUSTOM) care nu acceptă compilarea online a fost reproiectat semnificativ. Driverele accel și ttasim au fost îmbinate în noul driver AlmaIF.
  • Lucrările continuă la driverul pentru API-ul grafic Vulkan.
  • Este propusă o implementare de bază a extensiei cl_khr_command_buffer, care vă permite să scrieți o secvență de comenzi OpenCL pentru execuție într-un singur apel.

Sursa: opennet.ru

Adauga un comentariu