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
