De release van het PoCL 3.1-project (Portable Computing Language OpenCL) is gepresenteerd, dat de implementatie van de OpenCL-norm verder ontwikkelt, onafhankelijk van grafische acceleratorfabrikanten, en het mogelijk maakt om verschillende backends te gebruiken voor het uitvoeren van OpenCL-kernels op verschillende soorten grafische en centrale processors. De code van het project wordt verspreid onder de MIT-licentie. Ondersteuning voor X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU en verschillende gespecialiseerde ASIP (Application-Specific Instruction-set Processor) en TTA-processors (Transport Triggered Architecture) met een VLIW-architectuur wordt geboden.
De implementatie van de OpenCL-kernelcompiler is gebouwd op LLVM, met Clang als frontend voor OpenCL C. Om de noodzakelijke draagbaarheid en prestaties te waarborgen, kan de OpenCL-kernelcompiler gecombineerde functies genereren die verschillende hardwarebronnen kunnen gebruiken voor het parallel uitvoeren van code, zoals VLIW, superscalariteit, SIMD, SIMT, multicores en multithreading. Ondersteuning voor ICD-drivers (Installable Client Driver) is aanwezig. Er zijn backends aanwezig om te zorgen voor functionaliteit via CPU, ASIP (TCE/TTA), HSA-gebaseerde GPU's en NVIDIA GPU's (via libcuda).
In de nieuwe versie:
- Ondersteuning voor Clang/LLVM 15.0 is toegevoegd.
- De ondersteuning voor het tussentijdse representatieformat van shaders (SPIR-V) voor stuurprogramma's die CPU en CUDA gebruiken is aanzienlijk verbeterd.
- De driver voor gespecialiseerde hardware (CL_DEVICE_TYPE_ACCELERATOR) en eigen apparaten (CL_DEVICE_TYPE_CUSTOM) die geen online compilatie ondersteunen, is grondig herzien. De drivers accel en ttasim zijn samengevoegd in een nieuwe driver, AlmaIF.
- Het werk aan de driver voor de grafische API Vulkan is voortgezet.
- Een basisimplementatie van de uitbreiding cl_khr_command_buffer is voorgesteld, die het mogelijk maakt om een reeks OpenCL-commando's vast te leggen voor uitvoering met ƩƩn aanroep.
Bron: opennet.ru
