Udgivet version 5.0 af PoCL (Portable Computing Language OpenCL), der udvikler implementeringen af OpenCL-standarden, uafhængig af producenter af grafiske acceleratorer og muliggør brugen af forskellige backend-systemer til udførelse af OpenCL-nukleer på forskellige typer grafiske og centrale processorer. Projektkoden distribueres under MIT-licensen. Der understøttes drift på platforme som 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:
- En ny backend 'Remote' er implementeret, designet til at organisere distribuerede beregninger ved at flytte behandlingen af OpenCL-kommandoer til andre værter i netværket, hvor baggrundsprocessen pocld kører.
- Der er tilføjet yderligere funktioner og udvidelser til OpenCL 3.0 i CUDA-driveren, såsom atomare operationer, variabler med begrænset synlighed, undergrupper intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier og sub_group_ballot.
- Understøttelsen af CPU'er baseret på RISC-V-arkitekturen er forbedret. PoCL's funktionalitet er blevet testet på Starfive VisionFive 2 med et indlæst miljø af Ubuntu 23.10 med LLVM 17 og GCC 13.2.
- Udvidelsen cl_ext_float_atomics med støtte for FP32 og FP64 er implementeret.
- Implementeringen af udvidelsen cl_khr_command_buffer er blevet opdateret til version 0.9.4.
- En eksperimentel backend AlmaIF til FPGA er foreslået.
- Den uafsluttede understøttelse af mellemrepræsentationen af shaders SPIR 1.x/2.0 er blevet fjernet. SPIR-V er blevet angivet som det anbefalede mellemrepræsentationssprog for shaders.
- Understøttelse af Clang/LLVM 17.0 er blevet tilføjet. Understøttelsen af Clang/LLVM 10-13 er blevet erklæret forældet.
Kilde: opennet.ru
