Veröffentlichung von PoCL 3.0 mit einer unabhängigen Implementierung des OpenCL 3.0-Standards

Es wurde eine Veröffentlichung des PoCL 3.0-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:

  • Der zur Unterstützung der OpenCL 3.0-Spezifikation erforderliche Mindestsatz an Funktionen wurde implementiert. OpenCL 3.0-Unterstützung ist derzeit nur auf CPU-basierten Backends mit LLVM 14 verfügbar (andere Backends und ältere Versionen von LLVM bieten Unterstützung für OpenCL 1.2).
  • Unterstützung für Clang/LLVM 14 hinzugefügt.
  • Verbesserte Nachverfolgung und Visualisierung.
  • Unterstützung für die Generierung spezieller Funktionsgruppen und deren Einbindung in ausführbare Dateien mit OpenCL-Kerneln hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen