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