Frigivelse af PoCL 3.1 med uafhængig implementering af OpenCL-standarden

En udgivelse af PoCL 3.1 (Portable Computing Language OpenCL)-projektet er blevet præsenteret, som udvikler en implementering af OpenCL-standarden, der er uafhængig af grafikacceleratorproducenter og tillader brugen af ​​forskellige backends til at udføre OpenCL-kerner på forskellige typer grafik og centrale processorer. Projektkoden distribueres under MIT-licensen. Understøtter arbejde på platforme X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU og forskellige specialiserede ASIP (Application-Specific Instruction-set Processor) og TTA (Transport Triggered Architecture)-processorer med VLIW-arkitektur.

Implementeringen af ​​OpenCL-kernekompileren er bygget på basis af LLVM, og Clang bruges som frontend for OpenCL C. For at sikre korrekt portabilitet og ydeevne kan OpenCL-kernekompileren generere kombinationsfunktioner, der kan bruge forskellige hardwareressourcer til at parallelisere kodeudførelse, såsom VLIW, superscalar, SIMD, SIMT, multi-core og multi-threading. Der er understøttelse af ICD-drivere (Installable Client Driver). Der er backends til at understøtte drift via CPU, ASIP (TCE/TTA), GPU baseret på HSA-arkitektur og NVIDIA GPU (via libcuda).

I den nye version:

  • Tilføjet understøttelse af Clang/LLVM 15.0.
  • Betydeligt forbedret SPIR-V shader-mellemrepræsentationsunderstøttelse til CPU- og CUDA-drivere.
  • Driveren til specialiseret hardware (CL_DEVICE_TYPE_ACCELERATOR) og brugerdefinerede enheder (CL_DEVICE_TYPE_CUSTOM), der ikke understøtter online kompilering, er blevet væsentligt omdesignet. Accel- og ttasim-driverne er blevet slået sammen til den nye AlmaIF-driver.
  • Arbejdet fortsætter med driveren til Vulkan grafik API.
  • En grundlæggende implementering af cl_khr_command_buffer-udvidelsen foreslås, som giver dig mulighed for at skrive en sekvens af OpenCL-kommandoer til udførelse i ét opkald.

Kilde: opennet.ru

Tilføj en kommentar