Udgangen af PoCL 3.0-projektet (Portable Computing Language OpenCL) er blevet præsenteret, som udvikler en implementering af OpenCL-standarden, uafhængig af grafikacceleratorproducenter og muliggør brug af forskellige backend-løsninger til at køre OpenCL-kerneller på forskellige typer af grafiske og centrale processorer. Projektets kode distribueres under MIT-licensen. Det understøtter drift på X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU og forskellige specialiserede ASIP (Application-Specific Instruction-set Processor) og TTA-processorer (Transport Triggered Architecture) med VLIW-arkitektur.
Implementation af OpenCL-kernelkompilatoren er baseret på LLVM, mens Clang bruges som frontend til OpenCL C. For at sikre ordentlig bærbarhed og ydeevne kan kompileringskoden generere kombinerede funktioner, som kan udnytte forskellige hardware-ressourcer til parallel udførelse af koden, såsom VLIW, superskalaritet, SIMD, SIMT, flerkernede og multitrådede muligheder. Der er støtte for ICD-drivere (Installable Client Driver). Backend-løsninger er tilgængelige til at understøtte drift gennem CPU, ASIP (TCE/TTA), HSA-arkitektur GPU og NVIDIA GPU (via libcuda).
I den nye version:
- Der er implementeret et minimum af funktioner, der kræves for at understøtte OpenCL 3.0-specifikationen. OpenCL 3.0-understøttelse er i øjeblikket kun tilgængelig i CPU-baseret backend med LLVM 14 (andre backends og ældre versioner af LLVM understøtter OpenCL 1.2).
- Understøttelse af Clang/LLVM 14 er tilføjet.
- Tracing og visualisering er forbedret.
- Understøttelse af generering af specialiserede funktionsgrupper og inkludering af dem i eksekverbare filer med OpenCL-kerneller er tilføjet.
Kilde: opennet.ru
