Er is een release gepresenteerd van het PoCL 3.1-project (Portable Computing Language OpenCL), dat een implementatie van de OpenCL-standaard ontwikkelt die onafhankelijk is van fabrikanten van grafische versnellers en het gebruik van verschillende backends mogelijk maakt voor het uitvoeren van OpenCL-kernels op verschillende soorten grafische afbeeldingen en centrale verwerkers. De projectcode wordt gedistribueerd onder de MIT-licentie. Ondersteunt werk op platforms X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU en diverse gespecialiseerde ASIP (Application-Specific Instruction-set Processor) en TTA (Transport Triggered Architecture) processors met VLIW-architectuur.
De implementatie van de OpenCL-kernelcompiler is gebouwd op basis van LLVM en Clang wordt gebruikt als front-end voor OpenCL C. Om goede draagbaarheid en prestaties te garanderen, kan de OpenCL-kernelcompiler combinatiefuncties genereren die verschillende hardwarebronnen kunnen gebruiken om de uitvoering van code te parallelliseren, zoals VLIW, superscalair, SIMD, SIMT, multi-core en multi-threading. Er is ondersteuning voor ICD-stuurprogramma's (Installable Client Driver). Er zijn backends ter ondersteuning van de werking via CPU, ASIP (TCE/TTA), GPU op basis van HSA-architectuur en NVIDIA GPU (via liccuda).
In de nieuwe versie:
- Ondersteuning toegevoegd voor Clang/LLVM 15.0.
- Aanzienlijk verbeterde ondersteuning voor tussenweergave van SPIR-V-shaders voor CPU- en CUDA-stuurprogramma's.
- Het stuurprogramma voor gespecialiseerde hardware (CL_DEVICE_TYPE_ACCELERATOR) en aangepaste apparaten (CL_DEVICE_TYPE_CUSTOM) die geen online compilatie ondersteunen, is aanzienlijk opnieuw ontworpen. De accel- en ttasim-drivers zijn samengevoegd in de nieuwe AlmaIF-driver.
- Er wordt verder gewerkt aan de driver voor de Vulkan grafische API.
- Er wordt een basisimplementatie van de extensie cl_khr_command_buffer voorgesteld, waarmee u een reeks OpenCL-opdrachten kunt schrijven die in één aanroep kunnen worden uitgevoerd.
Bron: opennet.ru