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

Është prezantuar një version i projektit PoCL 3.1 (Portable Computing Language OpenCL), i cili zhvillon 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 qendrore. përpunuesit. 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:

  • Mbështetje e shtuar për Clang/LLVM 15.0.
  • Mbështetja e ndërmjetme e përfaqësimit të shaderit të SPIR-V është përmirësuar ndjeshëm për drejtuesit e CPU dhe CUDA.
  • Drejtuesi për pajisje të specializuara (CL_DEVICE_TYPE_ACCELERATOR) dhe pajisje të personalizuara (CL_DEVICE_TYPE_CUSTOM) që nuk mbështesin përpilimin në internet është ridizajnuar ndjeshëm. Drejtuesit e accel dhe ttasim janë bashkuar në drejtuesin e ri AlmaIF.
  • Puna vazhdon për drejtuesin e API-së grafike Vulkan.
  • Propozohet një zbatim bazë i zgjerimit cl_khr_command_buffer, i cili ju lejon të shkruani një sekuencë komandash OpenCL për ekzekutim në një thirrje.

Burimi: opennet.ru

Shto një koment