Byla představena verze projektu PoCL 3.0 (Portable Computing Language OpenCL), která vyvíjí implementaci standardu OpenCL nezávislou na výrobcích grafických akcelerátorů, a umožňuje použití různých backendů pro vykonávání OpenCL jader na různých typech grafických a centrálních procesorů. Kód projektu je distribuován pod licencí MIT. Podporována je činnost na platformách X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU a různých specializovaných procesorech ASIP (Application-Specific Instruction-set Processor) a TTA (Transport Triggered Architecture) s architekturou VLIW.
Implementace kompilátoru OpenCL jader je postavena na základě LLVM, a jako frontend pro OpenCL C se používá Clang. Pro zajištění odpovídající přenositelnosti a výkonu může kompilátor OpenCL jader generovat kombinované funkce, které mohou využívat různé hardwarové zdroje pro paralelizaci provádění kódu, jako jsou VLIW, superskalární architektura, SIMD, SIMT, vícejádrové zpracování a multithreading. Podporovány jsou ICD ovladače (Installable Client Driver). Jsou k dispozici backendy pro zajištění fungování přes CPU, ASIP (TCE/TTA), GPU na základě architektury HSA a GPU NVIDIA (přes libcuda).
V nové verzi:
- Byl implementován minimální soubor funkcí potřebný pro podporu specifikace OpenCL 3.0. Podpora OpenCL 3.0 je dosud dostupná pouze v backendu založeném na CPU s LLVM 14 (v jiných backendech a při použití starších verzí LLVM je poskytována podpora OpenCL 1.2).
- Byla přidána podpora Clang/LLVM 14.
- Byla vylepšena sledování a vizualizace.
- Byla přidána podpora generace specializovaných skupin funkcí a jejich zahrnutí do spustitelných souborů s OpenCL jádry.
Zdroj: opennet.ru
