Wydano wydanie projektu PoCL 3.0 (Portable Computing Language OpenCL), rozwijającego realizację standardu OpenCL, niezależnego od producentów akceleratorów graficznych, co pozwala na korzystanie z różnych backendów do wykonywania rdzeni OpenCL na różnych typach procesorów graficznych i centralnych. Kod projektu jest udostępniany na licencji MIT. Obsługuje platformy X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA oraz różne wyspecjalizowane procesory ASIP (Application-Specific Instruction-set Processor) i procesory TTA (Transport Triggered Architecture) z architekturą VLIW.
Implementacja kompilatora jąder OpenCL oparta jest na LLVM, a jako frontend dla OpenCL C używany jest Clang. Aby zapewnić odpowiednią przenośność i wydajność, kompilator jąder OpenCL może generować kombinowane funkcje, które mogą wykorzystywać różne zasoby sprzętowe do równoległego wykonywania kodu, takie jak VLIW, superskalarny, SIMD, SIMT, wielordzeniowość i wielowątkowość. Obsługiwane są sterowniki ICD (Installable Client Driver). Dostępne są backendy umożliwiające działanie poprzez CPU, ASIP (TCE/TTA), GPU oparte na architekturze HSA oraz GPU NVIDIA (przez libcuda).
W nowej wersji:
- Zrealizowano minimalny zestaw możliwości wymagany do wsparcia specyfikacji OpenCL 3.0. Obsługa OpenCL 3.0 jest obecnie dostępna tylko w backendzie opartym na CPU z LLVM 14 (w innych backendach oraz w przypadku starszych wersji LLVM dostępna jest obsługa OpenCL 1.2).
- Dodano wsparcie dla Clang/LLVM 14.
- Udoskonalono śledzenie i wizualizację.
- Dodano wsparcie dla generowania wyspecjalizowanych grup funkcji oraz ich włączania do plików wykonywalnych z rdzeniami OpenCL.
Źródło: opennet.ru
