A PoCL 5.0 kiadása az OpenCL szabvány független megvalósításával

Megjelent a PoCL 5.0 projekt (Portable Computing Language OpenCL) kiadása, amely az OpenCL szabvány olyan implementációját fejleszti, amely független a grafikus gyorsítók gyártóitól, és lehetővé teszi a különböző háttérrendszerek használatát OpenCL kernelek futtatásához különböző típusú grafikus és központi processzorokon. . A projekt kódját az MIT licence alatt terjesztik. Támogatja a munkát az X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU és különféle speciális ASIP (Application-Specific Instruction-set Processor) és TTA (Transport Triggered Architecture) processzorokon VLIW architektúrával.

Az OpenCL kernel-fordító megvalósítása LLVM-re épül, a Clang pedig az OpenCL C kezelőfelülete. A megfelelő hordozhatóság és teljesítmény biztosítása érdekében az OpenCL kernel-fordító olyan kombinációs függvényeket tud generálni, amelyek különböző hardvererőforrásokat használhatnak a kódvégrehajtás párhuzamosításához, például VLIW, szuperskalár, SIMD, SIMT, többmagos és többszálú. Támogatják az ICD-illesztőprogramokat (Installable Client Driver). Vannak háttérprogramok, amelyek támogatják a CPU-n, ASIP-en (TCE/TTA), HSA architektúrán alapuló GPU-n és NVIDIA GPU-n (libcudán keresztül) történő működést.

Az új verzióban:

  • Egy új „Távoli” háttérrendszer került bevezetésre, amely az elosztott számítástechnika megszervezésére szolgál az OpenCL-parancsok feldolgozásának a háttérben futó pocld folyamatot futtató hálózat más gazdagépei számára történő átvitelével.
  • A CUDA illesztőprogram az OpenCL 3.0 további szolgáltatásait és bővítményeit valósítja meg, például atomműveleteket, hatókörű változókat, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier és sub_group_ballot.
  • A RISC-V architektúrán alapuló CPU-k továbbfejlesztett támogatása. A PoCL működését a Starfive VisionFive 2 kártyán tesztelték, amely Ubuntu 23.10 környezettel van feltöltve, LLVM 17 és GCC 13.2 rendszerrel.
  • A cl_ext_float_atomics kiterjesztést az FP32 és az FP64 támogatásával valósították meg.
  • A cl_khr_command_buffer kiterjesztés megvalósítása a 0.9.4-es verzióra frissült.
  • Javasoltak egy kísérleti AlmaIF háttérprogramot az FPGA-khoz.
  • Eltávolítottuk a SPIR 1.x/2.0 shaderek köztes megjelenítésének hiányos támogatását. A SPIR-V az ajánlott köztes árnyékoló nyelv.
  • Hozzáadott támogatás a Clang/LLVM 17.0-hoz. A Clang/LLVM 10-13 támogatása megszűnt.

Forrás: opennet.ru

Hozzászólás