Wydanie PoCL 1.3, niezależnej implementacji standardu OpenCL

Dostępna jest wersja projektu PoCL 1.3 (Portable Computing Language OpenCL), który rozwija implementację standardu OpenCL niezależną od producentów akceleratorów graficznych i umożliwiającą wykorzystanie różnych backendów do wykonywania jąder OpenCL na różnych typach kart graficznych i procesorach centralnych . Kod projektu jest rozpowszechniany na licencji MIT. Obsługuje pracę na platformach X86_64, MIPS32, ARM v7, AMD HSA APU i różnych wyspecjalizowanych procesorach TTA (Transport Triggered Architecture) z architekturą VLIW.

Implementacja kompilatora jądra OpenCL zbudowana jest w oparciu o LLVM, a Clang służy jako frontend dla OpenCL C. Aby zapewnić odpowiednią przenośność i wydajność, kompilator jądra OpenCL może generować funkcje kombinowane, które mogą wykorzystywać różne zasoby sprzętowe do równoległego wykonywania kodu, takie jak VLIW, superskalarne, SIMD, SIMT, wielordzeniowe i wielowątkowe. Dostępna obsługa sterownika ICD
(Do zainstalowania sterownik klienta). Istnieją backendy obsługujące działanie za pośrednictwem procesora, ASIP (TCE/TTA), procesora graficznego opartego na architekturze HSA i procesora graficznego NVIDIA (CUDA).

Nowa wersja dodaje obsługę LLVM/Clang 8.0. Zapewnia obsługę ICD (Installable Client Driver) na platformie macOS. Zaimplementowano możliwość budowania pocl bez sterowników zaplecza dla procesora. W przypadku HSA (Heterogeneous System Architecture) zapewniona jest wstępna obsługa kompilacji ISA w oparciu o środowisko wykonawcze HSA. Wyczyszczono bazę kodu, w tym usunięto bibliotekę Vecmathlib i zatrzymano obsługę starszych wersji LLVM (poniżej 6.0).

Źródło: opennet.ru

Dodaj komentarz