Lansarea PoCL 5.0 cu o implementare independentă a standardului OpenCL

A fost publicat release-ul proiectului PoCL 5.0 (Portable Computing Language OpenCL), care dezvoltă implementarea standardului OpenCL, independent de furnizorii de acceleratoare grafice și permite utilizarea diferitelor backend-uri pentru executarea nucleelor OpenCL pe diferite tipuri de procesoare grafice și centrale. Codul proiectului este distribuit sub licența MIT. Se suportă funcționarea pe platforme X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA și diverse procesoare ASIP (Application-Specific Instruction-set Processor) și TTA (Transport Triggered Architecture) cu arhitectura VLIW.

Implementarea compilatorului kernel-urilor OpenCL este construită pe baza LLVM, iar Clang este utilizat ca frontend pentru OpenCL C. Pentru a asigura portabilitatea și performanța adecvată, compilatorul kernel-urilor OpenCL poate genera funcții combinate care pot utiliza diferite resurse hardware pentru a paraleliza execuția codului, cum ar fi VLIW, superscalare, SIMD, SIMT, multicore și multithreading. Există suport pentru drivere ICD (Installable Client Driver). Există backend-uri pentru a asigura funcționarea prin CPU, ASIP (TCE/TTA), GPU bazate pe arhitectura HSA și GPU NVIDIA (prin libcuda).

În noua versiune:

  • A fost implementat un nou backend „Remote”, destinat organizării calculațiilor distribuite prin delegarea execuției comenzilor OpenCL pe alte gazde din rețea, pe care este rulat un proces de fundal pocld.
  • În driver-ul CUDA au fost implementate funcționalități suplimentare și extensii OpenCL 3.0, cum ar fi operațiile atomice, variabile cu domeniu restrâns de vizibilitate, subgrupuri intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier și sub_group_ballot.
  • A fost îmbunătățită suportul pentru CPU-uri bazate pe arhitectura RISC-V. Funcționarea PoCL a fost testată pe placa Starfive VisionFive 2 cu mediu Ubuntu 23.10, folosind LLVM 17 și GCC 13.2.
  • A fost implementată extensia cl_ext_float_atomics cu suport pentru FP32 și FP64.
  • Implementarea extensiei cl_khr_command_buffer a fost actualizată la versiunea 0.9.4.
  • A fost propus un backend experimental AlmaIF pentru FPGA.
  • A fost eliminat suportul incomplet pentru reprezentarea intermediară a shader-elor SPIR 1.x/2.0. Ca limbaj intermediar recomandat pentru shader-e a fost declarat SPIR-V.
  • A fost adăugat suport pentru Clang/LLVM 17.0. Suportul pentru Clang/LLVM 10-13 a fost declarat învechit.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster