Release PoCL 3.1 mit unabhängiger Implementierung des OpenCL-Standards

Die Version 3.1 des PoCL-Projekts (Portable Computing Language OpenCL) wurde vorgestellt, welche die Implementierung des OpenCL-Standards weiterentwickelt. Diese ist unabhängig von Herstellern von Grafikbeschleunigern und ermöglicht die Nutzung verschiedener Backends zur Ausführung von OpenCL-Kernen auf unterschiedlichen Arten von Grafik- und Zentralprozessoren. Der Code des Projekts steht unter der MIT-Lizenz. Die Nutzung auf den Plattformen X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU sowie verschiedenen spezialisierten ASIP (Application-Specific Instruction-set Processor) und TTA-Prozessoren (Transport Triggered Architecture) mit VLIW-Architektur wird unterstützt.

Die Implementierung des OpenCL-Kerncompilers basiert auf LLVM, und Clang wird als Frontend für OpenCL C verwendet. Um die erforderliche Portabilität und Leistung sicherzustellen, kann der OpenCL-Kerncompiler kombinierte Funktionen generieren, die verschiedene Hardware-Ressourcen zur Parallelisierung der Codeausführung nutzen können, wie VLIW, Superskalarität, SIMD, SIMT, Multi-Core und Multithreading. Es gibt Unterstützung für ICD-Treiber (Installable Client Driver). Es sind Backends vorhanden, um die Ausführung über CPU, ASIP (TCE/TTA), HSA-Architektur basierende GPUs und NVIDIA GPUs (über libcuda) zu ermöglichen.

In der neuen Version:

  • Die Unterstützung für Clang/LLVM 15.0 wurde hinzugefügt.
  • Die Unterstützung für die Zwischenrepräsentation von SPIR-V-Shadern wurde erheblich verbessert, für Treiber, die CPU und CUDA verwenden.
  • Der Treiber für spezialisierte Hardware (CL_DEVICE_TYPE_ACCELERATOR) und benutzerdefinierte Geräte (CL_DEVICE_TYPE_CUSTOM), die keine Online-Kompilierung unterstützen, wurde umfassend überarbeitet. Die Treiber accel und ttasim wurden in einen neuen Treiber AlmaIF integriert.
  • Die Arbeiten am Treiber für die grafische API Vulkan wurden fortgesetzt.
  • Eine grundlegende Implementierung der Erweiterung cl_khr_command_buffer wurde vorgeschlagen, die es ermöglicht, eine Sequenz von OpenCL-Befehlen für die Ausführung in einem einzigen Aufruf aufzuzeichnen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4