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

Es wurde eine Veröffentlichung des PoCL 3.1-Projekts (Portable Computing Language OpenCL) vorgestellt, das eine von Grafikbeschleunigerherstellern unabhängige Implementierung des OpenCL-Standards entwickelt und die Verwendung verschiedener Backends zur Ausführung von OpenCL-Kerneln auf verschiedenen Grafiktypen und zentral ermöglicht Prozessoren. Der Projektcode wird unter der MIT-Lizenz vertrieben. Unterstützt die Arbeit auf den Plattformen X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU und verschiedenen spezialisierten ASIP- (Application-Specific Instruction-set Processor) und TTA- (Transport Triggered Architecture) Prozessoren mit VLIW-Architektur.

Die Implementierung des OpenCL-Kernel-Compilers basiert auf LLVM und Clang wird als Frontend für OpenCL C verwendet. Um eine ordnungsgemäße Portabilität und Leistung sicherzustellen, kann der OpenCL-Kernel-Compiler Kombinationsfunktionen generieren, die verschiedene Hardwareressourcen nutzen können, um die Codeausführung zu parallelisieren, wie z. B. VLIW, Superskalar, SIMD, SIMT, Multi-Core und Multi-Threading. Es gibt Unterstützung für ICD-Treiber (Installable Client Driver). Es gibt Backends, die den Betrieb über CPU, ASIP (TCE/TTA), GPU auf Basis der HSA-Architektur und NVIDIA GPU (über libcuda) unterstützen.

In der neuen Version:

  • Unterstützung für Clang/LLVM 15.0 hinzugefügt.
  • Deutlich verbesserte SPIR-V-Shader-Zwischendarstellungsunterstützung für CPU- und CUDA-Treiber.
  • Der Treiber für spezielle Hardware (CL_DEVICE_TYPE_ACCELERATOR) und benutzerdefinierte Geräte (CL_DEVICE_TYPE_CUSTOM), die keine Online-Kompilierung unterstützen, wurde erheblich überarbeitet. Die Accel- und Ttasim-Treiber wurden im neuen AlmaIF-Treiber zusammengeführt.
  • Die Arbeit am Treiber für die Vulkan-Grafik-API geht weiter.
  • Es wird eine grundlegende Implementierung der Erweiterung cl_khr_command_buffer vorgeschlagen, mit der Sie eine Folge von OpenCL-Befehlen zur Ausführung in einem Aufruf schreiben können.

Source: opennet.ru

Kommentar hinzufügen