Publikimi i PoCL 5.0 me një zbatim të pavarur të standardit OpenCL

Është publikuar publikimi i projektit PoCL 5.0 (Portable Computing Language OpenCL), duke zhvilluar një zbatim të standardit OpenCL që është i pavarur nga prodhuesit e përshpejtuesve grafikë dhe lejon përdorimin e backend-eve të ndryshme për ekzekutimin e kerneleve OpenCL në lloje të ndryshme grafike dhe procesorë qendrorë . Kodi i projektit shpërndahet nën licencën MIT. Mbështet punën në platformat X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU dhe procesorë të ndryshëm të specializuar ASIP (Application-Specific Instruction-set Processor) dhe TTA (Transport Triggered Architecture) me arkitekturë VLIW.

Zbatimi i përpiluesit të kernelit OpenCL është ndërtuar në bazë të LLVM, dhe Clang përdoret si pjesa e përparme për OpenCL C. Për të siguruar transportueshmëri dhe performancë të duhur, përpiluesi i kernelit OpenCL mund të gjenerojë funksione kombinimi që mund të përdorin burime të ndryshme harduerike për të paralelizuar ekzekutimin e kodit, si VLIW, superscalar, SIMD, SIMT, multi-core dhe multi-threading. Ekziston mbështetje për drejtuesit e ICD (Shofer Klienti i Instalueshëm). Ka mbështetëse për të mbështetur funksionimin përmes CPU, ASIP (TCE/TTA), GPU bazuar në arkitekturën HSA dhe GPU NVIDIA (përmes libcuda).

Në versionin e ri:

  • Një backend i ri "Remote" është implementuar, i projektuar për të organizuar llogaritjen e shpërndarë duke transferuar përpunimin e komandave OpenCL te hostet e tjerë në rrjet që ekzekutojnë procesin pocld në sfond.
  • Shoferi CUDA zbaton veçori dhe zgjerime shtesë OpenCL 3.0, si operacionet atomike, variablat me shtrirje, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier dhe sub_group_ballot.
  • Mbështetje e përmirësuar për CPU-të bazuar në arkitekturën RISC-V. Operacioni PoCL u testua në bordin Starfive VisionFive 2 të ngarkuar me mjedisin Ubuntu 23.10 me LLVM 17 dhe GCC 13.2.
  • Zgjerimi cl_ext_float_atomics është implementuar me mbështetje për FP32 dhe FP64.
  • Zbatimi i shtesës cl_khr_command_buffer është përditësuar në versionin 0.9.4.
  • Është propozuar një sfond eksperimental AlmaIF për FPGA-të.
  • U hoq mbështetja jo e plotë për paraqitjen e ndërmjetme të shaderëve SPIR 1.x/2.0. SPIR-V është deklaruar si gjuha e rekomanduar e shader ndërmjetëse.
  • Mbështetje e shtuar për Clang/LLVM 17.0. Mbështetja për Clang/LLVM 10-13 është zhvlerësuar.

Burimi: opennet.ru

Shto një koment