Release von PoCL 5.0 mit einer unabhängigen Implementierung des OpenCL-Standards

Die Veröffentlichung von PoCL 5.0 (Portable Computing Language OpenCL) wurde bekanntgegeben. Dieses Projekt entwickelt die Implementierung des OpenCL-Standards, die herstellerunabhängig ist und es ermöglicht, verschiedene Backends für die Ausführung von OpenCL-Kernen auf unterschiedlichen Grafik- und Zentralprozessoren zu verwenden. Der Code des Projekts wird unter der MIT-Lizenz veröffentlicht. Die Unterstützung für die Plattformen X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU sowie verschiedene spezialisierte ASIP (Application-Specific Instruction-set Processor) und TTA-Prozessoren (Transport Triggered Architecture) mit VLIW-Architektur wird gewährleistet.

Die Implementierung des OpenCL-Kernalcompilers basiert auf LLVM, wobei Clang als Frontend für OpenCL C verwendet wird. Um die erforderliche Portabilität und Leistung sicherzustellen, kann der OpenCL-Kernelcompiler kombinierte Funktionen generieren, die verschiedene Hardware-Ressourcen für die Parallelisierung der Codeausführung nutzen, einschließlich VLIW, Superskalartität, SIMD, SIMT, Mehrkern- und Multithreading. Unterstützung für ICD-Treiber (Installable Client Driver) ist vorhanden. Es stehen Backends zur Verfügung, um die Ausführung über CPU, ASIP (TCE/TTA), HSA-Architektur-GPUs und NVIDIA-GPUs (über libcuda) zu ermöglichen.

In der neuen Version:

  • Ein neues „Remote“-Backend wurde implementiert, das für die Organisation verteilter Berechnungen gedacht ist, indem die Verarbeitung von OpenCL-Befehlen auf andere Hosts im Netzwerk, auf denen der Hintergrundprozess pocld ausgeführt wird, delegiert wird.
  • Im CUDA-Treiber wurden zusätzliche Funktionen und Erweiterungen von OpenCL 3.0 realisiert, wie atomare Operationen, Variablen mit eingeschränktem Geltungsbereich, Untergruppen intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier und sub_group_ballot.
  • Die Unterstützung für CPU-basiertes RISC-V-Architektur wurde verbessert. Die Funktionalität von PoCL wurde auf der Starfive VisionFive 2-Platine mit einer geladenen Ubuntu 23.10-Umgebung, LLVM 17 und GCC 13.2 getestet.
  • Das cl_ext_float_atomics-Feature mit Unterstützung für FP32 und FP64 wurde implementiert.
  • Die Implementierung der cl_khr_command_buffer-Erweiterung wurde auf Version 0.9.4 aktualisiert.
  • Ein experimenteller AlmaIF-Backend für FPGA wurde vorgeschlagen.
  • Die unvollständige Unterstützung für das Intermediate Representation der Shader SPIR 1.x/2.0 wurde entfernt. SPIR-V wurde als empfohlene Intermediate Language für Shader deklariert.
  • Unterstützung für Clang/LLVM 17.0 wurde hinzugefügt. Die Unterstützung für Clang/LLVM 10-13 wurde als veraltet erklärt.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster